From 0e2edb7a24fef471cfda67aeabeb48da2c937891 Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Wed, 23 Dec 2020 18:38:26 +0100 Subject: [PATCH] fix logiche --- backend/bang/cards.py | 7 +++---- backend/bang/game.py | 4 +--- backend/bang/players.py | 1 + 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/backend/bang/cards.py b/backend/bang/cards.py index f4f9055..4afab56 100644 --- a/backend/bang/cards.py +++ b/backend/bang/cards.py @@ -198,10 +198,9 @@ class Bang(Card): import bang.characters as chars super().play_card(player, against=against) player.bang_used += 1 - player.has_played_bang = not isinstance( - player.character, chars.WillyTheKid) - if player.game.check_event(ceh.Sparatoria) and player.has_played_bang: - player.has_played_bang = player.bang_used > 1 + player.has_played_bang = player.bang_used > 1 + if player.character.check(player.game, chars.WillyTheKid): + player.has_played_bang = False player.game.attack(player, against, double=player.character.check(player.game, chars.SlabTheKiller)) return True return False diff --git a/backend/bang/game.py b/backend/bang/game.py index 1576eae..89f8359 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -259,9 +259,7 @@ class Game: self.players[self.turn].pending_action = pl.PendingAction.PLAY self.players[self.turn].notify_self() - def next_player(self): - if self.check_event(ceh.CorsaAllOro): - return self.players[(self.turn - 1) % len(self.players)] + def next_player(self): #viene usato solo per passare la dinamite return self.players[(self.turn + 1) % len(self.players)] def play_turn(self): diff --git a/backend/bang/players.py b/backend/bang/players.py index f7b0f73..177ef0d 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -326,6 +326,7 @@ class Player: if self.character.check(self.game, chars.BartCassidy) and self.lives > 0: self.hand.append(self.game.deck.draw(True)) self.sio.emit('chat_message', room=self.game.name, data=f'_special_bart_cassidy|{self.name}') + self.heal_if_needed() if self.lives <= 0: return self.notify_self() if self.game.check_event(ce.FratelliDiSangue) and self.lives > 1 and not self.is_giving_life and len([p for p in self.game.players if p != self and p.lives < p.max_lives]):