From a7f0e86df9f331e438877d135b2b3e18ab995a95 Mon Sep 17 00:00:00 2001 From: mimo Date: Sat, 9 Sep 2017 14:38:40 +0000 Subject: [PATCH] Petra: fix population bonus of foundation when using https://code.wildfiregames.com/D639 git-svn-id: https://svn.wildfiregames.com/public/ps/trunk@20143 3db68df2-c116-0410-a063-a993310a9797 --- .../data/mods/public/simulation/ai/common-api/gamestate.js | 11 +++++++++++ .../data/mods/public/simulation/ai/petra/queueplanBuilding.js | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/binaries/data/mods/public/simulation/ai/common-api/gamestate.js b/binaries/data/mods/public/simulation/ai/common-api/gamestate.js index 946dade3f9..e94c35e53a 100644 --- a/binaries/data/mods/public/simulation/ai/common-api/gamestate.js +++ b/binaries/data/mods/public/simulation/ai/common-api/gamestate.js @@ -157,6 +157,17 @@ m.GameState.prototype.getTemplate = function(type) return new m.Template(this.sharedScript, type, this.templates[type]); }; +/** Return the template of the structure built from this foundation */ +m.GameState.prototype.getBuiltTemplate = function(foundationName) +{ + if (!foundationName.startsWith("foundation|")) + { + warn("Foundation " + foundationName + " not recognised as a foundation."); + return null; + } + return this.getTemplate(foundationName.substr(11)); +}; + m.GameState.prototype.applyCiv = function(str) { return str.replace(/\{civ\}/g, this.playerData.civ); diff --git a/binaries/data/mods/public/simulation/ai/petra/queueplanBuilding.js b/binaries/data/mods/public/simulation/ai/petra/queueplanBuilding.js index b124355709..8f7b2feccf 100644 --- a/binaries/data/mods/public/simulation/ai/petra/queueplanBuilding.js +++ b/binaries/data/mods/public/simulation/ai/petra/queueplanBuilding.js @@ -772,7 +772,11 @@ m.ConstructionPlan.prototype.isGo = function(gameState) return false; let freeSlots = gameState.getPopulationLimit() - gameState.getPopulation(); for (let ent of gameState.getOwnFoundations().values()) - freeSlots += ent.getPopulationBonus(); + { + let template = gameState.getBuiltTemplate(ent.templateName()); + if (template) + freeSlots += template.getPopulationBonus(); + } if (gameState.ai.HQ.saveResources) return freeSlots <= 10; -- 2.11.4.GIT