From 227ac01fa1345bf46d7924230c0536c069451ff4 Mon Sep 17 00:00:00 2001 From: Restart2008 Date: Wed, 29 Oct 2025 20:58:35 -0700 Subject: [PATCH] configurable preparation time --- src/client/Main.ts | 4 +++- src/core/configuration/DefaultConfig.ts | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/client/Main.ts b/src/client/Main.ts index 2d61e78b6..e7a95b7f3 100644 --- a/src/client/Main.ts +++ b/src/client/Main.ts @@ -629,7 +629,9 @@ class Client { incrementGamesPlayed(); try { - window.PageOS.session.newPageView(); + if (window.PageOS && window.PageOS.session) { + window.PageOS.session.newPageView(); + } } catch (e) { console.error("Error calling newPageView", e); } diff --git a/src/core/configuration/DefaultConfig.ts b/src/core/configuration/DefaultConfig.ts index 2537eb999..26c31badb 100644 --- a/src/core/configuration/DefaultConfig.ts +++ b/src/core/configuration/DefaultConfig.ts @@ -22,6 +22,7 @@ import { import { TileRef } from "../game/GameMap"; import { PlayerView } from "../game/GameView"; import { UserSettings } from "../game/UserSettings"; +import { getPreparationTimeSeconds } from "../gamemodes/nuke-wars/guards"; import { GameConfig, GameID, TeamCountConfig } from "../Schemas"; import { NukeType } from "../StatsSchemas"; import { assertNever, sigmoid, simpleHash, within } from "../Util"; @@ -632,12 +633,13 @@ export class DefaultConfig implements Config { } numPreparationPhaseTurns(): number { - // Preparation phase duration (Nuke Wars uses a 3 minute prep phase) + // Preparation phase duration for Nuke Wars is configurable via preparationTimeSeconds if ( this._gameConfig.gameMode === GameMode.Team && this._gameConfig.teamGameType === TeamGameType.NukeWars ) { - return 180 * 10; // 180 seconds * 10 ticks/sec + const seconds = getPreparationTimeSeconds(this._gameConfig); + return seconds * 10; // ticks are 100ms } return 0; }