Merge branch 'dev' into main

This commit is contained in:
Giulio 2021-05-16 01:46:55 +02:00
commit 21dd22a863
6 changed files with 65 additions and 65 deletions

View File

@ -261,6 +261,9 @@ def chat_message(sid, msg):
ses.game.toggle_competitive()
elif '/togglebot' in msg and ses.game:
ses.game.toggle_disconnect_bot()
elif '/cancelgamesudo' in msg and ses.game.started:
sio.emit('chat_message', room=ses.game.name, data={'color': f'red','text':f'🚨 {ses.name} stopped the current game'})
ses.game.reset()
elif '/cancelgame' in msg and ses.game.started:
if (ses == ses.game.players[0]):
sio.emit('chat_message', room=ses.game.name, data={'color': f'red','text':f'🚨 {ses.name} stopped the current game'})

View File

@ -9,12 +9,12 @@ class Deck:
super().__init__()
self.cards: List[cs.Card] = cs.get_starting_deck(game.expansions)
self.mancato_cards: List[str] = []
self.mancato_cards_not_green: List[str] = []
self.mancato_cards_not_green_or_blue: List[str] = []
for c in self.cards:
if isinstance(c, cs.Mancato) and c.name not in self.mancato_cards:
self.mancato_cards.append(c.name)
if not c.usable_next_turn:
self.mancato_cards_not_green.append(c.name)
if not (c.usable_next_turn or c.is_equipment):
self.mancato_cards_not_green_or_blue.append(c.name)
self.all_cards_str: List[str] = []
for c in self.cards:
if c.name not in self.all_cards_str:

View File

@ -39,7 +39,6 @@ class Game:
self.did_resuscitate_deadman = False
self.is_handling_death = False
self.pending_winners = []
self.noStar = False # no Sheriff, because there are only three players
def notify_room(self, sid=None):
@ -125,8 +124,6 @@ class Game:
print('GAME IS STARING')
if self.started:
return
if len(self.players) == 3:
self.noStar = True
self.players_map = {c.name: i for i, c in enumerate(self.players)}
self.sio.emit('chat_message', room=self.name, data=f'_starting')
self.sio.emit('start', room=self.name)
@ -321,7 +318,7 @@ class Game:
print(f'{self.players[self.turn]} is dead, next turn')
return self.next_turn()
self.player_bangs = 0
if isinstance(self.players[self.turn].role, roles.Sheriff) or (self.noStar and isinstance(self.players[self.turn].role, roles.Vice) or (self.noStar and any([p for p in self.players if p.is_dead and p.role.name == 'Vice']) and isinstance(self.players[self.turn].role, roles.Renegade))):
if isinstance(self.players[self.turn].role, roles.Sheriff) or (self.initial_players == 3 and isinstance(self.players[self.turn].role, roles.Vice) or (self.initial_players == 3 and any([p for p in self.players if p.is_dead and p.role.name == 'Vice']) and isinstance(self.players[self.turn].role, roles.Renegade))):
self.deck.flip_event()
if len(self.deck.event_cards) > 0 and self.deck.event_cards[0] != None:
print(f'flip new event {self.deck.event_cards[0].name}')
@ -538,7 +535,6 @@ class Game:
self.players = [p for p in self.players if not p.is_bot]
print(self.players)
self.started = False
self.noStar = False
self.is_handling_death = False
self.waiting_for = 0
self.incremental_turn = 0

View File

@ -313,16 +313,17 @@ class Player:
else:
self.choose(randrange(0, len(target.hand)+len(target.equipment)))
def play_turn(self, can_play_vendetta = True):
def play_turn(self, can_play_vendetta = True, again = False):
if (self.lives == 0 or self.is_dead) and not self.is_ghost:
return self.end_turn(forced=True)
self.scrapped_cards = 0
self.can_play_ranch = True
self.is_playing_ranch = False
self.can_play_vendetta = can_play_vendetta
self.sio.emit('chat_message', room=self.game.name,
data=f'_turn|{self.name}')
print(f'{self.name}: I was notified that it is my turn')
if not again:
self.sio.emit('chat_message', room=self.game.name,
data=f'_turn|{self.name}')
print(f'{self.name}: I was notified that it is my turn')
self.was_shot = False
self.is_my_turn = True
self.is_waiting_for_action = True
@ -592,7 +593,7 @@ class Player:
player.notify_self()
self.sio.emit('chat_message', room=self.game.name, data=f'_fratelli_sangue|{self.name}|{player.name}')
except: pass
self.play_turn()
self.play_turn(again = True)
elif self.is_using_checchino and self.game.check_event(ce.Cecchino):
try:
if self.available_cards[card_index]['name'] != '':
@ -774,8 +775,8 @@ class Player:
print('has mancato')
self.pending_action = PendingAction.RESPOND
self.expected_response = self.game.deck.mancato_cards.copy()
if self.attacker and self.attacker in self.game.get_alive_players() and isinstance(self.attacker.character, chd.BelleStar) or self.game.check_event(ce.Lazo):
self.expected_response = self.game.deck.mancato_cards_not_green.copy()
if self.attacker and self.attacker in self.game.get_alive_players() and self.character.check(self.game, chd.BelleStar) or self.game.check_event(ce.Lazo):
self.expected_response = self.game.deck.mancato_cards_not_green_or_blue.copy()
elif self.character.check(self.game, chars.CalamityJanet) and cs.Bang(0, 0).name not in self.expected_response:
self.expected_response.append(cs.Bang(0, 0).name)
elif self.character.check(self.game, chd.ElenaFuente):

View File

@ -296,51 +296,51 @@
},
"Bart Cassidy": {
"name": "Bart Cassidy",
"desc": "Each time he is hurt, he draws a card"
"desc": "Each time he is hurt, he draws a card."
},
"Black Jack": {
"name": "Black Jack",
"desc": "At the beginning of his turn, when he has to draw, he shows everyone the second card, if it is Hearts or Diamonds he draws a third card without showing it"
"desc": "At the beginning of his turn, when he has to draw, he shows everyone the second card, if it is Hearts or Diamonds he draws a third card without showing it."
},
"Calamity Janet": {
"name": "Calamity Janet",
"desc": "She can use the Missed! as Bang! and the other way around"
"desc": "She can use the Missed! as Bang! and the other way around."
},
"El Gringo": {
"name": "El Gringo",
"desc": "Each time he is hurt, he draws a card from the hand of the attacking player"
"desc": "Each time he is hurt, he draws a card from the hand of the attacking player."
},
"Jesse Jones": {
"name": "Jesse Jones",
"desc": "When he has to draw his cards, he may draw the first card from the hand of another player"
"desc": "When he has to draw his cards, he may draw the first card from the hand of another player. (click on the enemy player if you want to use the ability)"
},
"Jourdonnais": {
"name": "Jourdonnais",
"desc": "He plays as he had a Barrel always active, if he equips another Barrel, he can flip 2 cards"
"desc": "He plays as he had a Barrel always active, if he equips another Barrel, he can flip 2 cards."
},
"Kit Carlson": {
"name": "Kit Carlson",
"desc": "When he has to draw, he peeks 3 cards and chooses 2, putting the other card on the top of the deck"
"desc": "When he has to draw, he peeks 3 cards and chooses 2, putting the other card on the top of the deck."
},
"Lucky Duke": {
"name": "Lucky Duke",
"desc": "Every time he has to flip a card, he can flip 2 times"
"desc": "Every time he has to flip a card, he can flip 2 times."
},
"Paul Regret": {
"name": "Paul Regret",
"desc": "The other players see him at distance +1"
"desc": "The other players see him at distance +1."
},
"Pedro Ramirez": {
"name": "Pedro Ramirez",
"desc": "When he has to draw, he may pick the first card from the discarded cards"
"desc": "When he has to draw, he may pick the first card from the discarded cards. (click on the discarded cards to use the ability)"
},
"Rose Doolan": {
"name": "Rose Doolan",
"desc": "She sees the other players at distance -1"
"desc": "She sees the other players at distance -1."
},
"Sid Ketchum": {
"name": "Sid Ketchum",
"desc": "He can discard 2 cards to regain 1HP"
"desc": "He can discard 2 cards to regain 1HP."
},
"Slab The Killer": {
"name": "Slab The Killer",
@ -348,39 +348,39 @@
},
"Suzy Lafayette": {
"name": "Suzy Lafayette",
"desc": "Whenever she has an empty hand, she draws a card"
"desc": "Whenever she has an empty hand, she draws a card."
},
"Vulture Sam": {
"name": "Vulture Sam",
"desc": "When a player dies, he gets all the cards in the dead's hand and equipments"
"desc": "When a player dies, he gets all the cards in the dead's hand and equipments."
},
"Willy The Kid": {
"name": "Willy The Kid",
"desc": "He doesn't have limits to the amounts of bang he can use"
"desc": "He doesn't have limits to the amounts of bang he can use."
},
"Pixie Pete": {
"name": "Pixie Pete",
"desc": "He draws 3 cards instead of 2"
"desc": "He draws 3 cards instead of 2."
},
"Tequila Joe": {
"name": "Tequila Joe",
"desc": "When he plays Beer, he regains 2 Health Points"
"desc": "When he plays Beer, he regains 2 Health Points."
},
"Greg Digger": {
"name": "Greg Digger",
"desc": "Whenever a player dies, he regains up to 2 lives"
"desc": "Whenever a player dies, he regains up to 2 lives."
},
"Herb Hunter": {
"name": "Herb Hunter",
"desc": "Whenever a player dies, he draws 2 cards"
"desc": "Whenever a player dies, he draws 2 cards."
},
"Elena Fuente": {
"name": "Elena Fuente",
"desc": "She can use any card of her hand as missed"
"desc": "She can use any card of her hand as missed."
},
"Bill Noface": {
"name": "Bill Noface",
"desc": "Draw 1 card + 1 card for each wound he has"
"desc": "Draw 1 card + 1 card for each wound he has."
},
"Molly Stark": {
"name": "Molly Stark",
@ -396,7 +396,7 @@
},
"Belle Star": {
"name": "Belle Star",
"desc": "During her turn the green cards of the other players do not work."
"desc": "During her turn the green and blue cards of the other players do not work."
},
"Vera Custer": {
"name": "Vera Custer",
@ -408,7 +408,7 @@
},
"Pat Brennan": {
"name": "Pat Brennan",
"desc": "Instead of drawing he can steal a card from the equipment of another player."
"desc": "Instead of drawing he can steal a card from the equipment of another player. (click on the enemy player if you want to use the ability)"
},
"José Delgrado": {
"name": "José Delgrado",

View File

@ -296,107 +296,107 @@
},
"Bart Cassidy": {
"name": "Bart Cassidy",
"desc": "Ogni volta che viene ferito, pesca una carta"
"desc": "Ogni volta che viene ferito, pesca una carta."
},
"Black Jack": {
"name": "Black Jack",
"desc": "All'inizio del suo turno, quando deve pescare, mostra a tutti la seconda carta, se è Cuori o Quadri pesca una terza carta senza farla vedere"
"desc": "All'inizio del suo turno, quando deve pescare, mostra a tutti la seconda carta, se è Cuori o Quadri pesca una terza carta senza farla vedere."
},
"Calamity Janet": {
"name": "Calamity Janet",
"desc": "Può usare i Mancato! come Bang! e viceversa"
"desc": "Può usare i Mancato! come Bang! e viceversa."
},
"El Gringo": {
"name": "El Gringo",
"desc": "Ogni volta che perde un punto vita pesca una carta dalla mano del giocatore responsabile ma solo se il giocatore in questione ha carte in mano (una carta per ogni punto vita)"
"desc": "Ogni volta che perde un punto vita pesca una carta dalla mano del giocatore responsabile ma solo se il giocatore in questione ha carte in mano. (una carta per ogni punto vita)"
},
"Jesse Jones": {
"name": "Jesse Jones",
"desc": "All'inizio del suo turno, quando deve pescare, può prendere la prima carta a caso dalla mano di un giocatore e la seconda dal mazzo"
"desc": "All'inizio del suo turno, quando deve pescare, può prendere la prima carta a caso dalla mano di un giocatore e la seconda dal mazzo. (clicca sul gicatore avversario se vuoi usare l'abilità)"
},
"Jourdonnais": {
"name": "Jourdonnais",
"desc": "Gioca come se avesse un Barile sempre attivo, nel caso in cui metta in gioco un Barile 'Reale' può estrarre due volte"
"desc": "Gioca come se avesse un Barile sempre attivo, nel caso in cui metta in gioco un Barile 'Reale' può estrarre due volte."
},
"Kit Carlson": {
"name": "Kit Carlson",
"desc": "All'inizio del suo turno, quando deve pescare, pesca tre carte, ne sceglie due da tenere in mano e la rimanente la rimette in cima la mazzo"
"desc": "All'inizio del suo turno, quando deve pescare, pesca tre carte, ne sceglie due da tenere in mano e la rimanente la rimette in cima la mazzo."
},
"Lucky Duke": {
"name": "Lucky Duke",
"desc": "Ogni volta che deve estrarre, prende due carte dal mazzo, sceglie una delle due carte per l'estrazione, infine le scarta entrambe"
"desc": "Ogni volta che deve estrarre, prende due carte dal mazzo, sceglie una delle due carte per l'estrazione, infine le scarta entrambe."
},
"Paul Regret": {
"name": "Paul Regret",
"desc": "Gioca come se avesse una Mustang sempre attiva, nel caso in cui metta in gioco una Mustang 'Reale' l'effetto si somma tranquillamente"
"desc": "Gioca come se avesse una Mustang sempre attiva, nel caso in cui metta in gioco una Mustang 'Reale' l'effetto si somma tranquillamente."
},
"Pedro Ramirez": {
"name": "Pedro Ramirez",
"desc": "All'inizio del suo turno, quando deve pescare, può prendere la prima carta dalla cima degli scarti e la seconda dal mazzo"
"desc": "All'inizio del suo turno, quando deve pescare, può prendere la prima carta dalla cima degli scarti e la seconda dal mazzo. (clicca negli scarti per usare l'abilità)"
},
"Rose Doolan": {
"name": "Rose Doolan",
"desc": "Gioca come se avesse un Mirino sempre attivo, nel caso in cui metta in gioco una Mirino 'Reale' l'effetto si somma tranquillamente"
"desc": "Gioca come se avesse un Mirino sempre attivo, nel caso in cui metta in gioco una Mirino 'Reale' l'effetto si somma tranquillamente."
},
"Sid Ketchum": {
"name": "Sid Ketchum",
"desc": "Può scartare due carte per recuperare un punto vita anche più volte di seguito a patto di avere carte da scartare, può farlo anche nel turno dell'avversario se stesse per morire"
"desc": "Può scartare due carte per recuperare un punto vita anche più volte di seguito a patto di avere carte da scartare, può farlo anche nel turno dell'avversario se stesse per morire."
},
"Slab The Killer": {
"name": "Slab The Killer",
"desc": "Per evitare i suoi Bang servono due Mancato, un eventuale barile vale solo come un Mancato"
"desc": "Per evitare i suoi Bang servono due Mancato, un eventuale barile vale solo come un Mancato."
},
"Suzy Lafayette": {
"name": "Suzy Lafayette",
"desc": "Appena rimane senza carte in mano pesca immediatamente una carta dal mazzo"
"desc": "Appena rimane senza carte in mano pesca immediatamente una carta dal mazzo."
},
"Vulture Sam": {
"name": "Vulture Sam",
"desc": "Quando un personaggio viene eliminato prendi tutte le carte di quel giocatore e aggiungile alla tua mano, sia le carte in mano che quelle in gioco"
"desc": "Quando un personaggio viene eliminato prendi tutte le carte di quel giocatore e aggiungile alla tua mano, sia le carte in mano che quelle in gioco."
},
"Willy The Kid": {
"name": "Willy The Kid",
"desc": "Questo personaggio può giocare quanti bang vuole nel suo turno"
"desc": "Questo personaggio può giocare quanti bang vuole nel suo turno."
},
"Pixie Pete": {
"name": "Pixie Pete",
"desc": "All'inizio del turno pesca 3 carte invece che 2"
"desc": "All'inizio del turno pesca 3 carte invece che 2."
},
"Tequila Joe": {
"name": "Tequila Joe",
"desc": "Se gioca la carta Birra recupera 2 vite invece che una sola"
"desc": "Se gioca la carta Birra recupera 2 vite invece che una sola."
},
"Greg Digger": {
"name": "Greg Digger",
"desc": "Quando un giocatore muore, recupera fino a 2 vite"
"desc": "Quando un giocatore muore, recupera fino a 2 vite."
},
"Herb Hunter": {
"name": "Herb Hunter",
"desc": "Quando un giocatore muore, pesca 2 carte"
"desc": "Quando un giocatore muore, pesca 2 carte."
},
"Elena Fuente": {
"name": "Elena Fuente",
"desc": "Può usare una carta qualsiasi nella sua mano come mancato"
"desc": "Può usare una carta qualsiasi nella sua mano come mancato."
},
"Bill Noface": {
"name": "Bill Noface",
"desc": "All'inizio del turno pesca 1 carta + 1 carta per ogni ferita che ha"
"desc": "All'inizio del turno pesca 1 carta + 1 carta per ogni ferita che ha."
},
"Molly Stark": {
"name": "Molly Stark",
"desc": "Quando usa volontariamente una carta che ha in mano, fuori dal suo turno, ne ottiene un'altra dal mazzo"
"desc": "Quando usa volontariamente una carta che ha in mano, fuori dal suo turno, ne ottiene un'altra dal mazzo."
},
"Apache Kid": {
"name": "Apache Kid",
"desc": "Le carte di quadri ♦️ giocate contro di lui non hanno effetto (non vale durante i duelli)"
"desc": "Le carte di quadri ♦️ giocate contro di lui non hanno effetto. (non vale durante i duelli)"
},
"Sean Mallory": {
"name": "Sean Mallory",
"desc": "Quando finisce il suo turno può tenere fino a 10 carte in mano"
"desc": "Quando finisce il suo turno può tenere fino a 10 carte in mano."
},
"Belle Star": {
"name": "Belle Star",
"desc": "Nel suo turno le carte verdi degli altri giocatori non hanno effetto."
"desc": "Nel suo turno le carte verdi e blu degli altri giocatori non hanno effetto."
},
"Vera Custer": {
"name": "Vera Custer",
@ -408,7 +408,7 @@
},
"Pat Brennan": {
"name": "Pat Brennan",
"desc": "Invece di pescare può prendere una carta dall'equipaggiamento di un altro giocatore."
"desc": "Invece di pescare può prendere una carta dall'equipaggiamento di un altro giocatore. (clicca sul gicatore avversario se vuoi usare l'abilità)"
},
"José Delgrado": {
"name": "José Delgrado",