diff --git a/backend/bang/expansions/wild_west_show/characters.py b/backend/bang/expansions/wild_west_show/characters.py index edd39c5..a677fb8 100644 --- a/backend/bang/expansions/wild_west_show/characters.py +++ b/backend/bang/expansions/wild_west_show/characters.py @@ -123,17 +123,22 @@ class YoulGrinner(Character): def all_characters() -> List[Character]: + """ + Returns a list of all characters in this expansion. + """ cards = [ BigSpencer(), FlintWestwood(), - # GaryLooter(), + GaryLooter(), # GreygoryDeckard(), JohnPain(), LeeVanKliff(), TerenKill(), YoulGrinner(), ] - for c in cards: - c.expansion_icon = "🎪" - c.expansion = "wild_west_show" + for card in cards: + card.expansion_icon = "🎪" # pylint: disable=attribute-defined-outside-init + card.expansion = ( # pylint: disable=attribute-defined-outside-init + "wild_west_show" + ) return cards diff --git a/backend/bang/players.py b/backend/bang/players.py index e8f5a33..c7d1e65 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -2465,7 +2465,21 @@ class Player: self.game.deck.draw(True, player=self) self.game.deck.draw(True, player=self) self.special_use_count += 1 - self.game.deck.scrap(card, player=self) + gary_looter = None + for p in self.game.players: + if p.character.check(self.game, chw.GaryLooter): + gary_looter = p + break + if gary_looter is not None: + G.sio.emit( + "card_drawn", + room=self.game.name, + data={"player": gary_looter.name, "pile": self.name}, + ) + gary_looter.hand.append(card) + gary_looter.notify_self() + else: + self.game.deck.scrap(card, player=self) self.notify_self() def special(self, data):