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 )
Exemplo n.º 3
0
    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 )
Exemplo n.º 4
0
    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)