From c171739db83bce3f8eb84b6c2e5590f7db4a1d7f Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Thu, 13 Jun 2024 15:57:13 +0300 Subject: [PATCH] add circus wagon --- backend/bang/expansions/train_robbery/trains.py | 9 +++++++++ backend/bang/players.py | 9 ++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/backend/bang/expansions/train_robbery/trains.py b/backend/bang/expansions/train_robbery/trains.py index b0680e9..4ccae83 100644 --- a/backend/bang/expansions/train_robbery/trains.py +++ b/backend/bang/expansions/train_robbery/trains.py @@ -164,8 +164,17 @@ class CircusWagon(TrainCard): self.icon = "🚋🎪" def play_card(self, player, against=None, _with=None) -> bool: + player.game.discard_others(player, card_name=self.name) return True + @classmethod + def choose_circus_wagon(cls, player: 'Player', card_index): + player.game.deck.scrap(player.hand.pop(card_index), player=player) + player.pending_action = PendingAction.WAIT + player.game.responders_did_respond_resume_turn() + player.notify_self() + + class CoalHopper(TrainCard): """Scartalo: pesca una carta e scarta un vagone in gioco davanti a un giocatore a ma scelta.""" diff --git a/backend/bang/players.py b/backend/bang/players.py index 95b58b8..5056006 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -1928,7 +1928,7 @@ class Player: self.notify_self() def get_discarded(self, attacker=None, card_name=None, action=None): - if card_name in {"Tornado", "Poker", "Bandidos"}: + if card_name in {"Tornado", "Poker", "Bandidos", "Circus Wagon"}: self.pending_action = PendingAction.CHOOSE self.available_cards = self.hand.copy() if card_name == "Tornado": @@ -1941,6 +1941,13 @@ class Player: self.available_cards.append( {"name": "-1hp", "icon": "💔", "noDesc": True} ) + if card_name == "Circus Wagon": + from bang.expansions.train_robbery.trains import CircusWagon + self.set_choose_action( + "choose_circus_wagon", + self.hand.copy(), + CircusWagon.choose_circus_wagon, + ) return True else: if self.can_escape(card_name) or self.character.check(