Merge branch 'high_noon'

Conflicts:
	backend/bang/expansions/high_noon/card_events.py
	backend/bang/game.py
This commit is contained in:
Alberto Xamin 2020-12-24 10:28:50 +01:00
commit 60f421eb93
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
4 changed files with 27 additions and 15 deletions

View File

@ -198,10 +198,9 @@ class Bang(Card):
import bang.characters as chars
super().play_card(player, against=against)
player.bang_used += 1
player.has_played_bang = not isinstance(
player.character, chars.WillyTheKid)
if player.game.check_event(ceh.Sparatoria) and player.has_played_bang:
player.has_played_bang = player.bang_used > 1
if player.character.check(player.game, chars.WillyTheKid):
player.has_played_bang = False
player.game.attack(player, against, double=player.character.check(player.game, chars.SlabTheKiller))
return True
return False

View File

@ -16,49 +16,49 @@ class Maledizione(CardEvent):
class Sbornia(CardEvent):
def __init__(self):
super().__init__("Sbornia", "🥴")
self.desc = "I personaggi perdono la loro abilità speciale"
self.desc = "I personaggi perdono le loro abilità speciali"
self.desc_eng = ""
class Sete(CardEvent):
def __init__(self):
super().__init__("Sete", "🥵")
self.desc = "I giocatori pescano solo 1 carta"
self.desc = "I giocatori pescano 1 carta in meno nella loro fase 1"
self.desc_eng = ""
class IlTreno(CardEvent):
def __init__(self):
super().__init__("Il Treno", "🚂")
self.desc = "I giocatori pescano 1 carta extra"
self.desc = "I giocatori pescano 1 carta extra nella loro fase 1"
self.desc_eng = ""
class IlReverendo(CardEvent):
def __init__(self):
super().__init__("Il Reverendo", "⛪️")
self.desc = "Non si possono giocare birre"
self.desc = "Non si possono giocare le carte Birra"
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 = "Il/i giocatore/i con meno vite ne recupera/no una"
self.desc_eng = ""
class Sermone(CardEvent):
def __init__(self):
super().__init__("Sermone", "✝️")
self.desc = "I giocatori non possono giocare Bang!"
self.desc = "I giocatori non possono giocare Bang! durante il loro turno"
self.desc_eng = ""
class Sparatoria(CardEvent):
def __init__(self):
super().__init__("Sparatoria", "‼️")
self.desc = "Il limite di bang è 2 invece che 1!"
super().__init__("Sparatoria", "🔫🔫")
self.desc = "Il limite di Bang! per turno è 2 invece che 1"
self.desc_eng = ""
class CorsaAllOro(CardEvent):
def __init__(self):
super().__init__("Corsa All'Oro", "🌟")
self.desc = "Si gioca in senso antiorario!"
self.desc = "Si gioca per un intero giro in senso antiorario, tuttavia gli effetti delle carte rimangono invariati"
self.desc_eng = ""
class IDalton(CardEvent):
@ -67,6 +67,18 @@ class IDalton(CardEvent):
self.desc = "Chi ha carte blu in gioco ne scarta 1 a sua scelta"
self.desc_eng = ""
class Manette(CardEvent):
def __init__(self):
super().__init__("Manette", "🔗")
self.desc = "Dopo aver pescato in fase 1, il giocatore di turno dichiara un seme: potrà usare solamente carte di quel seme nel suo turno"
self.desc_eng = ""
class NuovaIdentita(CardEvent):
def __init__(self):
super().__init__("Nuova Identità", "🕶")
self.desc = "All'inizio del proprio turno, ogni giocatore potrà decidere se sostituire il suo personaggio attuale con quello era stato proposto ad inizio partita, se lo fa riparte con 2 punti vita"
self.desc_eng = ""
class CittaFantasma(CardEvent):
def __init__(self):
super().__init__("Città Fantasma", "👻")
@ -93,6 +105,8 @@ def get_all_events():
Sermone(),
Sete(),
Sparatoria(),
# Manette(),
# NuovaIdentita(),
]
random.shuffle(cards)
cards.append(MezzogiornoDiFuoco())

View File

@ -263,8 +263,6 @@ class Game:
def next_player(self):
pls = self.get_alive_players()
if self.check_event(ceh.CorsaAllOro):
return pls[(pls.index(self.players[self.turn]) - 1) % len(pls)]
return pls[(pls.index(self.players[self.turn]) + 1) % len(pls)]
def play_turn(self):

View File

@ -326,6 +326,7 @@ class Player:
if self.character.check(self.game, chars.BartCassidy) and self.lives > 0:
self.hand.append(self.game.deck.draw(True))
self.sio.emit('chat_message', room=self.game.name, data=f'_special_bart_cassidy|{self.name}')
self.heal_if_needed()
if self.lives <= 0:
return self.notify_self()
if self.game.check_event(ce.FratelliDiSangue) and self.lives > 1 and not self.is_giving_life and len([p for p in self.game.get_alive_players() if p != self and p.lives < p.max_lives]):