コード例 #1
0
 def execute(self, session):
     # Open a dialog window in the current scene.
     open_dialog(session, self._dialog_chain_queue, self._avatar,
                 self._menu)
     self._dialog_chain_queue = list()
     self._avatar = None
     self._menu = None
コード例 #2
0
    def host_game(self):

        # check if server is already hosting a game
        if self.game.server.listening:
            self.game.pop_state(self)
            open_dialog(local_session,
                        [T.translate('multiplayer_already_hosting')])

        # not hosting, so start the process
        elif not self.game.isclient:
            # Configure this game to host
            self.game.ishost = True
            self.game.server.server.listen()
            self.game.server.listening = True

            # Enable the game, so we can connect to self
            self.game.client.enable_join_multiplayer = True
            self.game.client.client.listen()
            self.game.client.listening = True

            # connect to self
            while not self.game.client.client.registered:
                self.game.client.client.autodiscover(autoregister=False)
                for game in self.game.client.client.discovered_servers:
                    self.game.client.client.register(game)

            # close this menu
            self.game.pop_state(self)

            # inform player that hosting is ready
            open_dialog(local_session,
                        [T.translate('multiplayer_hosting_ready')])
コード例 #3
0
        def choose_target(menu_item):
            # open menu to choose target of technique
            technique = menu_item.game_object
            if technique.next_use > 0:
                params = {"move": technique.name, "name": self.monster.name}
                tools.open_dialog(local_session, [T.format('combat_recharging', params)])
                return

            combat_state = self.client.get_state_by_name("CombatState")
            state = self.client.push_state("CombatTargetMenuState", player=combat_state.players[0],
                                           user=self.monster, action=technique)
            state.on_menu_selection = partial(enqueue_technique, technique)
コード例 #4
0
        def enqueue_item(item, menu_item):
            target = menu_item.game_object
            # is the item valid to use?
            if not item.validate(target):
                msg = T.format('cannot_use_item_monster', {'name': item.name})
                tools.open_dialog(local_session, [msg])
                return

            # enqueue the item
            combat_state = self.client.get_state_by_name("CombatState")
            # TODO: don't hardcode to player0
            combat_state.enqueue_action(combat_state.players[0], item, target)

            # close all the open menus
            self.client.pop_state()  # close target chooser
            self.client.pop_state()  # close the monster action menu
コード例 #5
0
ファイル: save_menu.py プロジェクト: jonnypjohnston/Tuxemon
 def save(self):
     logger.info("Saving!")
     try:
         save_data = save.get_save_data(local_session, )
         save.save(
             save_data,
             self.selected_index + 1,
         )
         save.slot_number = self.selected_index
     except Exception as e:
         raise
         logger.error("Unable to save game!!")
         logger.error(e)
         open_dialog(local_session, [T.translate('save_failure')])
     else:
         open_dialog(local_session, [T.translate('save_success')])
コード例 #6
0
        def swap_it(menuitem):
            monster = menuitem.game_object

            if monster in self.client.get_state_by_name('CombatState').active_monsters:
                tools.open_dialog(local_session, [T.format('combat_isactive', {"name": monster.name})])
                return
            elif monster.current_hp < 1:
                tools.open_dialog(local_session, [T.format('combat_fainted', {"name": monster.name})])
                return
            combat_state = self.client.get_state_by_name("CombatState")
            swap = Technique("swap")
            swap.combat_state = combat_state
            player = local_session.player
            target = monster
            combat_state.enqueue_action(player, swap, target)
            self.client.pop_state()  # close technique menu
            self.client.pop_state()  # close the monster action menu
コード例 #7
0
    def on_menu_selection(self, menu_item):
        """ Called when player has selected something from the inventory

        Currently, opens a new menu depending on the state context

        :param menu_item:
        :return:
        """
        item = menu_item.game_object
        state = self.determine_state_called_from()

        if not any(menu_item.game_object.validate(m) for m in local_session.player.monsters):
            msg = T.format('item_no_available_target', {'name': item.name})
            tools.open_dialog(local_session, [msg])
        elif state not in item.usable_in:
            msg = T.format('item_cannot_use_here', {'name': item.name})
            tools.open_dialog(local_session, [msg])
        else:
            self.open_confirm_use_menu(item)
コード例 #8
0
ファイル: combat.py プロジェクト: jonnypjohnston/Tuxemon
 def add(menuitem):
     monster = menuitem.game_object
     if monster.current_hp == 0:
         tools.open_dialog(local_session, [T.format("combat_fainted", parameters={"name": monster.name})])
     elif monster in self.active_monsters:
         tools.open_dialog(local_session, [T.format("combat_isactive", parameters={"name": monster.name})])
         msg = T.translate("combat_replacement_is_fainted")
         tools.open_dialog(local_session, [msg])
     else:
         self.add_monster_into_play(player, monster)
         self.client.pop_state()
コード例 #9
0
 def open_dialog(self, pages, avatar):
     logger.info("Opening chain dialog window")
     open_dialog(self.session, pages, avatar)
コード例 #10
0
 def open_dialog(self, initial_text, avatar):
     logger.info("Opening dialog window")
     open_dialog(self.session, [initial_text], avatar)
コード例 #11
0
ファイル: world_menus.py プロジェクト: sradigan/Tuxemon
 def not_implemented_dialog():
     open_dialog(local_session, [T.translate('not_implemented')])
コード例 #12
0
ファイル: world_menus.py プロジェクト: sradigan/Tuxemon
 def open_monster_stats():
     open_dialog(local_session, [T.translate('not_implemented')])