From 3972df180918c053acf89c1dce913188422ff5d3 Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Fri, 13 Jan 2023 15:52:58 +0000 Subject: [PATCH] fix bandidos and add taglia test --- .../expansions/the_valley_of_shadows/cards.py | 2 +- backend/bang/players.py | 3 +- backend/tests/valley_of_shadows_test.py | 56 +++++++++++++++++++ 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/backend/bang/expansions/the_valley_of_shadows/cards.py b/backend/bang/expansions/the_valley_of_shadows/cards.py index a297b64..9d4a31f 100644 --- a/backend/bang/expansions/the_valley_of_shadows/cards.py +++ b/backend/bang/expansions/the_valley_of_shadows/cards.py @@ -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): diff --git a/backend/bang/players.py b/backend/bang/players.py index 2ed6150..29c2c25 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -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() diff --git a/backend/tests/valley_of_shadows_test.py b/backend/tests/valley_of_shadows_test.py index c477ab2..5090b40 100644 --- a/backend/tests/valley_of_shadows_test.py +++ b/backend/tests/valley_of_shadows_test.py @@ -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 \ No newline at end of file