add elena zontero

This commit is contained in:
Alberto Xamin 2023-02-26 16:39:36 +00:00
parent d089cce48d
commit c4d23b6e37
2 changed files with 41 additions and 14 deletions

View File

@ -3,56 +3,74 @@ import random
from bang.expansions.fistful_of_cards.card_events import CardEvent from bang.expansions.fistful_of_cards.card_events import CardEvent
class Bavaglio(CardEvent): # class Bavaglio(CardEvent):
def __init__(self): # def __init__(self):
super().__init__("Bavaglio", "🤐") # super().__init__("Bavaglio", "🤐")
# I giocatori non possono parlare (ma possono gesticolare, mugugnare...). Chi parla perde 1 punto vita. # # I giocatori non possono parlare (ma possono gesticolare, mugugnare...). Chi parla perde 1 punto vita.
# NOT IMPLEMENTED # # NOT IMPLEMENTED
class Camposanto(CardEvent): class Camposanto(CardEvent):
"""
All'inizio del proprio turno, ogni giocatore eliminato torna in gioco con 1 punto vita. Pesca il ruolo a caso fra quelli dei giocatori eliminati.
"""
def __init__(self): def __init__(self):
super().__init__("Camposanto", "") super().__init__("Camposanto", "")
# All'inizio del proprio turno, ogni giocatore eliminato torna in gioco con 1 punto vita. Pesca il ruolo a caso fra quelli dei giocatori eliminati.
class DarlingValentine(CardEvent): class DarlingValentine(CardEvent):
"""
All'inizio del proprio turno, ogni giocatore scarta le carte in mano e ne pesca dal mazzo altrettante.
"""
def __init__(self): def __init__(self):
super().__init__("Darling Valentine", "💋") super().__init__("Darling Valentine", "💋")
# All'inizio del proprio turno, ogni giocatore scarta le carte in mano e ne pesca dal mazzo altrettante.
class DorothyRage(CardEvent): class DorothyRage(CardEvent):
"""
Nel proprio turno, ogni giocatore può obbligarne un altro a giocare una carta.
"""
def __init__(self): def __init__(self):
super().__init__("Dorothy Rage", "👩‍⚖️") super().__init__("Dorothy Rage", "👩‍⚖️")
# Nel proprio turno, ogni giocatore può obbligarne un altro a giocare una carta.
class HelenaZontero(CardEvent): class HelenaZontero(CardEvent):
"""
Quando Helena entra in gioco, "estrai!": se esce Cuori o Quadri, rimescola i ruoli attivi tranne lo Sceriffo, e ridistribuiscili a caso.
"""
def __init__(self): def __init__(self):
super().__init__("Helena Zontero", "💞") super().__init__("Helena Zontero", "💞")
# Quando Helena entra in gioco, "estrai!": se esce Cuori o Quadri, rimescola i ruoli attivi tranne lo Sceriffo, e ridistribuiscili a caso.
class LadyRosaDelTexas(CardEvent): class LadyRosaDelTexas(CardEvent):
"""
Nel proprio turno, ogni giocatore può scambiarsi di posto con quello alla sua destra, il quale salta il prossimo turno.
"""
def __init__(self): def __init__(self):
super().__init__("Lady Rosa del Texas", "🩰") super().__init__("Lady Rosa del Texas", "🩰")
# Nel proprio turno, ogni giocatore può scambiarsi di posto con quello alla sua destra, il quale salta il prossimo turno.
class MissSusanna(CardEvent): class MissSusanna(CardEvent):
"""
Nel proprio turno ogni giocatore deve giocare almeno 3 carte. Se non lo fa, perde 1 punto vita.
"""
def __init__(self): def __init__(self):
super().__init__("Miss Susanna", "👩‍🎤") super().__init__("Miss Susanna", "👩‍🎤")
# Nel proprio turno ogni giocatore deve giocare almeno 3 carte. Se non lo fa, perde 1 punto vita.
class RegolamentoDiConti(CardEvent): class RegolamentoDiConti(CardEvent):
"""
Tutte le carte possono essere giocate come se fossero BANG!. Le carte BANG! come se fossero Mancato!
"""
def __init__(self): def __init__(self):
super().__init__("Regolamento di conti", "🤠") super().__init__("Regolamento di conti", "🤠")
# Tutte le carte possono essere giocate come se fossero BANG!. Le carte BANG! come se fossero Mancato!
class Sacagaway(CardEvent): class Sacagaway(CardEvent):
"""
Tutti i giocatori giocano a carte scoperte (tranne il ruolo!).
"""
def __init__(self): def __init__(self):
super().__init__("Sacagaway", "🏇") super().__init__("Sacagaway", "🏇")
# Tutti i giocatori giocano a carte scoperte (tranne il ruolo!).
class WildWestShow(CardEvent): class WildWestShow(CardEvent):
"""
L'obiettivo di ogni giocatore diventa: "Rimani l'ultimo in gioco!"
"""
def __init__(self): def __init__(self):
super().__init__("Wild West Show", "🎪") super().__init__("Wild West Show", "🎪")
# L'obiettivo di ogni giocatore diventa: "Rimani l'ultimo in gioco!"
def get_endgame_card(): def get_endgame_card():
end_game = WildWestShow() end_game = WildWestShow()

View File

@ -610,6 +610,15 @@ class Game:
if len(self.deck.event_cards) > 0 and self.deck.event_cards[0] is not None: if len(self.deck.event_cards) > 0 and self.deck.event_cards[0] is not None:
print(f'{self.name}: flip new event {self.deck.event_cards[0].name}') print(f'{self.name}: flip new event {self.deck.event_cards[0].name}')
G.sio.emit('chat_message', room=self.name, data={'color': f'orange','text':f'_flip_event|{self.deck.event_cards[0].name}'}) G.sio.emit('chat_message', room=self.name, data={'color': f'orange','text':f'_flip_event|{self.deck.event_cards[0].name}'})
if self.check_event(cew.HelenaZontero):
c = self.deck.pick_and_scrap()
G.sio.emit('chat_message', room=self.name, data=f'_flipped|Helena Zontero|{c.name}|{c.num_suit()}')
if c.check_suit(self, [cs.Suit.HEARTS, cs.Suit.DIAMONDS]):
pls = (p for p in self.players if not isinstance(p.role, roles.Sheriff))
newroles = [p.role for p in pls]
random.shuffle(newroles)
for p in pls:
p.set_role(newroles.pop())
if self.check_event(ce.DeadMan): if self.check_event(ce.DeadMan):
self.did_resuscitate_deadman = False self.did_resuscitate_deadman = False
elif self.check_event(ce.RouletteRussa): elif self.check_event(ce.RouletteRussa):