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}}