Exemple #1
0
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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
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
Exemple #5
0
    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