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):
|
def __init__(self, suit, number):
|
||||||
super().__init__(suit, 'Salvo', number)
|
super().__init__(suit, 'Salvo', number)
|
||||||
self.icon = '😇️'
|
self.icon = '😇️'
|
||||||
self.alt_text = "👤😇️"
|
self.alt_text = "👤😅"
|
||||||
self.need_target = True
|
self.need_target = True
|
||||||
|
|
||||||
def play_card(self, player, against, _with=None):
|
def play_card(self, player, against, _with=None):
|
||||||
|
@ -865,12 +865,13 @@ class Player:
|
|||||||
else: self.choose_text = 'choose_from_poker;1'
|
else: self.choose_text = 'choose_from_poker;1'
|
||||||
self.notify_self()
|
self.notify_self()
|
||||||
elif 'choose_bandidos' in self.choose_text:
|
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.available_cards.pop(card_index)
|
||||||
self.game.deck.scrap(self.hand.pop(card_index))
|
self.game.deck.scrap(self.hand.pop(card_index))
|
||||||
self.mancato_needed -= 1
|
self.mancato_needed -= 1
|
||||||
else:
|
else:
|
||||||
self.lives -= 1
|
self.lives -= 1
|
||||||
|
self.mancato_needed = 0
|
||||||
if self.mancato_needed <= 0:
|
if self.mancato_needed <= 0:
|
||||||
self.pending_action = PendingAction.WAIT
|
self.pending_action = PendingAction.WAIT
|
||||||
self.game.responders_did_respond_resume_turn()
|
self.game.responders_did_respond_resume_turn()
|
||||||
|
@ -140,3 +140,59 @@ def test_ritorno_di_fiamma():
|
|||||||
assert p.pending_action == PendingAction.RESPOND
|
assert p.pending_action == PendingAction.RESPOND
|
||||||
p.respond(0)
|
p.respond(0)
|
||||||
assert p1.lives == 3
|
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