예제 #1
0
 def as_omniscient_game(self, for_username):
     """ Return an omniscient game data object copy of this game. """
     game = Game.from_dict(self.to_dict())
     game.message_history = self.get_message_history(
         strings.OMNISCIENT_TYPE)
     game.messages = self.get_messages(strings.OMNISCIENT_TYPE)
     game.phase_abbr = game.current_short_phase
     for power in game.powers.values():  # type: Power
         power.role = strings.OMNISCIENT_TYPE
         power.tokens.clear()
     game.role = strings.OMNISCIENT_TYPE
     game.controlled_powers = self.get_controlled_power_names(for_username)
     game.observer_level = self.get_observer_level(for_username)
     game.daide_port = self.server.get_daide_port(
         self.game_id) if self.server else None
     return game
예제 #2
0
 def as_power_game(self, power_name):
     """ Return a player game data object copy of this game for given power name. """
     for_username = self.get_power(power_name).get_controller()
     game = Game.from_dict(self.to_dict())
     game.error = []
     game.message_history = self.get_message_history(power_name)
     game.messages = self.get_messages(power_name)
     game.phase_abbr = game.current_short_phase
     related_power_names = self.get_related_power_names(power_name)
     for power in game.powers.values():  # type: Power
         power.role = power.name
         power.tokens.clear()
         if power.name not in related_power_names:
             power.vote = strings.NEUTRAL
             power.orders.clear()
     game.role = power_name
     game.controlled_powers = self.get_controlled_power_names(for_username)
     game.observer_level = self.get_observer_level(for_username)
     game.daide_port = self.server.get_daide_port(
         self.game_id) if self.server else None
     return game