def pop_spell_menu( self, pc ): mymenu = rpgmenu.PopUpMenu( self.screen, self.view ) self.add_spells_for_pc( pc, mymenu ) mymenu.sort() mymenu.add_alpha_keys() mymenu.add_item( "Cancel", False ) choice = mymenu.query() if choice: self.pc_use_technique( pc, choice, choice.exp_tar )
def pop_explo_menu( self ): mymenu = rpgmenu.PopUpMenu( self.screen, self.view ) pc = self.scene.get_character_at_spot( self.view.mouse_tile ) if pc and pc in self.camp.party: # Add the techniques. self.add_spells_for_pc( pc, mymenu ) mymenu.sort() mymenu.add_alpha_keys() mymenu.add_item( "-----", False ) mymenu.add_item( "View Inventory", 6 ) else: # Add the characters. for pc in self.camp.party: if pc.is_alright(): mymenu.add_item( "{0} cast spell".format( pc ), pc ) pc = self.camp.first_living_pc() mymenu.add_item( "-----", False ) mymenu.add_item( "Center on {0}".format(pc), 1 ) mymenu.add_item( "View Map", 2 ) mymenu.add_item( "Manage Spells", 3 ) mymenu.add_item( "Camp and Rest", 4 ) mymenu.add_item( "Reorder Party", 7 ) mymenu.add_item( "Quit Game", 5 ) mymenu.add_item( "Exit", False ) choice = mymenu.query() if choice == 1: self.view.focus( self.screen, *pc.pos ) elif choice == 2: MiniMap( self ) elif choice == 3: services.SpellManager()(self) elif choice == 4: self.field_camp() elif choice == 5: self.camp.save(self.screen) self.no_quit = False elif choice == 6: self.view_party( self.camp.party.index( pc ) ) elif choice == 7: self.reorder_party() elif choice in self.camp.party: # Picked a PC. Cast one of their spells. self.pop_spell_menu( choice ) elif choice: # Presumably, this is an invocation of some kind. self.pc_use_technique( pc, choice, choice.exp_tar )
def pop_useitem_menu( self, explo, chara ): mymenu = rpgmenu.PopUpMenu( explo.screen, explo.view ) for i in chara.contents: if hasattr( i, "use" ): mymenu.add_item( str( i ) , i ) mymenu.sort() mymenu.add_alpha_keys() choice = mymenu.query() if choice: if choice.use( chara, explo ): self.end_turn( chara )
def pop_combat_menu(self, explo, chara): mymenu = rpgmenu.PopUpMenu(explo.screen, explo.view) # Add the techniques. techs = chara.get_invocations(True) for t in techs: mymenu.add_item(t.menu_str(), t) mymenu.sort() mymenu.add_alpha_keys() mymenu.add_item("-----", False) if chara.can_use_holy_sign( ) and chara.holy_signs_used < chara.holy_signs_per_day(): mymenu.add_item( "Skill: Holy Sign [{0}/{1}]".format( chara.holy_signs_per_day() - chara.holy_signs_used, chara.holy_signs_per_day()), 6) if chara.can_use_stealth() and not chara.hidden: mymenu.add_item("Skill: Stealth", 4) if self.num_enemies_hiding(chara): mymenu.add_item("Skill: Awareness", 5) if any(hasattr(i, "use") for i in chara.contents): mymenu.add_item("Use Item", 7) mymenu.add_item("View Inventory".format(str(chara)), 2) mymenu.add_item("Focus on {0}".format(str(chara)), 1) mymenu.add_item("End Turn".format(str(chara)), 3) choice = mymenu.query() if choice == 1: explo.view.focus(explo.screen, *chara.pos) elif choice == 2: explo.view_party(self.camp.party.index(chara), can_switch=False) self.end_turn(chara) elif choice == 3: self.end_turn(chara) elif choice == 4: self.attempt_stealth(explo, chara) elif choice == 5: self.attempt_awareness(explo, chara) elif choice == 6: self.attempt_holy_sign(explo, chara) elif choice == 7: self.pop_useitem_menu(explo, chara) elif choice: # Presumably, this is an invocation of some kind. if explo.pc_use_technique(chara, choice, choice.com_tar): self.end_turn(chara)