Index: ps/trunk/binaries/data/mods/public/simulation/components/ProductionQueue.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/ProductionQueue.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/ProductionQueue.js
@@ -20,9 +20,32 @@
{
this.producer = producer;
this.metadata = metadata;
+};
+/**
+ * @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")
+ return this.QueueEntity(templateName, count);
+
+ if (type == "technology")
+ return this.QueueTechnology(templateName);
+
+ warn("Tried to add invalid item of type \"" + type + "\" and template \"" + templateName + "\" to a production queue (entity: " + this.producer + ").");
+ return false;
};
+/**
+ * @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,20 +63,21 @@
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;
};
/**
- * @param {number} id - The id of this item.
+ * @param {number} id - The id this item needs to get.
*/
ProductionQueue.prototype.Item.prototype.SetID = function(id)
{
@@ -62,19 +86,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);
};
/**
@@ -85,6 +101,9 @@
this.started = true;
};
+/**
+ * @return {boolean} - Whether there is work done on the item.
+ */
ProductionQueue.prototype.Item.prototype.IsStarted = function()
{
return !!this.started;
@@ -142,6 +161,9 @@
Engine.QueryInterface(this.producer, IID_Researcher).UnpauseTechnology(this.technology);
};
+/**
+ * @return {boolean} - Whether the item is currently paused.
+ */
ProductionQueue.prototype.Item.prototype.IsPaused = function()
{
return !!this.paused;
@@ -199,7 +221,6 @@
ProductionQueue.prototype.Init = function()
{
this.nextID = 1;
-
this.queue = [];
};
@@ -309,21 +330,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)
@@ -342,7 +350,7 @@
};
/*
- * Removes an item from the queue.
+ * @param {number} - The ID of the item to remove from the queue.
*/
ProductionQueue.prototype.RemoveItem = function(id)
{
@@ -457,7 +465,6 @@
this.StopTimer();
this.paused = true;
this.queue[0]?.Pause();
- this.StopTimer();
};
ProductionQueue.prototype.UnpauseProduction = function()
@@ -492,6 +499,9 @@
delete this.timer;
};
+/**
+ * @return {boolean} - Whether this entity is currently producing.
+ */
ProductionQueue.prototype.HasQueuedProduction = function()
{
return this.queue.length > 0;
Index: ps/trunk/binaries/data/mods/public/simulation/components/Researcher.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/Researcher.js
+++ ps/trunk/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: ps/trunk/binaries/data/mods/public/simulation/components/Trainer.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/Trainer.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/Trainer.js
@@ -386,6 +386,7 @@
"missingPopSpace": this.missingPopSpace,
"paused": this.paused,
"player": this.player,
+ "population": this.population,
"trainer": this.trainer,
"resource": this.resources,
"started": this.started,
@@ -403,6 +404,7 @@
this.missingPopSpace = data.missingPopSpace;
this.paused = data.paused;
this.player = data.player;
+ this.population = data.population;
this.trainer = data.trainer;
this.resources = data.resources;
this.started = data.started;
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/athen/gymnasium.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/athen/gymnasium.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/athen/gymnasium.xml
@@ -33,6 +33,7 @@
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/athen/prytaneion.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/athen/prytaneion.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/athen/prytaneion.xml
@@ -33,6 +33,7 @@
+
long_walls
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/assembly.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/assembly.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/assembly.xml
@@ -38,6 +38,7 @@
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/apadana.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/apadana.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/apadana.xml
@@ -37,6 +37,7 @@
+
immortals
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
@@ -83,6 +83,7 @@
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml
@@ -33,6 +33,7 @@
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml
@@ -34,6 +34,7 @@
+
agoge
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure.xml
+++ ps/trunk/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: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
@@ -90,6 +90,7 @@
20
+
phase_town_{civ}
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml
@@ -38,6 +38,7 @@
5
+
health_females_01
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
@@ -39,6 +39,7 @@
+
heal_range
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_outpost.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_outpost.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_outpost.xml
@@ -37,6 +37,7 @@
+
outpost_vision
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_palisade.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_palisade.xml
+++ ps/trunk/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: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_artillery.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_artillery.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_artillery.xml
@@ -60,6 +60,7 @@
+
tower_health
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_bolt.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_bolt.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_bolt.xml
@@ -57,6 +57,7 @@
+
tower_health
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_sentry.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_sentry.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_sentry.xml
@@ -38,6 +38,7 @@
+
tower_watch
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_stone.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_stone.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_stone.xml
@@ -37,6 +37,7 @@
+
tower_watch
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_wall.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_wall.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_wall.xml
@@ -19,11 +19,9 @@
-
4.5
-
@@ -35,5 +33,4 @@
20
65535
-
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml
@@ -34,6 +34,7 @@
20
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml
@@ -39,6 +39,7 @@
+
trader_health
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_storehouse.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_storehouse.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_storehouse.xml
@@ -35,6 +35,7 @@
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_arsenal.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_arsenal.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_arsenal.xml
@@ -35,6 +35,7 @@
+
siege_attack
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
@@ -37,6 +37,7 @@
+
barracks_batch_training
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml
@@ -41,6 +41,7 @@
true
0.0
+
ship
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_elephant_stable.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_elephant_stable.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_elephant_stable.xml
@@ -37,6 +37,7 @@
+
interface/complete/building/complete_elephant_stable.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_embassy.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_embassy.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_embassy.xml
@@ -27,6 +27,7 @@
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_forge.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_forge.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_forge.xml
@@ -33,6 +33,7 @@
+
soldier_attack_melee_01
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
@@ -77,6 +77,7 @@
+
attack_soldiers_will
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_range.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_range.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_range.xml
@@ -32,6 +32,7 @@
+
interface/complete/building/complete_range.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_stable.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_stable.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_stable.xml
@@ -37,6 +37,7 @@
+
stable_batch_training
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
@@ -28,6 +28,7 @@
+
gather_animals_stockbreeding
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_resource_field.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_resource_field.xml
+++ ps/trunk/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: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_amphitheater.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_amphitheater.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_amphitheater.xml
@@ -27,6 +27,7 @@
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_library.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_library.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_library.xml
@@ -34,8 +34,6 @@
-
-
@@ -47,7 +45,6 @@
50
40000
-
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_rotarymill.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_rotarymill.xml
+++ ps/trunk/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: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_theater.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_theater.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_theater.xml
@@ -35,8 +35,6 @@
-
-
@@ -48,7 +46,6 @@
100
40000
-
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_wonder.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_wonder.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_wonder.xml
@@ -50,6 +50,7 @@
+
wonder_population_cap