diff --git a/backend/players.py b/backend/players.py index b774ab6..8362bb0 100644 --- a/backend/players.py +++ b/backend/players.py @@ -101,6 +101,7 @@ class Player: if self.attacker: ser['attacker'] = self.attacker.name ser['sight'] = self.get_sight() + ser['lives'] = max(ser['lives'], 0) self.sio.emit('self', room=self.sid, data=json.dumps(ser, default=lambda o: o.__dict__)) self.sio.emit('self_vis', room=self.sid, data=json.dumps(self.game.get_visible_players(self), default=lambda o: o.__dict__)) if self.lives <= 0 and self.max_lives > 0: @@ -169,7 +170,7 @@ class Player: print(f'Did pick {picked}') self.sio.emit('chat_message', room=self.game.name, data=f'{self.name} ha estratto {picked}.') if picked.suit == cards.Suit.SPADES and 2 <= picked.number <= 9 and pickable_cards == 0: - self.lives = max(self.lives - 3, 0) + self.lives -= 3 self.game.deck.scrap(self.equipment.pop(i)) if isinstance(self.character, characters.BartCassidy): self.hand.append(self.game.deck.draw()) diff --git a/frontend/src/components/Player.vue b/frontend/src/components/Player.vue index 26b90ea..6b56d48 100644 --- a/frontend/src/components/Player.vue +++ b/frontend/src/components/Player.vue @@ -187,12 +187,13 @@ export default { this.$socket.emit('scrap', this.hand.indexOf(c)) }, play_card(card) { + let calamity_special = (card.name === 'Mancato!' && this.character.name === 'Calamity Janet') + let cant_play_bang = (this.has_played_bang && this.equipment.filter(x => x.name == 'Volcanic').length == 0) if (this.pending_action == 2) { - if (card.need_target && - !(card.name == 'Bang!' && (this.has_played_bang && this.equipment.filter(x => x.name == 'Volcanic').length == 0))) { - if (card.name == 'Panico!' || (card.name == 'Bang!' && (this.has_played_bang && this.equipment.filter(x => x.name == 'Volcanic').length == 0))) + if ((card.need_target || calamity_special) && !((card.name == 'Bang!' || !calamity_special) && cant_play_bang)) { + if (card.name == 'Panico!' || (card.name == 'Bang!' && cant_play_bang)) this.range = 1 - else if (card.name == 'Bang!') + else if (card.name == 'Bang!' || calamity_special) this.range = this.sight else this.range = 999