diff --git a/backend/bang/expansions/dodge_city/characters.py b/backend/bang/expansions/dodge_city/characters.py index c5c6ea7..53111d9 100644 --- a/backend/bang/expansions/dodge_city/characters.py +++ b/backend/bang/expansions/dodge_city/characters.py @@ -57,6 +57,13 @@ class ApacheKid(Character): self.desc_eng = "Cards of diamonds ♦️ played against him, do no have effect (doesn't work in duels)." self.icon = '♦️' +class SeanMallory(Character): + def __init__(self): + super().__init__("Sean Mallory", max_lives=3) + self.desc = "Quando finisce il suo turno può tenere fino a 10 carte in mano" + self.desc_eng = "He can keep up to 10 cards in his hand when ending the turn." + self.icon = '🍟' + def all_characters() -> List[Character]: return [ PixiePete(), @@ -67,6 +74,7 @@ def all_characters() -> List[Character]: BillNoface(), MollyStark(), ApacheKid(), + SeanMallory(), ] #Apache Kid: il suo effetto non conta nei duelli diff --git a/backend/bang/players.py b/backend/bang/players.py index 9c15bd5..b243a5d 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -233,7 +233,8 @@ class Player: self.play_card(len(self.hand)+i, against=target['name']) has_played = True break - if not has_played and len(self.hand) > self.lives: + maxcards = self.lives if not isinstance(self.character, chd.SeanMallory) else 10 + if not has_played and len(self.hand) > maxcards: self.scrap(0) else: self.end_turn() @@ -640,7 +641,8 @@ class Player: def end_turn(self, forced=False): if not self.is_my_turn: return - if len(self.hand) > self.max_lives and not forced: + maxcards = self.lives if not isinstance(self.character, chd.SeanMallory) else 10 + if len(self.hand) > maxcards and not forced: print( f"I {self.name} have to many cards in my hand and I can't end the turn") elif self.pending_action == PendingAction.PLAY or forced: diff --git a/backend/bang/roles.py b/backend/bang/roles.py index 449de58..66d8405 100644 --- a/backend/bang/roles.py +++ b/backend/bang/roles.py @@ -50,7 +50,7 @@ class Vice(Role): class Outlaw(Role): def __init__(self, alternative_goal=None, alternative_goal_eng=None): super().__init__("Fuorilegge", "Elimina lo Sceriffo!") - self.goal_eng = "Kill the sSheriff!" + self.goal_eng = "Kill the Sheriff!" if alternative_goal: self.goal = alternative_goal self.goal_eng = alternative_goal_eng diff --git a/frontend/src/components/Player.vue b/frontend/src/components/Player.vue index 3f20874..06a200c 100644 --- a/frontend/src/components/Player.vue +++ b/frontend/src/components/Player.vue @@ -189,7 +189,7 @@ export default { return x[this.pending_action] }, canEndTurn() { - return (this.pending_action == 2 && this.hand.length <= this.lives) + return (this.pending_action == 2 && this.hand.length <= (this.character.name === "Sean Mallory"?10:this.lives)) }, respondCards() { let cc = [{