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;