Index: binaries/data/mods/public/simulation/ai/common-api/entity.js =================================================================== --- binaries/data/mods/public/simulation/ai/common-api/entity.js +++ binaries/data/mods/public/simulation/ai/common-api/entity.js @@ -98,18 +98,22 @@ return 0; }, - "cost": function(productionQueue) { + "cost": function(trainer) { if (!this.get("Cost")) return {}; - let ret = {}; - for (let type in this.get("Cost/Resources")) + const ret = {}; + for (const type in this.get("Cost/Resources")) + { ret[type] = +this.get("Cost/Resources/" + type); + if (trainer) + ret[type] *= trainer.trainCostMultiplier(type); + } return ret; }, - "costSum": function(productionQueue) { - let cost = this.cost(productionQueue); + "costSum": function(trainer) { + const cost = this.cost(trainer); if (!cost) return 0; let ret = 0; @@ -122,6 +126,10 @@ return +(this.get("Researcher/TechCostMultiplier/"+type) || 1); }, + "trainCostMultiplier": function(type) { + return +(this.get("Trainer/TrainCostMultiplier/" + type) || 1); + }, + /** * Returns { "max": max, "min": min } or undefined if no obstruction. * max: radius of the outer circle surrounding this entity's obstruction shape Index: binaries/data/mods/public/simulation/components/GuiInterface.js =================================================================== --- binaries/data/mods/public/simulation/components/GuiInterface.js +++ binaries/data/mods/public/simulation/components/GuiInterface.js @@ -361,7 +361,8 @@ const cmpTrainer = Engine.QueryInterface(ent, IID_Trainer); if (cmpTrainer) ret.trainer = { - "entities": cmpTrainer.GetEntitiesList() + "entities": cmpTrainer.GetEntitiesList(), + "trainCostMultiplier": cmpTrainer.GetTrainCostMultiplier() }; let cmpTrader = Engine.QueryInterface(ent, IID_Trader); Index: binaries/data/mods/public/simulation/components/Trainer.js =================================================================== --- binaries/data/mods/public/simulation/components/Trainer.js +++ binaries/data/mods/public/simulation/components/Trainer.js @@ -20,6 +20,11 @@ "" + "" + "" + + "" + + "" + + "" + + Resources.BuildSchema("nonNegativeDecimal", ["time"]) + + "" + ""; /**