diff --git a/src/client/Store.ts b/src/client/Store.ts index 65219f17a..7f18b6183 100644 --- a/src/client/Store.ts +++ b/src/client/Store.ts @@ -120,6 +120,7 @@ export class StoreModal extends BaseModal { disableNations: true, infiniteGold: true, infiniteTroops: true, + startingTroops: 10_000_000, percentageTilesOwnedToWin: 99, disabledUnits: [ UnitType.City, diff --git a/src/core/Schemas.ts b/src/core/Schemas.ts index cd6fad15f..0315101de 100644 --- a/src/core/Schemas.ts +++ b/src/core/Schemas.ts @@ -264,6 +264,7 @@ export const GameConfigSchema = z.object({ playerTeams: TeamCountConfigSchema.optional(), goldMultiplier: z.number().min(0.1).max(1000).nullable().optional(), startingGold: z.number().int().min(0).max(1000000000).nullable().optional(), + startingTroops: z.number().int().min(0).max(1000000000).nullable().optional(), hostCheats: z .object({ infiniteGold: z.boolean().optional(), diff --git a/src/core/configuration/Config.ts b/src/core/configuration/Config.ts index 9ea5dd3cb..62b1372e2 100644 --- a/src/core/configuration/Config.ts +++ b/src/core/configuration/Config.ts @@ -748,6 +748,12 @@ export class Config { assertNever(this._gameConfig.difficulty); } } + if ( + this._gameConfig.startingTroops !== undefined && + this._gameConfig.startingTroops !== null + ) { + return this._gameConfig.startingTroops; + } return this.hasInfiniteTroopsForInfo(playerInfo) ? 1_000_000 : 25_000; }