From b93e84c5ba1b96c52e59a83c0fd70d19b8929587 Mon Sep 17 00:00:00 2001 From: 1brucben <1benjbruce@gmail.com> Date: Sun, 20 Apr 2025 19:22:38 +0200 Subject: [PATCH] Gold Adjustment --- src/core/configuration/DefaultConfig.ts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/core/configuration/DefaultConfig.ts b/src/core/configuration/DefaultConfig.ts index 33ac35294..d75a1d896 100644 --- a/src/core/configuration/DefaultConfig.ts +++ b/src/core/configuration/DefaultConfig.ts @@ -638,7 +638,28 @@ export class DefaultConfig implements Config { } goldAdditionRate(player: Player): number { - return (player.workers() ** 0.6 * player.numTilesOwned() ** 0.4) / 400; + const numCities = player.units(UnitType.City).length; + const baseCityPopulation = numCities * this.cityPopulationIncrease(); + + const totalWorkers = player.workers(); + const totalPopulation = player.population(); + const maxPopulation = this.maxPopulation(player); + const numTiles = player.numTilesOwned(); + + const populationRatio = + maxPopulation > 0 ? totalPopulation / maxPopulation : 0; + const adjustedCityPopulation = baseCityPopulation * populationRatio; + + const cityWorkers = + (adjustedCityPopulation * totalWorkers) / totalPopulation; + const ruralWorkers = totalWorkers - cityWorkers; + + const cityGold = cityWorkers / 1950; + const tileGold = (ruralWorkers ** 0.6 * numTiles ** 0.4) / 500; + + const totalGold = cityGold + tileGold; + + return totalGold; } troopAdjustmentRate(player: Player): number {