From 39377bbb3158c505b5626eebc1ddddf416d4f642 Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Wed, 23 Dec 2020 15:41:10 +0100 Subject: [PATCH] sparatoria --- backend/bang/cards.py | 6 +++++- backend/bang/expansions/high_noon/card_events.py | 8 +++++++- backend/bang/players.py | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/backend/bang/cards.py b/backend/bang/cards.py index 10d0a69..f4f9055 100644 --- a/backend/bang/cards.py +++ b/backend/bang/cards.py @@ -197,8 +197,11 @@ class Bang(Card): elif against != None: 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.game.attack(player, against, double=player.character.check(player.game, chars.SlabTheKiller)) return True return False @@ -335,7 +338,8 @@ class Mancato(Card): return False player.sio.emit('chat_message', room=player.game.name, data=f'_special_calamity|{player.name}|{self.name}|{against}') - player.has_played_bang = True + player.bang_used += 1 + player.has_played_bang = True if not player.game.check_event(ceh.Sparatoria) else player.bang_used > 1 player.game.attack(player, against) return True return False diff --git a/backend/bang/expansions/high_noon/card_events.py b/backend/bang/expansions/high_noon/card_events.py index 6a58765..47897d4 100644 --- a/backend/bang/expansions/high_noon/card_events.py +++ b/backend/bang/expansions/high_noon/card_events.py @@ -50,6 +50,12 @@ class Sermone(CardEvent): self.desc = "I giocatori non possono giocare Bang!" self.desc_eng = "" +class Sparatoria(CardEvent): + def __init__(self): + super().__init__("Sparatoria", "‼️") + self.desc = "Il limite di bang è 2 invece che 1!" + self.desc_eng = "" + class MezzogiornoDiFuoco(CardEvent): def __init__(self): super().__init__("Mezzogiorno di Fuoco", "🔥") @@ -69,7 +75,7 @@ def get_all_events(): Sbornia(), Sermone(), Sete(), - # Sparatoria(), + Sparatoria(), ] random.shuffle(cards) # cards.append(MezzogiornoDiFuoco()) diff --git a/backend/bang/players.py b/backend/bang/players.py index 2b141ca..b519b0b 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -59,6 +59,7 @@ class Player: self.mancato_needed = 0 self.molly_discarded_cards = 0 self.is_bot = bot + self.bang_used = 0 self.special_use_count = 0 def reset(self): @@ -319,6 +320,7 @@ class Player: self.is_waiting_for_action = True self.has_played_bang = False self.special_use_count = 0 + self.bang_used = 0 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]): self.available_cards = [{ 'name': p.name,