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
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
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
def player(): player = Player() player.add_card(EvenBigger()) EvenBigger.immediate_effect(None, player, None) return player