From 735a2ae57b8c8d51a2e5479713b6e98513498344 Mon Sep 17 00:00:00 2001 From: evanpelle Date: Sun, 1 Sep 2024 03:54:04 -0700 Subject: [PATCH] end game when all clients disconnected or 1 hour --- src/server/GameServer.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/server/GameServer.ts b/src/server/GameServer.ts index e122f891e..f7e04d0e6 100644 --- a/src/server/GameServer.ts +++ b/src/server/GameServer.ts @@ -13,7 +13,7 @@ export enum GamePhase { export class GameServer { - private gameDuration = 30 * 60 * 1000 // TODO!!! fix this + private maxGameDuration = 60 * 60 * 1000 // 1 hour private turns: Turn[] = [] private intents: Intent[] = [] @@ -126,10 +126,17 @@ export class GameServer { if (Date.now() - this.createdAt < this.config.lobbyLifetime()) { return GamePhase.Lobby } - if (Date.now() - this.createdAt < this.config.lobbyLifetime() + this.gameDuration) { - return GamePhase.Active + + if (this.clients.length == 0) { + return GamePhase.Finished } - return GamePhase.Finished + + if (Date.now() > this.createdAt + this.config.lobbyLifetime() + this.maxGameDuration) { + console.warn(`game past max duration ${this.id}`) + return GamePhase.Finished + } + + return GamePhase.Active } hasStarted(): boolean {