From 60b5c7699e7c2ae865b39d99f24d2e1de2ecaa13 Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Wed, 23 Dec 2020 15:14:21 +0100 Subject: [PATCH] il dottore --- backend/bang/expansions/high_noon/card_events.py | 8 +++++++- backend/bang/game.py | 13 ++++++++++++- frontend/src/i18n/en.json | 3 ++- frontend/src/i18n/it.json | 3 ++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/backend/bang/expansions/high_noon/card_events.py b/backend/bang/expansions/high_noon/card_events.py index 51548ee..ec57619 100644 --- a/backend/bang/expansions/high_noon/card_events.py +++ b/backend/bang/expansions/high_noon/card_events.py @@ -37,6 +37,12 @@ class IlReverendo(CardEvent): self.desc = "Non si possono giocare birre" self.desc_eng = "" +class IlDottore(CardEvent): + def __init__(self): + super().__init__("Il Dottore", "👨‍⚕️") + self.desc = "Il giocatore con meno vite recupera 1 vita" + self.desc_eng = "" + class MezzogiornoDiFuoco(CardEvent): def __init__(self): super().__init__("Mezzogiorno di Fuoco", "🔥") @@ -50,7 +56,7 @@ def get_all_events(): # CittaFantasma(), # CorsaAllOro(), # IDalton(), - # IlDottore(), + IlDottore(), IlReverendo(), IlTreno(), Sbornia(), diff --git a/backend/bang/game.py b/backend/bang/game.py index 21179c6..a3d5d14 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -2,12 +2,14 @@ from typing import List, Set, Dict, Tuple, Optional import random import socketio +import eventlet + import bang.players as pl import bang.characters as characters from bang.deck import Deck import bang.roles as roles import bang.expansions.fistful_of_cards.card_events as ce -import eventlet +import bang.expansions.high_noon.card_events as ceh class Game: def __init__(self, name, sio:socketio): @@ -277,6 +279,15 @@ class Game: else: self.responders_did_respond_resume_turn(did_lose=True) return + elif self.check_event(ceh.IlDottore): + most_hurt = [p.lives for p in self.players if p.lives > 0 and p.max_lives > p.lives] + if len(most_hurt) > 0: + hurt_players = [p for p in self.players if p.lives == min(most_hurt)] + for p in hurt_players: + p.lives += 1 + self.sio.emit('chat_message', room=self.name, data=f'_doctor_heal|{p.name}') + p.notify_self() + if self.check_event(ce.PerUnPugnoDiCarte) and len(self.players[self.turn].hand) > 0: self.player_bangs = len(self.players[self.turn].hand) if self.players[self.turn].get_banged(self.deck.event_cards[0]): diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index b2e6efd..b848505 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -90,7 +90,8 @@ "guess": "{0} guesses {1}.", "guess_right": "{0} was right.", "guess_wrong": "{0} was wrong.", - "fratelli_sangue": "{0} gave one of his lives to {1}." + "fratelli_sangue": "{0} gave one of his lives to {1}.", + "doctor_heal": "{0} was healed by the doctor." }, "foc": { "leggedelwest": "He must play this card on this turn if possible." diff --git a/frontend/src/i18n/it.json b/frontend/src/i18n/it.json index 304a123..c186787 100644 --- a/frontend/src/i18n/it.json +++ b/frontend/src/i18n/it.json @@ -90,7 +90,8 @@ "guess": "{0} pensa sia {1}.", "guess_right": "{0} ha indovinato.", "guess_wrong": "{0} ha sbagliato.", - "fratelli_sangue": "{0} ha donato una delle sue vite a {1}." + "fratelli_sangue": "{0} ha donato una delle sue vite a {1}.", + "doctor_heal": "{0} è stato curato dal dottore." }, "foc": { "leggedelwest": "Ed è obbligato a usarla nel suo turno, se possibile"