From c4f612eb98e350850ecd77b59501c3f1670756df Mon Sep 17 00:00:00 2001 From: Ilan Schemoul Date: Fri, 14 Mar 2025 01:05:22 +0100 Subject: [PATCH] easier to take nuclear land if most of the land are nuclear (#241) - **Revert "Change BorderTiles from Array to Set (#230)"** - **easier to take nuclear land if most of the land are nuclear** --- src/core/configuration/Config.ts | 2 +- src/core/configuration/DefaultConfig.ts | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/core/configuration/Config.ts b/src/core/configuration/Config.ts index c0bbd0309..aac2822b0 100644 --- a/src/core/configuration/Config.ts +++ b/src/core/configuration/Config.ts @@ -163,7 +163,7 @@ export interface Config { tradeShipSpawnRate(): number; defensePostRange(): number; defensePostDefenseBonus(): number; - falloutDefenseModifier(): number; + falloutDefenseModifier(percentOfFallout: number): number; difficultyModifier(difficulty: Difficulty): number; // 0-1 traitorDefenseDebuff(): number; diff --git a/src/core/configuration/DefaultConfig.ts b/src/core/configuration/DefaultConfig.ts index bc97c5cf6..741577742 100644 --- a/src/core/configuration/DefaultConfig.ts +++ b/src/core/configuration/DefaultConfig.ts @@ -126,8 +126,10 @@ export class DefaultConfig implements Config { return 250_000; } - falloutDefenseModifier(): number { - return 5; + falloutDefenseModifier(falloutRatio: number): number { + // falloutRatio is between 0 and 1 + // So defense modifier is between [5, 2.5] + return 5 - falloutRatio * 2; } defensePostRange(): number { @@ -374,8 +376,9 @@ export class DefaultConfig implements Config { } if (gm.hasFallout(tileToConquer)) { - mag *= this.falloutDefenseModifier(); - speed *= this.falloutDefenseModifier(); + const falloutRatio = gm.numTilesWithFallout() / gm.numLandTiles(); + mag *= this.falloutDefenseModifier(falloutRatio); + speed *= this.falloutDefenseModifier(falloutRatio); } if (attacker.isPlayer() && defender.isPlayer()) {