예제 #1
0
def test_attack_all_players_if_attacker_has_nova_breath():
    attack_player = Player()
    player_two = Player()
    player_three = Player()
    player_four = Player()
    player_two.move_to_tokyo()
    player_four.move_to_tokyo()
    possible_players = [player_two, player_three, player_four]
    attack_player.add_card(NovaBreath())
    attackable_players = attack_actions.get_attackable_players(
        attack_player, possible_players)
    assert attackable_players == possible_players
예제 #2
0
def test_complicated_eater_logic():
    card_holder = Player()
    card_holder.add_card(EaterOfTheDead())
    playerA = Player()
    playerB = Player()
    playerC = Player()

    game = BoardGame()
    game.add_player(card_holder)
    game.add_player(playerA)
    game.add_player(playerB)
    game.add_player(playerC)
    game.start_game()
    playerA.update_health_by(-playerA.current_health)
    game.players.apply_eater_of_dead_action()
    assert card_holder.victory_points == EaterOfTheDead.victory_points_reward_value

    playerB.update_health_by(-playerB.current_health)
    playerC.update_health_by(-playerC.current_health)
    game.players.apply_eater_of_dead_action()
    assert card_holder.victory_points == EaterOfTheDead.victory_points_reward_value * 3
예제 #3
0
def test_generate_player_status_with_cards_summary():
    player1 = Player()
    player1.add_card(EnergyHoarder())
    player1.add_card(SolarPowered())
    player2 = Player()
    player2.add_card(EvenBigger())
    player_queue = GamePlayers()
    player_queue.add_player_to_game(player1)
    player_queue.add_player_to_game(player2)
    player_queue.set_player_order()
    actual_summary: [] = generate_player_status_summary(player_queue)
    expected_p1_dictionary = player1.generate_player_status_as_dictionary()
    expected_p2_dictionary = player2.generate_player_status_as_dictionary()
    expected_summary: [] = [expected_p1_dictionary, expected_p2_dictionary]
    assert actual_summary == expected_summary
예제 #4
0
def player():
    player = Player()
    player.add_card(EvenBigger())
    EvenBigger.immediate_effect(None, player, None)
    return player