72 lines
2.3 KiB
Python
72 lines
2.3 KiB
Python
from random import randint
|
|
from bang.characters import Character
|
|
from bang.expansions.the_valley_of_shadows.cards import *
|
|
from tests.dummy_socket import DummySocket
|
|
from bang.deck import Deck
|
|
from bang.game import Game
|
|
from bang.players import Player, PendingAction
|
|
|
|
# test UltimoGiro
|
|
def test_ultimo_giro():
|
|
sio = DummySocket()
|
|
g = Game('test', sio)
|
|
ps = [Player(f'p{i}', f'p{i}', sio) for i in range(3)]
|
|
for p in ps:
|
|
g.add_player(p)
|
|
g.start_game()
|
|
for p in ps:
|
|
p.available_characters = [Character('test_char', 4)]
|
|
p.set_character(p.available_characters[0].name)
|
|
ultimo_giro_guy = g.players[g.turn]
|
|
ultimo_giro_guy.draw('')
|
|
ultimo_giro_guy.lives = 3
|
|
ultimo_giro_guy.hand = [UltimoGiro(0,0)]
|
|
assert ultimo_giro_guy.lives == 3
|
|
ultimo_giro_guy.play_card(0)
|
|
assert ultimo_giro_guy.lives == 4
|
|
|
|
# test Tomahawk
|
|
def test_tomahawk():
|
|
sio = DummySocket()
|
|
g = Game('test', sio)
|
|
ps = [Player(f'p{i}', f'p{i}', sio) for i in range(6)]
|
|
for p in ps:
|
|
g.add_player(p)
|
|
g.start_game()
|
|
for p in ps:
|
|
p.available_characters = [Character('test_char', 4)]
|
|
p.set_character(p.available_characters[0].name)
|
|
tomahawk_guy = g.players[g.turn]
|
|
tomahawk_guy.draw('')
|
|
tomahawk_guy.hand = [Tomahawk(0,0)]
|
|
assert len(tomahawk_guy.hand) == 1
|
|
tomahawk_guy.play_card(0, g.players[(g.turn+3)%6].name)
|
|
assert len(tomahawk_guy.hand) == 1
|
|
tomahawk_guy.play_card(0, g.players[(g.turn+1)%6].name)
|
|
assert len(tomahawk_guy.hand) == 0
|
|
|
|
# test Fantasma
|
|
def test_fantasma():
|
|
sio = DummySocket()
|
|
g = Game('test', sio)
|
|
ps = [Player(f'p{i}', f'p{i}', sio) for i in range(3)]
|
|
for p in ps:
|
|
g.add_player(p)
|
|
g.start_game()
|
|
|
|
for p in ps:
|
|
p.available_characters = [Character('test_char', 4)]
|
|
p.set_character(p.available_characters[0].name)
|
|
fantasma_guy = g.players[g.turn]
|
|
fantasma_guy.lives = 0
|
|
fantasma_guy.notify_self()
|
|
pl = g.players[g.turn]
|
|
pl.draw('')
|
|
pl.hand = [Fantasma(0,0)]
|
|
pl.play_card(0)
|
|
assert pl.pending_action == PendingAction.CHOOSE
|
|
assert pl.available_cards[0]['name'] == fantasma_guy.name
|
|
pl.choose(0)
|
|
assert pl.pending_action == PendingAction.PLAY
|
|
assert len(fantasma_guy.equipment) == 1 and isinstance(fantasma_guy.equipment[0], Fantasma)
|