add bandidos

This commit is contained in:
Alberto Xamin 2023-01-09 16:02:31 +00:00
parent c5525527f4
commit 33bc725eea
5 changed files with 20 additions and 6 deletions

View File

@ -167,9 +167,7 @@ class Bandidos(Card):
self.alt_text = "👤🃏🃏/💔"
def play_card(self, player, against, _with=None):
#TODO
# super().play_card(player, against=against)
# player.game.attack(player, against)
player.game.discard_others(player, card_name=self.name)
return True
class Fuga(Card):
@ -221,7 +219,7 @@ def get_starting_deck() -> List[Card]:
Tomahawk(Suit.DIAMONDS, 'A'),
# 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
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
# Mira(Suit.CLUBS, 6),
# Poker(Suit.HEARTS, 'J'), # tutti gli altri scartano 1 carta a scelta, se non ci sono assi allora pesca 2 dal mazzo

View File

@ -327,7 +327,7 @@ class Game:
self.waiting_for = 0
self.ready_count = 0
for p in self.get_alive_players():
if len(p.hand) > 0:
if len(p.hand) > 0 and (p != attacker or card_name == 'Tornado'):
if p.get_discarded(attacker=attacker, card_name=card_name):
self.waiting_for += 1
p.notify_self()

View File

@ -836,6 +836,16 @@ class Player:
self.pending_action = PendingAction.WAIT
self.game.responders_did_respond_resume_turn()
self.notify_self()
elif 'choose_bandidos' in self.choose_text:
if card_index <= len(self.available_cards):
self.game.deck.scrap_pile.append(self.hand.pop(card_index))
self.mancato_needed -= 1
else:
self.lives -= 1
if self.mancato_needed <= 0:
self.pending_action = PendingAction.WAIT
self.game.responders_did_respond_resume_turn()
self.notify_self()
elif self.game.check_event(ceh.NuovaIdentita) and self.choose_text == 'choose_nuova_identita':
if card_index == 1: # the other character
self.character = self.not_chosen_character
@ -1046,9 +1056,13 @@ class Player:
def get_discarded(self, attacker=None, card_name=None):
self.pending_action = PendingAction.CHOOSE
self.available_cards = self.hand.copy()
if card_name == 'Tornado':
self.choose_text = 'choose_tornado'
self.available_cards = self.hand
if card_name == 'Bandidos':
self.choose_text = 'choose_bandidos'
self.mancato_needed = min(2, len(self.hand))
self.available_cards.append({'name': '-1hp', 'icon': '💔', 'noDesc': True})
return True
def get_banged(self, attacker, double=False, no_dmg=False, card_index=None, card_name=None):

View File

@ -59,6 +59,7 @@
"choose_fratelli_di_sangue": "Choose who you want to donate one of your lives",
"choose_fantasma": "Choose who to bring back to life",
"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_cecchino": "Choose who to shoot",
"choose_rimbalzo_player": "Choose the target of the bang",
"choose_rimbalzo_card": "Choose the card to discard the bang to",

View File

@ -59,6 +59,7 @@
"choose_fratelli_di_sangue": "Scegli a chi donare una delle tue vite",
"choose_fantasma": "Scegli chi riportare in vita",
"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_cecchino": "Scegli contro chi sparare",
"choose_rimbalzo_player": "Scegli contro chi scartare il bang",
"choose_rimbalzo_card": "Scegli contro che carta scartare il bang",