diff --git a/backend/__init__.py b/backend/__init__.py index 2103ff9..4d1ad8b 100644 --- a/backend/__init__.py +++ b/backend/__init__.py @@ -262,5 +262,10 @@ def scrap(sid, card_index): ses: Player = sio.get_session(sid) ses.scrap(card_index) +@sio.event +def chuck_lose_hp_draw(sid): + ses: Player = sio.get_session(sid) + ses.chuck_lose_hp_draw() + if __name__ == '__main__': eventlet.wsgi.server(eventlet.listen(('', 5001)), app) diff --git a/backend/bang/expansions/dodge_city/characters.py b/backend/bang/expansions/dodge_city/characters.py index 962c2e1..4298a5a 100644 --- a/backend/bang/expansions/dodge_city/characters.py +++ b/backend/bang/expansions/dodge_city/characters.py @@ -78,6 +78,12 @@ class VeraCuster(Character): self.desc_eng = "Before drawing, she may choose the special ability on another alive player. This ability is used until next turn." self.icon = '🎭' +class ChuckWengam(Character): + def __init__(self): + super().__init__("Chuck Wengam", max_lives=4) + self.desc = "Durante il suo turno può perdere una vita per pescare 2 carte dal mazzo." + self.desc_eng = "On his turn he may decide to lose 1 HP to draw 2 cards from the deck." + self.icon = '💰' def all_characters() -> List[Character]: return [ @@ -92,6 +98,7 @@ def all_characters() -> List[Character]: SeanMallory(), BelleStar(), VeraCuster(), + ChuckWengam(), ] #Apache Kid: il suo effetto non conta nei duelli diff --git a/backend/bang/players.py b/backend/bang/players.py index 46a4afc..6246799 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -660,6 +660,13 @@ class Player: self.game.deck.scrap(self.hand.pop(card_index)) self.notify_self() + def chuck_lose_hp_draw(self): + if isinstance(self.character, chd.ChuckWengam) and self.lives > 1 and self.is_my_turn: + self.lives -= 1 + self.hand.append(self.game.deck.draw()) + self.hand.append(self.game.deck.draw()) + self.notify_self() + def end_turn(self, forced=False): if not self.is_my_turn: return diff --git a/frontend/src/components/Player.vue b/frontend/src/components/Player.vue index 06a200c..2b28fc9 100644 --- a/frontend/src/components/Player.vue +++ b/frontend/src/components/Player.vue @@ -20,6 +20,8 @@

{{desc}}

+ +
{{$t('hand')}} @@ -46,7 +48,6 @@ -
@@ -220,6 +221,9 @@ export default { this.sidWantsScrapForHealth = false } }, + chuckSpecial(){ + this.$socket.emit('chuck_lose_hp_draw') + }, end_turn(){ console.log('ending turn') this.cancelEndingTurn()