Exemplo n.º 1
0
    def create_test_game_details(self):
        game_details = replay_pb2.GameDetails()
        game_details.map_name = 'arabia'
        game_details.map_size = 200
        game_details.game_speed = 2.0
        game_details.duration_millis = 600 * 1000

        random_player = game_details.players.add()
        my_player = game_details.players.add()
        my_player.name = self.conf.player

        feudal = my_player.actions.add()
        castle = my_player.actions.add()
        imperial = my_player.actions.add()

        feudal.offset_millis = 60 * 1000
        castle.offset_millis = 120 * 1000
        imperial.offset_millis = 200 * 1000

        feudal.type = replay_pb2.RESEARCH
        castle.type = replay_pb2.RESEARCH
        imperial.type = replay_pb2.RESEARCH

        feudal.tech_id = replay_pb2.FEUDAL_AGE
        castle.tech_id = replay_pb2.CASTLE_AGE
        imperial.tech_id = replay_pb2.IMPERIAL_AGE

        filepath = os.path.join(self.conf.ts_root, 'game_details.pb.gz')
        io_util.serialize_to_gz_file(filepath, game_details)
        return game_details, filepath
Exemplo n.º 2
0
 def test_plot_replay_by_idx(self):
     ts, filepath = self.create_test_timeserie(33, 66 * 1000)
     replay_repo = self.create_test_replay_repo([0, 33], [11, 99],
                                                ['rec1', 'rec2'])
     replay = replay_repo.replays[1]
     replay.timeserie = filepath
     self.conf.subcommand = ['plot_replay', '1']
     io_util.serialize_to_gz_file(self.conf.replay_repo, replay_repo)
     aoe2_apm_show.plot_replay_by_idx(self.conf)
Exemplo n.º 3
0
 def create_test_replay_repo(self, start_list, end_list, name_list):
     repo = replay_pb2.ReplayRepo()
     for idx, name in enumerate(name_list):
         entry = repo.replays.add()
         entry.filepath = os.path.join(self.conf.aoe2_replay_dir, name)
         entry.start_secs = start_list[idx]
         entry.end_secs = end_list[idx]
     io_util.serialize_to_gz_file(self.conf.replay_repo, repo)
     return repo
Exemplo n.º 4
0
 def create_test_timeserie_repo(self, start_list, end_list, name_list):
     repo = timeserie_pb2.TimeserieRepo()
     for idx, name in enumerate(name_list):
         entry = repo.entries.add()
         entry.filepath = os.path.join(self.conf.ts_root, name)
         entry.start_secs = start_list[idx]
         if end_list[idx]: entry.end_secs = end_list[idx]
     io_util.serialize_to_gz_file(self.conf.timeserie_repo, repo)
     return repo
def write_game_details(parser_input):
    try:
        game_details = write_game_details_internal(parser_input.conf,
                                                   parser_input.filepath)
        str_date = dt.datetime.fromtimestamp(
            parser_input.start_secs).strftime("%Y-%m-%d-%H%M")
        filepath = os.path.join(
            parser_input.conf.ts_root, "game_details_%s_%s.pb.gz" %
            (game_details.map_name.replace(' ', ''), str_date))
        io_util.serialize_to_gz_file(filepath, game_details)
        duration = int(game_details.duration_millis /
                       (game_details.game_speed * 1000))
        return util.ParserResult(True, filepath, duration)
    except:
        logging.exception("Failed parsing %r", parser_input.filepath)
        return util.ParserResult(False, '', 0)