def _summarize(self):
        """Game summary implementation."""
        self._achievements_summarized = True
        data = None
        if self._postgame:
            data = self._postgame.action
        game_type = 'DM' if self._header.lobby.game_type == 'DM' else 'RM'
        self._summary = {
            'players': list(self.players(data, game_type)),
            'diplomacy': self._diplomacy,
            'rec_owner_index': self._header.replay.rec_player,
            'rec_owner_number': self._rec_owner_number(),
            'settings': {
                'type': game_type,
                'difficulty': self._header.scenario.game_settings.difficulty,
                # data.resource_level
                'resource_level': 'standard',
                'population_limit': self._header.lobby.population_limit * 25,
                'speed': mgz.const.SPEEDS.get(self._header.replay.game_speed),
                'reveal_map': self._header.lobby.reveal_map,
                # self._get_starting_age(data.starting_age)
                'starting_age': 'Dark' if game_type == 'RM' else 'Post Imperial',
                'victory_condition': ('conquest' if self._header.scenario.victory.is_conquest
                                      else 'other'),
                # not data.team_together
                'team_together': True,
                # data.all_techs
                'all_technologies': False,
                'cheats': self._header.replay.cheats_enabled,
                'lock_teams': self._header.lobby.lock_teams,
                # data.lock_speed
                'lock_speed': True,
                'record_game': True
            },
            'map': {
                'name': self._map.name(),
                'size': self._map.size(),
                'x': self._header.map_info.size_x,
                'y': self._header.map_info.size_y,
                'nomad': self.is_nomad(),
                'regicide': self.is_regicide(),
                'arena': self.is_arena(),
                'hash': self._map_hash()
            },
            'mod': self._get_mod(),
            'restore': {
                'restored': self._header.initial.restore_time > 0,
                'start_int': self._header.initial.restore_time,
                'start_time': mgz.util.convert_to_timestamp(self._header.initial.restore_time /
                                                            1000)
            },
            'voobly': {
                'ladder': self._ladder,
                'rated': self._ladder != None
            },
            'number_of_humans': len([p for p in self._header.scenario.game_settings.player_info
                                     if p['type'] == 'human']),
            'number_of_ai': len([p for p in self._header.scenario.game_settings.player_info
                                 if p['type'] == 'computer']),
            'duration': mgz.util.convert_to_timestamp(self._time / 1000),
            'time_int': self._time,
            'metadata': {
                'hash': self._hash,
                'version': mgz.const.VERSIONS[self._header.version],
                'sub_version': round(self._header.sub_version, 2),
                'filename': os.path.basename(self._path),
                'timestamp': self._get_timestamp()
            },
            'action_histogram': dict(self._actions_without_player),
            'queue': self._queue
        }
        self._summary['finished'] = guess_finished(self._summary, data)
        if self._summary['finished']:
            self._summary['won_in'] = self._won_in().title()
            self._set_winning_team()
        if self._show_chat:
            self._summary['chat'] = self._chat
        if self._show_timeline:
            self._summary['timeline'] = self._timeline
        if self._show_coords:
            self._summary['coords'] = self._coords
def _summarize ( self ) : self . _achievements_summarized = True data = None if self . _postgame : data = self . _postgame . action game_type = 'DM' if self . _header . lobby . game_type == 'DM' else 'RM' self . _summary = { 'players' : list ( self . players ( data , game_type ) ) , 'diplomacy' : self . _diplomacy , 'rec_owner_index' : self . _header . replay . rec_player , 'rec_owner_number' : self . _rec_owner_number ( ) , 'settings' : { 'type' : game_type , 'difficulty' : self . _header . scenario . game_settings . difficulty , 'resource_level' : 'standard' , 'population_limit' : self . _header . lobby . population_limit * 25 , 'speed' : mgz . const . SPEEDS . get ( self . _header . replay . game_speed ) , 'reveal_map' : self . _header . lobby . reveal_map , 'starting_age' : 'Dark' if game_type == 'RM' else 'Post Imperial' , 'victory_condition' : ( 'conquest' if self . _header . scenario . victory . is_conquest else 'other' ) , 'team_together' : True , 'all_technologies' : False , 'cheats' : self . _header . replay . cheats_enabled , 'lock_teams' : self . _header . lobby . lock_teams , 'lock_speed' : True , 'record_game' : True } , 'map' : { 'name' : self . _map . name ( ) , 'size' : self . _map . size ( ) , 'x' : self . _header . map_info . size_x , 'y' : self . _header . map_info . size_y , 'nomad' : self . is_nomad ( ) , 'regicide' : self . is_regicide ( ) , 'arena' : self . is_arena ( ) , 'hash' : self . _map_hash ( ) } , 'mod' : self . _get_mod ( ) , 'restore' : { 'restored' : self . _header . initial . restore_time > 0 , 'start_int' : self . _header . initial . restore_time , 'start_time' : mgz . util . convert_to_timestamp ( self . _header . initial . restore_time / 1000 ) } , 'voobly' : { 'ladder' : self . _ladder , 'rated' : self . _ladder != None } , 'number_of_humans' : len ( [ p for p in self . _header . scenario . game_settings . player_info if p [ 'type' ] == 'human' ] ) , 'number_of_ai' : len ( [ p for p in self . _header . scenario . game_settings . player_info if p [ 'type' ] == 'computer' ] ) , 'duration' : mgz . util . convert_to_timestamp ( self . _time / 1000 ) , 'time_int' : self . _time , 'metadata' : { 'hash' : self . _hash , 'version' : mgz . const . VERSIONS [ self . _header . version ] , 'sub_version' : round ( self . _header . sub_version , 2 ) , 'filename' : os . path . basename ( self . _path ) , 'timestamp' : self . _get_timestamp ( ) } , 'action_histogram' : dict ( self . _actions_without_player ) , 'queue' : self . _queue } self . _summary [ 'finished' ] = guess_finished ( self . _summary , data ) if self . _summary [ 'finished' ] : self . _summary [ 'won_in' ] = self . _won_in ( ) . title ( ) self . _set_winning_team ( ) if self . _show_chat : self . _summary [ 'chat' ] = self . _chat if self . _show_timeline : self . _summary [ 'timeline' ] = self . _timeline if self . _show_coords : self . _summary [ 'coords' ] = self . _coords
Game summary implementation.