diff --git a/backend/players.py b/backend/players.py index 1e4d33b..8f2f67e 100644 --- a/backend/players.py +++ b/backend/players.py @@ -74,6 +74,14 @@ class Player: print(f'I {self.name} have to choose between {available}') self.sio.emit('characters', room=self.sid, data=json.dumps(available, default=lambda o: o.__dict__)) + def notify_card(self, player, card): + mess = { + 'player': player.name, + 'card': card.__dict__ + } + print('notifying card') + self.sio.emit('notify_card', room=self.sid, data=mess) + def notify_self(self): if self.lives <= 0 and self.max_lives > 0: print('dying, attacker', self.attacker) @@ -115,9 +123,16 @@ class Player: def draw(self): if self.pending_action != PendingAction.DRAW: return - for i in range(2): - self.hand.append(self.game.deck.draw()) self.pending_action = PendingAction.PLAY + for i in range(2): + card: cards.Card = self.game.deck.draw() + self.hand.append(card) + if i == 1 and isinstance(self.character, characters.BlackJack): + for p in self.game.players: + if p != self: + p.notify_card(self, card) + if card.suit == cards.Suit.HEARTS or card.suit == cards.Suit.DIAMONDS: + self.game.deck.draw(self.hand.append(card)) self.notify_self() def pick(self): diff --git a/frontend/src/components/Player.vue b/frontend/src/components/Player.vue index acc6256..0cadfee 100644 --- a/frontend/src/components/Player.vue +++ b/frontend/src/components/Player.vue @@ -28,6 +28,7 @@ + @@ -68,6 +69,7 @@ export default { can_target_sheriff: true, show_role: false, attacker: undefined, + notifycard: null, }), sockets: { role(role) { @@ -102,6 +104,9 @@ export default { console.log(vis) this.playersDistances = JSON.parse(vis) }, + notify_card(mess) { + this.notifycard = mess + } }, computed:{ visiblePlayers() { @@ -233,6 +238,10 @@ export default { pointer-events: none; animation: disappear 2s ease-in forwards; } +.turn-notify-4s { + pointer-events: none; + animation: disappear 4s ease-in forwards; +} @keyframes disappear { 0% { opacity: 1;