per un pugno di carte

This commit is contained in:
Alberto Xamin 2020-12-20 13:32:09 +01:00
parent 6aafd48e16
commit f47c8fb053
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
2 changed files with 18 additions and 3 deletions

View File

@ -60,7 +60,7 @@ class MinieraAbbandonata(CardEvent):
self.desc_eng = "Players draw from the discarded pile and discard to the deck" self.desc_eng = "Players draw from the discarded pile and discard to the deck"
class PerUnPugnoDiCarte(CardEvent): class PerUnPugnoDiCarte(CardEvent):
def __init__(self):#TODO def __init__(self):
super().__init__("Per Un Pugno Di Carte", "🎴") super().__init__("Per Un Pugno Di Carte", "🎴")
self.desc = "Nel suo turno giocatore subisce tanti bang quante carte ha in mano" self.desc = "Nel suo turno giocatore subisce tanti bang quante carte ha in mano"
self.desc_eng = "On his turn the player is target of as many Bang as how many cards he has in his hand" self.desc_eng = "On his turn the player is target of as many Bang as how many cards he has in his hand"
@ -106,7 +106,7 @@ def get_all_events():
LeggeDelWest(), LeggeDelWest(),
LiquoreForte(), LiquoreForte(),
MinieraAbbandonata(), MinieraAbbandonata(),
# PerUnPugnoDiCarte(), PerUnPugnoDiCarte(),
Peyote(), Peyote(),
# Ranch(), # Ranch(),
# Rimbalzo(), # Rimbalzo(),

View File

@ -28,6 +28,7 @@ class Game:
self.shutting_down = False self.shutting_down = False
self.is_competitive = False self.is_competitive = False
self.disconnect_bot = True self.disconnect_bot = True
self.player_bangs = 0
def notify_room(self, sid=None): def notify_room(self, sid=None):
if len([p for p in self.players if p.character == None]) != 0 or sid: if len([p for p in self.players if p.character == None]) != 0 or sid:
@ -207,6 +208,14 @@ class Game:
return self.players[self.players_map[name]] return self.players[self.players_map[name]]
def responders_did_respond_resume_turn(self): def responders_did_respond_resume_turn(self):
if self.player_bangs > 0 and self.check_event(ce.PerUnPugnoDiCarte):
self.player_bangs -= 1
if self.player_bangs > 1:
self.players[self.turn].get_banged('')
self.players[self.turn].notify_self()
else:
self.player_bangs = 0
self.players[self.turn].play_turn()
self.readyCount += 1 self.readyCount += 1
if self.readyCount == self.waiting_for: if self.readyCount == self.waiting_for:
self.waiting_for = 0 self.waiting_for = 0
@ -218,6 +227,7 @@ class Game:
return self.players[(self.turn + 1) % len(self.players)] return self.players[(self.turn + 1) % len(self.players)]
def play_turn(self): def play_turn(self):
self.player_bangs = 0
if isinstance(self.players[self.turn].role, roles.Sheriff): if isinstance(self.players[self.turn].role, roles.Sheriff):
self.deck.flip_event() self.deck.flip_event()
if self.check_event(ce.DeadMan) and len(self.dead_players) > 0: if self.check_event(ce.DeadMan) and len(self.dead_players) > 0:
@ -227,7 +237,12 @@ class Game:
self.players[-1].hand.append(self.deck.draw()) self.players[-1].hand.append(self.deck.draw())
self.players_map = {c.name: i for i, c in enumerate(self.players)} self.players_map = {c.name: i for i, c in enumerate(self.players)}
self.players[-1].notify_self() self.players[-1].notify_self()
self.players[self.turn].play_turn() if self.check_event(ce.PerUnPugnoDiCarte):
self.player_bangs = len(self.players[self.turn].hand)
self.players[self.turn].get_banged('')
self.players[self.turn].notify_self()
else:
self.players[self.turn].play_turn()
def next_turn(self): def next_turn(self):
if self.shutting_down: return if self.shutting_down: return