diff --git a/backend/bang/cards.py b/backend/bang/cards.py index 4c6edcf..0d340e0 100644 --- a/backend/bang/cards.py +++ b/backend/bang/cards.py @@ -66,7 +66,7 @@ class Card(ABC): if (player.game.check_event(ce.IlGiudice)) and self.usable_next_turn and not self.can_be_used_now: return False if self.is_equipment: - if (player.game.check_event(ce.IlGiudice)): + if (player.game.check_event(ce.IlGiudice)) or not self.can_be_used_now: return False if self.is_weapon: has_weapon = False @@ -89,7 +89,6 @@ class Card(ABC): else: player.sio.emit('chat_message', room=player.game.name, data=f'_play_card|{player.name}|{self.name}') - self.reset_card() return True def use_card(self, player): @@ -154,7 +153,7 @@ class Prigione(Card): if (player.game.check_event(ce.IlGiudice)): return False if against != None and not isinstance(player.game.get_player_named(against).role, r.Sheriff): - self.reset_card() + self.can_be_used_now = False player.sio.emit('chat_message', room=player.game.name, data=f'_play_card_against|{player.name}|{self.name}|{against}') player.game.get_player_named(against).equipment.append(self) diff --git a/backend/bang/expansions/the_valley_of_shadows/cards.py b/backend/bang/expansions/the_valley_of_shadows/cards.py index d3c58bc..cfb3afb 100644 --- a/backend/bang/expansions/the_valley_of_shadows/cards.py +++ b/backend/bang/expansions/the_valley_of_shadows/cards.py @@ -10,7 +10,7 @@ class Fantasma(Card): self.icon = '👻️' #porta in vita i giocatori morti ma non def play_card(self, player, against, _with=None): - if (player.game.check_event(ce.IlGiudice)): + if (player.game.check_event(ce.IlGiudice)) or not self.can_be_used_now: return False if len(player.game.get_dead_players(include_ghosts=False)) > 0: player.pending_action = pl.PendingAction.CHOOSE @@ -22,7 +22,8 @@ class Fantasma(Card): 'alt_text': ''.join(['❤️']*p.lives)+''.join(['💀']*(p.max_lives-p.lives)), 'is_character': True, 'is_player': True - } for p in player.game.get_dead_players(include_ghosts=False)] + } for p in player.game.get_dead_players(include_ghosts=False)] + self.can_be_used_now = False player.game.deck.scrap(self, True) return True return False @@ -41,10 +42,10 @@ class SerpenteASonagli(Card): self.alt_text = "♠️ =💔" def play_card(self, player, against, _with=None): - if (player.game.check_event(ce.IlGiudice)): + if (player.game.check_event(ce.IlGiudice)) or not self.can_be_used_now: return False if against != None: - self.reset_card() + self.can_be_used_now = False player.sio.emit('chat_message', room=player.game.name, data=f'_play_card_against|{player.name}|{self.name}|{against}') player.game.get_player_named(against).equipment.append(self) @@ -64,7 +65,7 @@ class Taglia(Card): self.icon = '💰' # chiunque colpisca il giocatore con la taglia pesca una carta dal mazzo, si toglie solo con panico, cat balou, dalton def play_card(self, player, against, _with=None): - if (player.game.check_event(ce.IlGiudice)): + if (player.game.check_event(ce.IlGiudice)) or not self.can_be_used_now: return False if against != None: self.can_be_used_now = False