diff --git a/src/server/GameManager.ts b/src/server/GameManager.ts index bd7d2efc8..fde2678c2 100644 --- a/src/server/GameManager.ts +++ b/src/server/GameManager.ts @@ -104,11 +104,10 @@ export class GameManager { } desyncCount(): number { - let totalDesyncs = 0; - this.games.forEach((game: GameServer) => { - totalDesyncs += game.desyncCount; - }); - return totalDesyncs; + return [...this.games.values()].reduce( + (acc, game) => acc + game.numDesyncedClients(), + 0, + ); } tick() { diff --git a/src/server/GameServer.ts b/src/server/GameServer.ts index 4bfe1217d..3902f90a2 100644 --- a/src/server/GameServer.ts +++ b/src/server/GameServer.ts @@ -79,8 +79,6 @@ export class GameServer { private _hasEnded = false; - public desyncCount = 0; - private lobbyInfoIntervalId: ReturnType | null = null; constructor( @@ -533,6 +531,10 @@ export class GameServer { return this.activeClients.length; } + public numDesyncedClients(): number { + return this.outOfSyncClients.size; + } + public prestart() { if (this.hasStarted()) { return; @@ -983,8 +985,6 @@ export class GameServer { const { mostCommonHash, outOfSyncClients } = this.findOutOfSyncClients(lastHashTurn); - this.desyncCount += outOfSyncClients.length; - if (outOfSyncClients.length === 0) { this.turns[lastHashTurn].hash = mostCommonHash; return;