fix bandidos and add taglia test

This commit is contained in:
Alberto Xamin 2023-01-13 15:52:58 +00:00
parent 473cb2a207
commit 3972df1809
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
3 changed files with 59 additions and 2 deletions

View File

@ -133,7 +133,7 @@ class Salvo(Card):
def __init__(self, suit, number):
super().__init__(suit, 'Salvo', number)
self.icon = '😇️'
self.alt_text = "👤😇️"
self.alt_text = "👤😅"
self.need_target = True
def play_card(self, player, against, _with=None):

View File

@ -865,12 +865,13 @@ class Player:
else: self.choose_text = 'choose_from_poker;1'
self.notify_self()
elif 'choose_bandidos' in self.choose_text:
if card_index <= len(self.available_cards):
if card_index < len(self.hand):
self.available_cards.pop(card_index)
self.game.deck.scrap(self.hand.pop(card_index))
self.mancato_needed -= 1
else:
self.lives -= 1
self.mancato_needed = 0
if self.mancato_needed <= 0:
self.pending_action = PendingAction.WAIT
self.game.responders_did_respond_resume_turn()

View File

@ -140,3 +140,59 @@ def test_ritorno_di_fiamma():
assert p.pending_action == PendingAction.RESPOND
p.respond(0)
assert p1.lives == 3
# test Taglia
def test_taglia():
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)
p = g.players[g.turn]
p1 = g.players[(g.turn+1)%3]
p.draw('')
p.hand = [Taglia(0,0), Bang(1, 1)]
p1.hand = []
p.play_card(0, p1.name)
assert len(p.hand) == 1
assert len(p1.equipment) == 1
assert len(p1.hand) == 0
p.play_card(0, p1.name)
assert p1.lives == 3
assert len(p.hand) == 1
# test Bandidos
def test_bandidos():
sio = DummySocket()
g = Game('test', sio)
ps = [Player(f'p{i}', f'p{i}', sio) for i in range(2)]
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)
p = g.players[g.turn]
p1 = g.players[(g.turn+1)%3]
p.draw('')
p.hand = [Bandidos(0,0), Bandidos(0,0)]
p.play_card(0)
assert len(p.hand) == 1
assert p.pending_action == PendingAction.WAIT
assert p1.pending_action == PendingAction.CHOOSE
p1.choose(len(p1.hand))
assert p1.lives == 3
assert p.pending_action == PendingAction.PLAY
p.play_card(0)
assert len(p.hand) == 0
assert p.pending_action == PendingAction.WAIT
assert p1.pending_action == PendingAction.CHOOSE
p1.choose(0)
assert p1.pending_action == PendingAction.CHOOSE
p1.choose(0)
assert p1.pending_action == PendingAction.WAIT
assert p.pending_action == PendingAction.PLAY