From d9c349366197909107946b89952cac385388eb11 Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Thu, 19 Jan 2023 10:56:38 +0000 Subject: [PATCH] add spectate button --- backend/bang/game.py | 1 + backend/server.py | 17 ++++++++++++++++- frontend/src/components/Lobby.vue | 6 ++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/backend/bang/game.py b/backend/bang/game.py index 3e3724f..4539e42 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -190,6 +190,7 @@ class Game: 'disconnect_bot': self.disconnect_bot, 'expansions': self.expansions, 'available_expansions': self.available_expansions, + 'is_replay': self.is_replay, }) self.sio.emit('debug', room=self.name, data=self.debug) if self.debug: diff --git a/backend/server.py b/backend/server.py index 715ef43..2873095 100644 --- a/backend/server.py +++ b/backend/server.py @@ -445,7 +445,7 @@ def chat_message(sid, msg, pl=None): ses.game.add_player(bot) bot.bot_spin() return - if '/replay' in msg and not '/replayspeed' in msg: + if '/replay' in msg and not '/replayspeed' in msg and not '/replaypov' in msg: _cmd = msg.split() if len(_cmd) >= 2: replay_id = _cmd[1] @@ -463,6 +463,21 @@ def chat_message(sid, msg, pl=None): if len(_cmd) == 2: ses.game.replay_speed = float(_cmd[1]) return + if '/replaypov' in msg: + _cmd = msg.split() + if len(_cmd) > 1: + name = ' '.join(_cmd[1:]) + for p in ses.game.players: + if p.sid == ses.sid: + from tests.dummy_socket import DummySocket + p.sio = DummySocket() + p.sid = '' + pl = ses.game.get_player_named(name) + pl.sio = sio + pl.sid = ses.sid + pl.set_role(pl.role) + pl.notify_self() + return if '/startwithseed' in msg and not ses.game.started: if len(msg.split()) > 1: ses.game.start_game(int(msg.split()[1])) diff --git a/frontend/src/components/Lobby.vue b/frontend/src/components/Lobby.vue index 3fd0a97..f8a6d25 100644 --- a/frontend/src/components/Lobby.vue +++ b/frontend/src/components/Lobby.vue @@ -66,6 +66,7 @@ :card="card" @click.native="selectedInfo = p.gold_rush_equipment" :style="`margin-top: ${i+p.equipment.length<1?10:-(Math.min((p.equipment.length+p.gold_rush_equipment.length+1)*12,80))}pt`"/> +
🤖
@@ -144,6 +145,7 @@ export default { showTurnFlow: false, turnReversed: false, displayAdminStatus: false, + is_replay: false, turn: -1, }), sockets: { @@ -161,6 +163,7 @@ export default { this.disconnect_bot = data.disconnect_bot this.togglable_expansions = data.available_expansions this.expansions = data.expansions + this.is_replay = data.is_replay this.players = data.players.map(x => { return { name: x.name, @@ -285,6 +288,9 @@ export default { console.log(ex+' '+ this.expansions+ (this.expansions.indexOf(ex) !== -1)) return this.expansions.indexOf(ex) !== -1 }, + replayPlayer(player) { + this.$socket.emit('chat_message', `/replaypov ${player}`) + }, leaveRoom() { window.location.replace(window.location.origin) document.title = 'PewPew!'