this.id = id;
this.players = [];
this.players_by_session = {};
+ this.active_players = 0;
this.next_player_id = 1;
this.teams = [];
this.state = {
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;
}
this.players.push(player);
this.players_by_session[session.id] = player;
+ this.active_players++;
this.next_player_id++;
/* After adding the player to the list, and if we are already past
const remaining = player.remove_connection(connection);
if (remaining === 0) {
player.active = false;
+ this.active_players--;
const player_data = JSON.stringify({ id: player.id });
this.broadcast_event("player-exit", player_data);
}