Added checkboxes to disable Bots and NPCs for single player and private lobbies

This commit is contained in:
NewHappyRabbit
2025-02-11 03:29:56 +02:00
parent a0b88f543c
commit 684b0bb2e0
12 changed files with 92 additions and 5 deletions
+5 -3
View File
@@ -58,9 +58,11 @@ export class GameRunner {
) {}
init() {
this.game.addExecution(
...this.execManager.spawnBots(this.game.config().numBots())
);
if (this.game.config().spawnBots()) {
this.game.addExecution(
...this.execManager.spawnBots(this.game.config().numBots())
);
}
if (this.game.config().spawnNPCs()) {
this.game.addExecution(...this.execManager.fakeHumanExecutions());
}
+2
View File
@@ -92,6 +92,8 @@ const GameConfigSchema = z.object({
gameMap: z.nativeEnum(GameMapType),
difficulty: z.nativeEnum(Difficulty),
gameType: z.nativeEnum(GameType),
disableBots: z.boolean(),
disableNPCs: z.boolean(),
});
const SafeString = z
+1
View File
@@ -70,6 +70,7 @@ export interface Config {
percentageTilesOwnedToWin(): number;
numBots(): number;
spawnNPCs(): boolean;
spawnBots(): boolean;
numSpawnPhaseTurns(): number;
startManpower(playerInfo: PlayerInfo): number;
+4 -1
View File
@@ -76,7 +76,10 @@ export class DefaultConfig implements Config {
return 5;
}
spawnNPCs(): boolean {
return true;
return !this._gameConfig.disableNPCs;
}
spawnBots(): boolean {
return !this._gameConfig.disableBots;
}
tradeShipGold(dist: number): Gold {
return 10000 + 100 * Math.pow(dist, 1.1);