Index: binaries/data/mods/public/simulation/components/ProductionQueue.js
===================================================================
--- binaries/data/mods/public/simulation/components/ProductionQueue.js
+++ binaries/data/mods/public/simulation/components/ProductionQueue.js
@@ -23,6 +23,38 @@
};
+/**
+ * @param {string} type - The type of queue to use.
+ * @param {string} templateName - The template to queue.
+ * @param {number} count - The amount of template to queue. Only applicable for type == "unit".
+ *
+ * @return {boolean} - Whether the item could be queued.
+ */
+ProductionQueue.prototype.Item.prototype.Queue = function(type, templateName, count)
+{
+ if (type == "unit")
+ {
+ if (!this.QueueEntity(templateName, count))
+ return false;
+ }
+ else if (type == "technology")
+ {
+ if (!this.QueueTechnology(templateName))
+ return false;
+ }
+ else
+ {
+ warn("Tried to add invalid item of type \"" + type + "\" and template \"" + templateName + "\" to a production queue (entity: " + this.producer + ").");
+ return false;
+ }
+ return true;
+};
+
+/**
+ * @param {string} templateName - The name of the entity to queue.
+ * @param {number} count - The number of entities that should be produced.
+ * @return {boolean} - Whether the batch was successfully created.
+ */
ProductionQueue.prototype.Item.prototype.QueueEntity = function(templateName, count)
{
const cmpTrainer = Engine.QueryInterface(this.producer, IID_Trainer);
@@ -40,16 +72,17 @@
return true;
};
+/**
+ * @param {string} templateName - The name of the technology to queue.
+ * @return {boolean} - Whether the technology was successfully queued.
+ */
ProductionQueue.prototype.Item.prototype.QueueTechnology = function(templateName)
{
const cmpResearcher = Engine.QueryInterface(this.producer, IID_Researcher);
if (!cmpResearcher)
return false;
this.technology = cmpResearcher.QueueTechnology(templateName, this.metadata);
- if (this.technology == -1)
- return false;
-
- return true;
+ return this.technology != -1;
};
/**
@@ -62,19 +95,11 @@
ProductionQueue.prototype.Item.prototype.Stop = function()
{
- if (this.entity)
- {
- const cmpTrainer = Engine.QueryInterface(this.producer, IID_Trainer);
- if (cmpTrainer)
- cmpTrainer.StopBatch(this.entity);
- }
+ if (this.entity > 0)
+ Engine.QueryInterface(this.producer, IID_Trainer)?.StopBatch(this.entity);
- if (this.technology)
- {
- const cmpResearcher = Engine.QueryInterface(this.producer, IID_Researcher);
- if (cmpResearcher)
- cmpResearcher.StopResearching(this.technology);
- }
+ if (this.technology > 0)
+ Engine.QueryInterface(this.producer, IID_Researcher)?.StopResearching(this.technology);
};
/**
@@ -309,21 +334,8 @@
const item = new this.Item();
item.Init(this.entity, metadata);
- if (type == "unit")
- {
- if (!item.QueueEntity(templateName, count))
- return false;
- }
- else if (type == "technology")
- {
- if (!item.QueueTechnology(templateName))
- return false;
- }
- else
- {
- warn("Tried to add invalid item of type \"" + type + "\" and template \"" + templateName + "\" to a production queue");
+ if (!item.Queue(type, templateName, count))
return false;
- }
item.SetID(this.nextID++);
if (pushFront)
Index: binaries/data/mods/public/simulation/components/Researcher.js
===================================================================
--- binaries/data/mods/public/simulation/components/Researcher.js
+++ binaries/data/mods/public/simulation/components/Researcher.js
@@ -221,8 +221,7 @@
if (!this.template.Technologies)
return [];
- let string = this.template.Technologies._string;
- string = ApplyValueModificationsToEntity("Researcher/Technologies/_string", string, this.entity);
+ const string = ApplyValueModificationsToEntity("Researcher/Technologies/_string", this.template.Technologies._string, this.entity);
if (!string)
return [];
Index: binaries/data/mods/public/simulation/templates/structures/athen/gymnasium.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/structures/athen/gymnasium.xml
+++ binaries/data/mods/public/simulation/templates/structures/athen/gymnasium.xml
@@ -33,6 +33,7 @@
+
Index: binaries/data/mods/public/simulation/templates/structures/athen/prytaneion.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/structures/athen/prytaneion.xml
+++ binaries/data/mods/public/simulation/templates/structures/athen/prytaneion.xml
@@ -33,6 +33,7 @@
+
long_walls
Index: binaries/data/mods/public/simulation/templates/structures/gaul/assembly.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/structures/gaul/assembly.xml
+++ binaries/data/mods/public/simulation/templates/structures/gaul/assembly.xml
@@ -38,6 +38,7 @@
+
Index: binaries/data/mods/public/simulation/templates/structures/pers/apadana.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/structures/pers/apadana.xml
+++ binaries/data/mods/public/simulation/templates/structures/pers/apadana.xml
@@ -37,6 +37,7 @@
+
immortals
Index: binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
+++ binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
@@ -83,6 +83,7 @@
+
Index: binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml
+++ binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml
@@ -33,6 +33,7 @@
+
Index: binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml
+++ binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml
@@ -34,6 +34,7 @@
+
agoge
Index: binaries/data/mods/public/simulation/templates/template_structure.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure.xml
+++ binaries/data/mods/public/simulation/templates/template_structure.xml
@@ -77,7 +77,6 @@
0
6
-
special/rallypoint
@@ -94,15 +93,6 @@
2.0
-
-
- 1.0
- 1.0
- 1.0
- 1.0
-
-
-
@@ -161,9 +151,6 @@
20
neutral enemy
-
- 1.0
-
true
false
Index: binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
@@ -90,6 +90,7 @@
20
+
phase_town_{civ}
Index: binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml
@@ -38,6 +38,7 @@
5
+
health_females_01
Index: binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
@@ -39,6 +39,7 @@
+
heal_range
Index: binaries/data/mods/public/simulation/templates/template_structure_defensive_outpost.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_defensive_outpost.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_defensive_outpost.xml
@@ -37,6 +37,7 @@
+
outpost_vision
Index: binaries/data/mods/public/simulation/templates/template_structure_defensive_palisade.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_defensive_palisade.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_defensive_palisade.xml
@@ -16,9 +16,7 @@
Palisade
gaia/special_palisade.png
-
-
@@ -34,5 +32,4 @@
interface/complete/building/complete_wall.xml
-
Index: binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_artillery.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_artillery.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_artillery.xml
@@ -60,6 +60,7 @@
+
tower_health
Index: binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_bolt.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_bolt.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_bolt.xml
@@ -57,6 +57,7 @@
+
tower_health
Index: binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_sentry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_sentry.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_sentry.xml
@@ -38,6 +38,7 @@
+
tower_watch
Index: binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_stone.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_stone.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_stone.xml
@@ -37,6 +37,7 @@
+
tower_watch
Index: binaries/data/mods/public/simulation/templates/template_structure_defensive_wall.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_defensive_wall.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_defensive_wall.xml
@@ -19,11 +19,9 @@
-
4.5
-
@@ -35,5 +33,4 @@
20
65535
-
Index: binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml
@@ -34,6 +34,7 @@
20
+
Index: binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml
@@ -39,6 +39,7 @@
+
trader_health
Index: binaries/data/mods/public/simulation/templates/template_structure_economic_storehouse.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_economic_storehouse.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_economic_storehouse.xml
@@ -35,6 +35,7 @@
+
Index: binaries/data/mods/public/simulation/templates/template_structure_military_arsenal.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_arsenal.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_arsenal.xml
@@ -35,6 +35,7 @@
+
siege_attack
Index: binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
@@ -37,6 +37,7 @@
+
barracks_batch_training
Index: binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml
@@ -41,6 +41,7 @@
true
0.0
+
ship
Index: binaries/data/mods/public/simulation/templates/template_structure_military_elephant_stable.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_elephant_stable.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_elephant_stable.xml
@@ -37,6 +37,7 @@
+
interface/complete/building/complete_elephant_stable.xml
Index: binaries/data/mods/public/simulation/templates/template_structure_military_embassy.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_embassy.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_embassy.xml
@@ -27,6 +27,7 @@
+
Index: binaries/data/mods/public/simulation/templates/template_structure_military_forge.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_forge.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_forge.xml
@@ -33,6 +33,7 @@
+
soldier_attack_melee_01
Index: binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
@@ -77,6 +77,7 @@
+
attack_soldiers_will
Index: binaries/data/mods/public/simulation/templates/template_structure_military_range.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_range.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_range.xml
@@ -32,6 +32,7 @@
+
interface/complete/building/complete_range.xml
Index: binaries/data/mods/public/simulation/templates/template_structure_military_stable.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_stable.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_stable.xml
@@ -37,6 +37,7 @@
+
stable_batch_training
Index: binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
@@ -28,6 +28,7 @@
+
gather_animals_stockbreeding
Index: binaries/data/mods/public/simulation/templates/template_structure_resource_field.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_resource_field.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_resource_field.xml
@@ -32,9 +32,7 @@
false
false
-
-
@@ -60,7 +58,6 @@
8.0
-
0
Index: binaries/data/mods/public/simulation/templates/template_structure_special_amphitheater.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_special_amphitheater.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_special_amphitheater.xml
@@ -27,6 +27,7 @@
+
Index: binaries/data/mods/public/simulation/templates/template_structure_special_library.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_special_library.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_special_library.xml
@@ -34,8 +34,6 @@
-
-
@@ -47,7 +45,6 @@
50
40000
-
40
Index: binaries/data/mods/public/simulation/templates/template_structure_special_rotarymill.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_special_rotarymill.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_special_rotarymill.xml
@@ -28,9 +28,7 @@
-
-
food
true
@@ -49,7 +47,6 @@
32
40000
-
40
Index: binaries/data/mods/public/simulation/templates/template_structure_special_theater.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_special_theater.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_special_theater.xml
@@ -35,8 +35,6 @@
-
-
@@ -48,7 +46,6 @@
100
40000
-
40
Index: binaries/data/mods/public/simulation/templates/template_structure_wonder.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_wonder.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_wonder.xml
@@ -50,6 +50,7 @@
+
wonder_population_cap