fix bandidos and add taglia test
This commit is contained in:
parent
473cb2a207
commit
3972df1809
@ -133,7 +133,7 @@ class Salvo(Card):
|
||||
def __init__(self, suit, number):
|
||||
super().__init__(suit, 'Salvo', number)
|
||||
self.icon = '😇️'
|
||||
self.alt_text = "👤😇️"
|
||||
self.alt_text = "👤😅"
|
||||
self.need_target = True
|
||||
|
||||
def play_card(self, player, against, _with=None):
|
||||
|
@ -865,12 +865,13 @@ class Player:
|
||||
else: self.choose_text = 'choose_from_poker;1'
|
||||
self.notify_self()
|
||||
elif 'choose_bandidos' in self.choose_text:
|
||||
if card_index <= len(self.available_cards):
|
||||
if card_index < len(self.hand):
|
||||
self.available_cards.pop(card_index)
|
||||
self.game.deck.scrap(self.hand.pop(card_index))
|
||||
self.mancato_needed -= 1
|
||||
else:
|
||||
self.lives -= 1
|
||||
self.mancato_needed = 0
|
||||
if self.mancato_needed <= 0:
|
||||
self.pending_action = PendingAction.WAIT
|
||||
self.game.responders_did_respond_resume_turn()
|
||||
|
@ -140,3 +140,59 @@ def test_ritorno_di_fiamma():
|
||||
assert p.pending_action == PendingAction.RESPOND
|
||||
p.respond(0)
|
||||
assert p1.lives == 3
|
||||
|
||||
# test Taglia
|
||||
def test_taglia():
|
||||
sio = DummySocket()
|
||||
g = Game('test', sio)
|
||||
ps = [Player(f'p{i}', f'p{i}', sio) for i in range(3)]
|
||||
for p in ps:
|
||||
g.add_player(p)
|
||||
g.start_game()
|
||||
for p in ps:
|
||||
p.available_characters = [Character('test_char', 4)]
|
||||
p.set_character(p.available_characters[0].name)
|
||||
p = g.players[g.turn]
|
||||
p1 = g.players[(g.turn+1)%3]
|
||||
p.draw('')
|
||||
p.hand = [Taglia(0,0), Bang(1, 1)]
|
||||
p1.hand = []
|
||||
p.play_card(0, p1.name)
|
||||
assert len(p.hand) == 1
|
||||
assert len(p1.equipment) == 1
|
||||
assert len(p1.hand) == 0
|
||||
p.play_card(0, p1.name)
|
||||
assert p1.lives == 3
|
||||
assert len(p.hand) == 1
|
||||
|
||||
# test Bandidos
|
||||
def test_bandidos():
|
||||
sio = DummySocket()
|
||||
g = Game('test', sio)
|
||||
ps = [Player(f'p{i}', f'p{i}', sio) for i in range(2)]
|
||||
for p in ps:
|
||||
g.add_player(p)
|
||||
g.start_game()
|
||||
for p in ps:
|
||||
p.available_characters = [Character('test_char', 4)]
|
||||
p.set_character(p.available_characters[0].name)
|
||||
p = g.players[g.turn]
|
||||
p1 = g.players[(g.turn+1)%3]
|
||||
p.draw('')
|
||||
p.hand = [Bandidos(0,0), Bandidos(0,0)]
|
||||
p.play_card(0)
|
||||
assert len(p.hand) == 1
|
||||
assert p.pending_action == PendingAction.WAIT
|
||||
assert p1.pending_action == PendingAction.CHOOSE
|
||||
p1.choose(len(p1.hand))
|
||||
assert p1.lives == 3
|
||||
assert p.pending_action == PendingAction.PLAY
|
||||
p.play_card(0)
|
||||
assert len(p.hand) == 0
|
||||
assert p.pending_action == PendingAction.WAIT
|
||||
assert p1.pending_action == PendingAction.CHOOSE
|
||||
p1.choose(0)
|
||||
assert p1.pending_action == PendingAction.CHOOSE
|
||||
p1.choose(0)
|
||||
assert p1.pending_action == PendingAction.WAIT
|
||||
assert p.pending_action == PendingAction.PLAY
|
Loading…
Reference in New Issue
Block a user