diff --git a/backend/bang/game.py b/backend/bang/game.py
index cef7972..4340e80 100644
--- a/backend/bang/game.py
+++ b/backend/bang/game.py
@@ -747,6 +747,17 @@ class Game:
G.sio.emit('chat_message', room=self.name, data=f'_died|{player.name}')
if self.started:
G.sio.emit('chat_message', room=self.name, data=f'_died_role|{player.name}|{player.role.name}')
+ if not isinstance(player.role, roles.Sheriff) and not self.initial_players == 3:
+ G.sio.emit('notify_dead_role', room=self.name, data={
+ 'name': player.name,
+ 'lives': 0,
+ 'max_lives': player.max_lives,
+ 'is_ghost': player.is_ghost,
+ 'is_bot': player.is_bot,
+ 'icon': '🤠',
+ 'avatar': player.avatar,
+ 'role': player.role.__dict__,
+ })
for p in self.players:
if not p.is_bot:
p.notify_self()
diff --git a/frontend/src/components/DeadRoleNotification.vue b/frontend/src/components/DeadRoleNotification.vue
new file mode 100644
index 0000000..b03e79f
--- /dev/null
+++ b/frontend/src/components/DeadRoleNotification.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/Lobby.vue b/frontend/src/components/Lobby.vue
index fc72247..d74d60a 100644
--- a/frontend/src/components/Lobby.vue
+++ b/frontend/src/components/Lobby.vue
@@ -93,6 +93,9 @@
+
+
+
@@ -107,6 +110,7 @@ import Deck from './Deck.vue'
import TinyHand from './TinyHand.vue'
import FullScreenInput from './FullScreenInput.vue'
import Status from './Status.vue'
+import DeadRoleNotification from './DeadRoleNotification.vue'
export default {
name: 'Lobby',
@@ -119,7 +123,8 @@ export default {
TinyHand,
PrettyCheck,
FullScreenInput,
- Status
+ Status,
+ DeadRoleNotification
},
data: () => ({
username: '',
@@ -147,6 +152,7 @@ export default {
displayAdminStatus: false,
is_replay: false,
turn: -1,
+ deadRoleData: null,
}),
sockets: {
room(data) {
@@ -174,6 +180,12 @@ export default {
}
})
},
+ notify_dead_role(data) {
+ this.deadRoleData = data
+ setTimeout(() => {
+ this.deadRoleData = null
+ }, 4000);
+ },
debug(data) {
this.debug_mode = data;
},
@@ -191,28 +203,10 @@ export default {
this.$router.push('/')
}
this.username = username
- // this.$socket.emit('get_cards', 'dodge_city')
},
mount_status() {
this.displayAdminStatus = true
},
- // cards_info(data) {
- // data = JSON.parse(data)
- // let bigthing = {}
- // let bigthing_eng = {}
- // data.forEach(x => {
- // bigthing[x.name] = {
- // name:x.name,
- // desc:x.desc,
- // }
- // bigthing_eng[x.name] = {
- // name:x.name,
- // desc:x.desc_eng,
- // }
- // })
- // console.log(JSON.stringify(bigthing))
- // console.log(JSON.stringify(bigthing_eng))
- // },
change_username() {
this.hasToSetUsername = true
},