add sventagliata

This commit is contained in:
Alberto Xamin 2023-01-16 17:13:53 +00:00
parent a7098bca97
commit 9e2b6263f2
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
4 changed files with 22 additions and 5 deletions

View File

@ -125,9 +125,14 @@ class Sventagliata(Bang): # : conta come un normale BANG! del turno. Il BANG! se
def play_card(self, player, against, _with=None):
if against != None:
#TODO
# super().play_card(player, against=against)
# player.game.attack(player, against, card_name=self.name)
t = player.game.get_player_named(against)
player.available_cards = [dict(p, **{'original_target':against}) for p in player.game.get_visible_players(t) if p['name'] != player.name and p['name'] != t.name and p['dist']]
if len(player.available_cards) > 0:
player.pending_action = pl.PendingAction.CHOOSE
player.choose_text = 'choose_sventagliata'
else:
player.available_cards = []
super().play_card(player, against=against)
return True
return False
@ -219,7 +224,7 @@ def get_starting_deck() -> List[Card]:
Taglia(Suit.CLUBS, 9),
UltimoGiro(Suit.DIAMONDS, 8),
Tomahawk(Suit.DIAMONDS, 'A'),
# Sventagliata(Suit.SPADES, 2),
Sventagliata(Suit.SPADES, 2),
# Salvo(Suit.HEARTS, 5),
Bandidos(Suit.DIAMONDS,'Q'), # gli altri giocatori scelgono se scartare 2 carte o perdere 1 punto vita
# Fuga(Suit.HEARTS, 3), # evita l'effetto di carte marroni (tipo panico cat balou) di cui sei bersaglio

View File

@ -838,7 +838,17 @@ class Player:
player.equipment.append(self.game.deck.scrap_pile.pop(-1))
player.notify_self()
self.game.notify_all()
self.sio.emit('chat_message', room=player.game.name, data=f'_play_card_against|{player.name}|Fantasma|{player.name}')
self.sio.emit('chat_message', room=player.game.name, data=f'_play_card_against|{self.name}|Fantasma|{player.name}')
self.pending_action = PendingAction.PLAY
self.notify_self()
elif 'choose_sventagliata' in self.choose_text:
if card_index <= len(self.available_cards):
og = self.available_cards[card_index]['original_target']
player = self.game.get_player_named(self.available_cards[card_index]['name'])
player.game.attack(self, og, card_name='Sventagliata')
player.game.attack(self, player.name, card_name='Sventagliata')
self.sio.emit('chat_message', room=player.game.name, data=f'_play_card_against|{self.name}|Sventagliata|{og}')
self.sio.emit('chat_message', room=player.game.name, data=f'_play_card_against|{self.name}|Sventagliata|{player.name}')
self.pending_action = PendingAction.PLAY
self.notify_self()
elif 'choose_tornado' in self.choose_text:

View File

@ -58,6 +58,7 @@
"choose_dalton": "Choose which equipment to discard",
"choose_fratelli_di_sangue": "Choose who you want to donate one of your lives",
"choose_fantasma": "Choose who to bring back to life",
"choose_sventagliata": "Choose another target to hit with Fanning",
"choose_tornado": "Choose a card to discard for the tornado",
"choose_bandidos": "Choose between discarding 2 cards or losing a life (1 card if you only have 1)",
"choose_poker": "Everyone discards 1 card (if there's no Ace, the player who played poker chooses 2 cards)",

View File

@ -58,6 +58,7 @@
"choose_dalton": "Scegli che equipaggiamento scartare",
"choose_fratelli_di_sangue": "Scegli a chi donare una delle tue vite",
"choose_fantasma": "Scegli chi riportare in vita",
"choose_sventagliata": "Scegli chi altro colpire con sventagliata",
"choose_tornado": "Scegli una carta da scartare per il tornado",
"choose_bandidos": "Scegli tra scartare 2 carte o perdere una vita (1 carta se ne hai solo 1)",
"choose_poker": "Tutti scartano 1 carta (se non c'è un Asso, il giocatore che ha giocato poker sceglie 2 carte tra quelle appena scartate)",