From e43fca3cd4dd909325e5e9a375e8827ffd7e1fec Mon Sep 17 00:00:00 2001 From: evanpelle Date: Thu, 12 Jun 2025 06:25:24 -0700 Subject: [PATCH] update meta --- src/core/configuration/Config.ts | 2 ++ src/core/configuration/DefaultConfig.ts | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/core/configuration/Config.ts b/src/core/configuration/Config.ts index e6f4af76f..46d2875a0 100644 --- a/src/core/configuration/Config.ts +++ b/src/core/configuration/Config.ts @@ -130,6 +130,7 @@ export interface Config { SAMCooldown(): number; SiloCooldown(): number; defensePostDefenseBonus(): number; + defensePostSpeedBonus(): number; falloutDefenseModifier(percentOfFallout: number): number; difficultyModifier(difficulty: Difficulty): number; warshipPatrolRange(): number; @@ -139,6 +140,7 @@ export interface Config { defensePostTargettingRange(): number; // 0-1 traitorDefenseDebuff(): number; + traitorSpeedDebuff(): number; traitorDuration(): number; nukeMagnitudes(unitType: UnitType): NukeMagnitude; defaultNukeSpeed(): number; diff --git a/src/core/configuration/DefaultConfig.ts b/src/core/configuration/DefaultConfig.ts index fcad1d77b..2bee2d342 100644 --- a/src/core/configuration/DefaultConfig.ts +++ b/src/core/configuration/DefaultConfig.ts @@ -188,6 +188,9 @@ export class DefaultConfig implements Config { traitorDefenseDebuff(): number { return 0.5; } + traitorSpeedDebuff(): number { + return 0.5; + } traitorDuration(): number { return 30 * 10; // 30 seconds } @@ -245,6 +248,10 @@ export class DefaultConfig implements Config { defensePostDefenseBonus(): number { return 5; } + defensePostSpeedBonus(): number { + return 2; + } + playerTeams(): number | typeof Duos { return this._gameConfig.playerTeams ?? 0; } @@ -513,7 +520,7 @@ export class DefaultConfig implements Config { )) { if (dp.unit.owner() === defender) { mag *= this.defensePostDefenseBonus(); - speed *= this.defensePostDefenseBonus(); + speed *= this.defensePostSpeedBonus(); break; } } @@ -553,7 +560,7 @@ export class DefaultConfig implements Config { if (defender.isPlayer()) { return { attackerTroopLoss: - within(defender.troops() / attackTroops, 0.6, 2) * + within(defender.troops() / attackTroops, 0.5, 2) * mag * 0.8 * largeLossModifier * @@ -562,7 +569,8 @@ export class DefaultConfig implements Config { tilesPerTickUsed: within(defender.troops() / (5 * attackTroops), 0.2, 1.5) * speed * - largeSpeedMalus, + largeSpeedMalus * + (defender.isTraitor() ? this.traitorSpeedDebuff() : 1), }; } else { return { @@ -668,7 +676,7 @@ export class DefaultConfig implements Config { populationIncreaseRate(player: Player): number { const max = this.maxPopulation(player); - let toAdd = 10 + Math.pow(player.population(), 0.73) / 4; + let toAdd = 10 + Math.pow(player.population(), 0.7) / 4; const ratio = 1 - player.population() / max; toAdd *= ratio;