From 94c499a5e5912a9b0af58b210a4febbf47da778f Mon Sep 17 00:00:00 2001 From: evan Date: Thu, 24 Apr 2025 07:47:08 -0700 Subject: [PATCH] fix teams mode on private multiplayer games --- src/core/game/GameImpl.ts | 6 ++++-- src/server/GameServer.ts | 3 +++ src/server/Worker.ts | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/core/game/GameImpl.ts b/src/core/game/GameImpl.ts index 06bcc57ba..21b10c21d 100644 --- a/src/core/game/GameImpl.ts +++ b/src/core/game/GameImpl.ts @@ -102,13 +102,15 @@ export class GameImpl implements Game { if (_config.gameConfig().gameMode === GameMode.Team) { const numPlayerTeams = _config.numPlayerTeams(); - if (numPlayerTeams < 2) throw new Error("Too few teams!"); + if (numPlayerTeams < 2) + throw new Error(`Too few teams: ${numPlayerTeams}`); if (numPlayerTeams >= 3) this.playerTeams.push(Team.Teal); if (numPlayerTeams >= 4) this.playerTeams.push(Team.Purple); if (numPlayerTeams >= 5) this.playerTeams.push(Team.Yellow); if (numPlayerTeams >= 6) this.playerTeams.push(Team.Orange); if (numPlayerTeams >= 7) this.playerTeams.push(Team.Green); - if (numPlayerTeams >= 8) throw new Error("Too many teams!"); + if (numPlayerTeams >= 8) + throw new Error(`Too many teams: ${numPlayerTeams}`); } } diff --git a/src/server/GameServer.ts b/src/server/GameServer.ts index a267c4f3a..ac27c845c 100644 --- a/src/server/GameServer.ts +++ b/src/server/GameServer.ts @@ -95,6 +95,9 @@ export class GameServer { if (gameConfig.gameMode != null) { this.gameConfig.gameMode = gameConfig.gameMode; } + if (gameConfig.numPlayerTeams != null) { + this.gameConfig.numPlayerTeams = gameConfig.numPlayerTeams; + } } public addClient(client: Client, lastTurn: number) { diff --git a/src/server/Worker.ts b/src/server/Worker.ts index 8a6d0ddd4..d8747ebb3 100644 --- a/src/server/Worker.ts +++ b/src/server/Worker.ts @@ -165,6 +165,7 @@ export function startWorker() { disableNPCs: req.body.disableNPCs, disableNukes: req.body.disableNukes, gameMode: req.body.gameMode, + numPlayerTeams: req.body.numPlayerTeams, }); res.status(200).json({ success: true }); }),