diff --git a/backend/bang/game.py b/backend/bang/game.py index 0d648dc..cc6a223 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -203,10 +203,10 @@ class Game: def emporio(self): pls = self.get_alive_players() self.available_cards = [self.deck.draw(True) for i in range(len(pls))] - pls[self.turn].pending_action = pl.PendingAction.CHOOSE - pls[self.turn].choose_text = 'choose_card_to_get' - pls[self.turn].available_cards = self.available_cards - pls[self.turn].notify_self() + self.players[self.turn].pending_action = pl.PendingAction.CHOOSE + self.players[self.turn].choose_text = 'choose_card_to_get' + self.players[self.turn].available_cards = self.available_cards + self.players[self.turn].notify_self() def respond_emporio(self, player, i): player.hand.append(self.available_cards.pop(i)) @@ -269,7 +269,7 @@ class Game: def play_turn(self): self.incremental_turn += 1 - if self.players[self.turn].lives <= 0 or self.players[self.turn].is_dead: + if self.players[self.turn].is_dead: pl = sorted(self.get_dead_players(), key=lambda x:x.death_turn)[0] if self.check_event(ce.DeadMan) and not self.did_resuscitate_deadman and pl != self.players[self.turn]: print(f'{self.players[self.turn]} is dead, revive') diff --git a/backend/bang/players.py b/backend/bang/players.py index 8885cc7..8660038 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -702,7 +702,7 @@ class Player: if self.character.check(self.game, chars.CalamityJanet) and cs.Bang(0, 0).name not in self.expected_response: self.expected_response.append(cs.Bang(0, 0).name) elif self.character.check(self.game, chd.ElenaFuente): - self.expected_response = self.game.deck.all_cards_str + self.expected_response = self.game.deck.all_cards_str.copy() self.on_failed_response_cb = self.take_damage_response self.notify_self() @@ -732,7 +732,7 @@ class Player: if self.character.check(self.game, chars.CalamityJanet) and cs.Bang(0, 0).name not in self.expected_response: self.expected_response.append(cs.Bang(0, 0).name) elif self.character.check(self.game, chd.ElenaFuente): - self.expected_response = self.game.deck.all_cards_str + self.expected_response = self.game.deck.all_cards_str.copy() self.on_failed_response_cb = self.take_no_damage_response self.notify_self() @@ -768,11 +768,11 @@ class Player: self.pending_action = PendingAction.RESPOND self.expected_response = self.game.deck.mancato_cards.copy() if self.attacker and self.attacker in self.game.get_alive_players() and isinstance(self.attacker.character, chd.BelleStar) or self.game.check_event(ce.Lazo): - self.expected_response = self.game.deck.mancato_cards_not_green + self.expected_response = self.game.deck.mancato_cards_not_green.copy() elif self.character.check(self.game, chars.CalamityJanet) and cs.Bang(0, 0).name not in self.expected_response: self.expected_response.append(cs.Bang(0, 0).name) elif self.character.check(self.game, chd.ElenaFuente): - self.expected_response = self.game.deck.all_cards_str + self.expected_response = self.game.deck.all_cards_str.copy() if not no_dmg: self.on_failed_response_cb = self.take_damage_response else: @@ -808,7 +808,7 @@ class Player: def get_dueled(self, attacker): self.attacker = attacker - if self.game.check_event(ceh.Sermone) or (not self.game.is_competitive and len([c for c in self.hand if isinstance(c, cs.Bang) or (self.character.check(self.game, chars.CalamityJanet) and isinstance(c, cs.Mancato))]) == 0): + if (self.game.check_event(ceh.Sermone) and self.is_my_turn) or (not self.game.is_competitive and len([c for c in self.hand if isinstance(c, cs.Bang) or (self.character.check(self.game, chars.CalamityJanet) and isinstance(c, cs.Mancato))]) == 0): print('Cant defend') self.take_damage_response() self.game.responders_did_respond_resume_turn(did_lose=True)