def test_friendly_player_superfriends_brawl(parser): with open(logfile("friendly_player_id_is_1.power.log")) as f: parser.read(f) assert len(parser.games) == 1 packet_tree = parser.games[0] fpe = FriendlyPlayerExporter(packet_tree) friendly_player = fpe.export() assert friendly_player == 1
def test_ai_game(self, parser): with open(logfile("puzzlelab.power.log")) as f: parser.read(f) assert len(parser.games) == 1 packet_tree = parser.games[0] fpe = FriendlyPlayerExporter(packet_tree) friendly_player = fpe.export() assert friendly_player == 1
def test_battlegrounds(self, parser): with open(logfile("36393_battlegrounds.power.log")) as f: parser.read(f) assert len(parser.games) == 1 packet_tree = parser.games[0] fpe = FriendlyPlayerExporter(packet_tree) friendly_player = fpe.export() assert friendly_player == 3
def test_game_initialization(): parser = LogParser() parser.read(StringIO(INITIAL_GAME)) parser.flush() assert len(parser.games) == 1 packet_tree = parser.games[0] game = packet_tree.export().game assert len(game.entities) == 3 assert len(game.players) == 2 assert game.tags == { GameTag.TURN: 1, GameTag.ZONE: Zone.PLAY, GameTag.ENTITY_ID: 1, GameTag.NEXT_STEP: Step.BEGIN_MULLIGAN, GameTag.CARDTYPE: CardType.GAME, GameTag.STATE: State.RUNNING, } assert game.initial_state == State.RUNNING assert game.initial_step == Step.INVALID assert game.players[0].tags == { GameTag.PLAYSTATE: PlayState.PLAYING, GameTag.PLAYER_ID: 1, GameTag.TEAM_ID: 1, GameTag.ZONE: Zone.PLAY, GameTag.CONTROLLER: 1, GameTag.ENTITY_ID: 2, GameTag.CARDTYPE: CardType.PLAYER, } assert game.players[1].tags == { GameTag.PLAYSTATE: PlayState.PLAYING, GameTag.CURRENT_PLAYER: 1, GameTag.FIRST_PLAYER: 1, GameTag.PLAYER_ID: 2, GameTag.TEAM_ID: 2, GameTag.ZONE: Zone.PLAY, GameTag.CONTROLLER: 2, GameTag.ENTITY_ID: 3, GameTag.CARDTYPE: CardType.PLAYER, } # Test that there should be no friendly player fpe = FriendlyPlayerExporter(packet_tree) friendly_player = fpe.export() assert not friendly_player
def run(self): with open(self.path) as f: self.parser.read(f) self.parser.flush() tps = self.parser.games fp_id = FriendlyPlayerExporter(tps[-1]).export() turn = LastTurnExporter(tps[-1], self.last_ts, fp_id).export() if not self.last_turn: self.last_turn = turn if (turn.ts > self.last_turn.ts and turn.player): ## GET MINIONS / HAND_CARDS / HERO_POWERS time.sleep(1.2) img = screen.shot() print("EMinions {} - PMinions {} - HandCards {}".format( turn.enemy_minions, turn.player_minions, turn.hand_cards)) base_name = "em{}_pm{}_hc{}".format(turn.enemy_minions, turn.player_minions, turn.hand_cards) count = len([ f for f in listdir("images") if isfile(join("images", f)) and base_name in f and ".png" in f ]) if (count > 2): count = randrange(0, 2) base_name = "images/{}_{}".format(count, base_name) img_name = base_name + ".png" xml_name = base_name + ".xml" temp = create_battlefield(img, turn.hand_cards, turn.enemy_minions, turn.player_minions, turn.enemy_power, turn.player_power) temp.save(xml_name) screen.save(img, img_name) self.game.show_img(img_name) self.last_turn = turn