def test_horde_show_up_two_zombies_left_in_city_no_graveyard(): gs = GameState() gs.players = [PlayerShelter(), PlayerShelter(), PlayerShelter()] gs.active_player = gs.players[1] gs.city_deck = [ CityCard(ZombieType.HORDE), CityCard(ZombieType.ZOMBIE), CityCard(ZombieType.ZOMBIE) ] gs.zombie_show_up() assert len(gs.city_deck) == 0 assert len(gs.players[0].zombies) == 1 assert len(gs.players[1].zombies) == 0 assert len(gs.players[2].zombies) == 1 assert len(gs.active_player.zombies) == 0 gs = GameState() gs.players = [PlayerShelter(), PlayerShelter(), PlayerShelter()] gs.active_player = gs.players[2] gs.city_deck = [ CityCard(ZombieType.HORDE), CityCard(ZombieType.ZOMBIE), CityCard(ZombieType.ZOMBIE) ] gs.zombie_show_up() assert len(gs.city_deck) == 0 assert len(gs.players[0].zombies) == 1 assert len(gs.players[1].zombies) == 1 assert len(gs.players[2].zombies) == 0 assert len(gs.active_player.zombies) == 0
def test_gui_default(fast_zombie, zombie, big_zombie): gs = GameState() gs.players = [ PlayerShelter('Name_1'), PlayerShelter('Name_2'), PlayerShelter('Name_3') ] gs.players[1].zombies = [ zombie, fast_zombie, fast_zombie, big_zombie, zombie ] gs.players[1].obstacles = [Supply.BARRICADES, Supply.ALARM] gs.players[1].survivors = [CityCard(), CityCard()] gs.players[2].zombies = [big_zombie, big_zombie] gs.players[2].obstacles = [Supply.MINE_FILED] gs.players[2].survivors = [CityCard(), CityCard(), CityCard()] gs.active_player = gs.players[0] shelter = gs.active_player shelter.print = dumper_factory() shelter.zombies = [zombie] shelter.supplies = [Supply.AXE, Supply.MINE_FILED, Supply.LURE_OUT] shelter.obstacles = [Supply.MINE_FILED, Supply.ALARM] shelter.survivors = [CityCard(), CityCard(), CityCard(), CityCard()] shelter.gui_default(gs) assert len(tests.common.outputs) == 1 assert len(tests.common.outputs[0]) == 684 gs.city_deck = [zombie, CityCard()] shelter.gui_default(gs) assert len(tests.common.outputs) == 2 assert len(tests.common.outputs[1]) == 706
def test_fast_zombie_show_up(): gs = GameState() gs.active_player = PlayerShelter() gs.city_deck = [CityCard(ZombieType.FAST)] gs.zombie_show_up() assert len(gs.active_player.zombies) == 1 assert gs.active_player.zombies[0].top == ZombieType.FAST assert len(gs.city_deck) == 0
def test_horde_show_up_second_time(): gs = GameState() gs.players = [PlayerShelter(), PlayerShelter(), PlayerShelter()] gs.active_player = gs.players[1] horde = ZombieType.HORDE zombie = ZombieType.ZOMBIE gs.city_deck = [ CityCard(horde), CityCard(zombie), CityCard(horde), CityCard(zombie), CityCard(zombie), CityCard(zombie), CityCard(zombie), CityCard(zombie) ] gs.zombie_show_up() assert len(gs.city_deck) == 0 assert len(gs.city_graveyard) == 2 assert len(gs.players[0].zombies) == 2 assert len(gs.players[1].zombies) == 1 assert len(gs.players[2].zombies) == 2 assert len(gs.active_player.zombies) == 1 gs = GameState() gs.players = [PlayerShelter(), PlayerShelter(), PlayerShelter()] gs.active_player = gs.players[2] gs.city_deck = [ CityCard(horde), CityCard(horde), CityCard(zombie), CityCard(zombie), CityCard(zombie), CityCard(zombie), CityCard(zombie), CityCard(zombie) ] gs.zombie_show_up() assert len(gs.city_deck) == 0 assert len(gs.city_graveyard) == 2 assert len(gs.players[0].zombies) == 2 assert len(gs.players[1].zombies) == 2 assert len(gs.players[2].zombies) == 1 assert len(gs.active_player.zombies) == 1
def test_zombie_show_up(): gs = GameState() gs.active_player = PlayerShelter() gs.city_deck = [CityCard(ZombieType.ZOMBIE)] gs.zombie_show_up() assert gs.city_deck[0].top == ZombieType.ZOMBIE assert gs.city_deck[0].bottom == ZombieType.SURVIVOR assert len(gs.city_deck) == 1 gs.zombie_show_up() assert len(gs.active_player.zombies) == 1 assert gs.active_player.zombies[0].top == ZombieType.ZOMBIE assert len(gs.city_deck) == 0 gs.city_deck = [CityCard(ZombieType.BIG)] gs.zombie_show_up() assert gs.city_deck[0].top == ZombieType.BIG assert gs.city_deck[0].bottom == ZombieType.SURVIVOR assert len(gs.city_deck) == 1 gs.zombie_show_up() assert len(gs.active_player.zombies) == 2 assert gs.active_player.zombies[1].top == ZombieType.BIG assert len(gs.city_deck) == 0
async def test_play_round_use_loud_tool(zombie): gs = GameState() gs.players = [PlayerShelter('0'), PlayerShelter('1')] gs.players[1].survivors = [CityCard()] gs.players[1].zombies = [zombie] gs.active_player = gs.players[0] gs.city_deck = [CityCard()] shelter = gs.active_player shelter.print = dumper_factory() shelter.input = helper_factory(['0', '2']) shelter.survivors = [CityCard()] shelter.supplies = [Supply.GUN, Supply.BARRICADES, Supply.ALARM] await gs.play_round() assert len(shelter.supplies) == 3 assert gs.city_deck[0].top == ZombieType.ZOMBIE assert gs.active_player != shelter
async def test_play_round_last_supplies(zombie): gs = GameState() gs.players = [PlayerShelter('0'), PlayerShelter('1')] gs.supply_deck = [Supply.SACRIFICE, Supply.DRONE, Supply.GUN] gs.city_deck = [CityCard()] gs.players[1].survivors = [CityCard()] gs.active_player = gs.players[0] shelter = gs.active_player shelter.print = dumper_factory() shelter.input = helper_factory(['0', '0', '0', 'y']) shelter.survivors = [CityCard()] shelter.zombies = [zombie] shelter.supplies = [Supply.RADIO, Supply.BARRICADES, Supply.ALARM] await gs.play_round() assert len(shelter.supplies) == 3 assert gs.final_attack assert gs.last_supplies_taken assert gs.active_player != shelter
def test_zombie_show_up_empty_city(): gs = GameState() gs.active_player = PlayerShelter() gs.city_deck = [] gs.zombie_show_up() assert len(gs.active_player.zombies) == 0