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; }