From: Carl Worth Date: Sat, 27 Jun 2020 16:45:22 +0000 (-0700) Subject: game: Fix reactivation of an existing player to be fully active X-Git-Url: https://git.cworth.org/git?p=empires-server;a=commitdiff_plain;h=674a3db4a23ee236f08bf3997a1c4fb939e78724 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). --- 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; }