From 674a3db4a23ee236f08bf3997a1c4fb939e78724 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Sat, 27 Jun 2020 09:45:22 -0700 Subject: [PATCH] game: Fix reactivation of an existing player to be fully active To do this, we have to set the player's active bit to true, then we increment the server's count of active players, and finally we broadcast to all active players that this player has entered the game again. This commit fixes the bug described in the previous commit, (so that the entire test suite passes once again). --- game.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/game.js b/game.js index 8ea26e3..f244eaa 100644 --- a/game.js +++ b/game.js @@ -166,6 +166,15 @@ class Game { const existing = this.players_by_session[session.id]; if (existing) { existing.add_connection(connection); + if (! existing.active) { + /* If we're re-activating a previously idled player, then we + * need to alert everyone that this player is now back. + */ + existing.active = true; + this.active_players++; + const player_data = JSON.stringify({ id: existing.id, name: existing.name }); + this.broadcast_event("player-enter", player_data); + } return existing; } -- 2.43.0