Index: ps/trunk/binaries/data/mods/public/simulation/components/Foundation.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/Foundation.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/Foundation.js
@@ -1,7 +1,9 @@
function Foundation() {}
Foundation.prototype.Schema =
- "";
+ "" +
+ "" +
+ "";
Foundation.prototype.Init = function()
{
@@ -15,7 +17,8 @@
this.builders = new Map(); // Map of builder entities to their work per second
this.totalBuilderRate = 0; // Total amount of work the builders do each second
this.buildMultiplier = 1; // Multiplier for the amount of work builders do
- this.buildTimePenalty = 0.7; // Penalty for having multiple builders
+
+ this.buildTimeModifier = +this.template.BuildTimeModifier;
this.previewEntity = INVALID_ENTITY;
};
@@ -220,7 +223,7 @@
Foundation.prototype.CalculateBuildMultiplier = function(num)
{
// Avoid division by zero, in particular 0/0 = NaN which isn't reliably serialized
- return num < 2 ? 1 : Math.pow(num, this.buildTimePenalty) / num;
+ return num < 2 ? 1 : Math.pow(num, this.buildTimeModifier) / num;
};
Foundation.prototype.SetBuildMultiplier = function()
Index: ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Foundation.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Foundation.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Foundation.js
@@ -139,7 +139,9 @@
TS_ASSERT_EQUALS(template, "construction|" + finalTemplate);
return previewEnt;
};
- cmpFoundation = ConstructComponent(foundationEnt, "Foundation", {});
+ cmpFoundation = ConstructComponent(foundationEnt, "Foundation", {
+ "BuildTimeModifier": "0.7"
+ });
cmpFoundation.InitialiseConstruction(finalTemplate);
TS_ASSERT_EQUALS(cmpFoundation.finalTemplateName, finalTemplate);
@@ -149,8 +151,8 @@
// BUILDER COUNT, BUILD RATE, TIME REMAINING
AddMock(10, IID_Builder, { "GetRate": () => 1.0 });
AddMock(11, IID_Builder, { "GetRate": () => 1.0 });
- let twoBuilderMultiplier = Math.pow(2, cmpFoundation.buildTimePenalty) / 2;
- let threeBuilderMultiplier = Math.pow(3, cmpFoundation.buildTimePenalty) / 3;
+ let twoBuilderMultiplier = Math.pow(2, cmpFoundation.buildTimeModifier) / 2;
+ let threeBuilderMultiplier = Math.pow(3, cmpFoundation.buildTimeModifier) / 3;
TS_ASSERT_EQUALS(cmpFoundation.CalculateBuildMultiplier(1), 1);
TS_ASSERT_EQUALS(cmpFoundation.CalculateBuildMultiplier(2), twoBuilderMultiplier);
Index: ps/trunk/binaries/data/mods/public/simulation/templates/special/filter/foundation.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/special/filter/foundation.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/special/filter/foundation.xml
@@ -8,7 +8,9 @@
-
+
+ 0.7
+
1