From c3a53b7ace115237f834b91c5925469c17b0dd10 Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Sun, 22 Jan 2023 23:03:26 +0000 Subject: [PATCH] add more importance to a dead role --- backend/bang/game.py | 11 ++ .../src/components/DeadRoleNotification.vue | 153 ++++++++++++++++++ frontend/src/components/Lobby.vue | 32 ++-- 3 files changed, 177 insertions(+), 19 deletions(-) create mode 100644 frontend/src/components/DeadRoleNotification.vue 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 },