Index: binaries/data/mods/public/art/variants/biped/base_healer.xml
===================================================================
--- binaries/data/mods/public/art/variants/biped/base_healer.xml
+++ binaries/data/mods/public/art/variants/biped/base_healer.xml
@@ -10,12 +10,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/variants/biped/base_healer_female.xml
===================================================================
--- binaries/data/mods/public/art/variants/biped/base_healer_female.xml
+++ binaries/data/mods/public/art/variants/biped/base_healer_female.xml
@@ -10,12 +10,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/simulation/data/abilities/Hospital.json
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/data/abilities/Hospital.json
@@ -0,0 +1,3 @@
+{
+ "script": "Hospital.js"
+}
\ No newline at end of file
Index: binaries/data/mods/public/simulation/data/abilities/effects/Hospital.js
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/data/abilities/effects/Hospital.js
@@ -0,0 +1,74 @@
+function Hospital()
+{
+ this.name = "Hospital";
+
+ this.schema =
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "tokens" +
+ "" +
+ "" +
+ "";
+
+}
+
+Hospital.prototype.SetupData = function(entity, templateData)
+{
+ return templateData;
+}
+
+Hospital.prototype.GetIcon = function(entity, templateData)
+{
+ return "portraits/technologies/healing_rate.png";
+}
+
+Hospital.prototype.GetTooltip = function(entity, templateData)
+{
+ return "This hospital, if garrisoned with a unit of class " + templateData.Hospital.Requires._string + ", will heal other garrisoned units by " + templateData.Hospital.HealRate + " HP per second.";
+}
+
+Hospital.prototype.OnFire = function(entity, templateData, commandData)
+{
+ let cmpModManager = QueryOwnerInterface(entity, IID_ModifiersManager);
+ if (!cmpModManager)
+ return;
+
+ cmpModManager.AddLocalModifiers(entity, "Hospital_Ability", 1000, {
+ "TerritoryDecay/DecayRate": {"affects": ["Structure"], "replace": 0},
+ "GarrisonHolder/BuffHeal": {"affects": ["Structure"], "replace": +templateData.Hospital.HealRate},
+ });
+}
+
+Hospital.prototype.OnFinished = function(entity, templateData, commandData)
+{
+ let cmpModManager = QueryOwnerInterface(entity, IID_ModifiersManager);
+ if (!cmpModManager)
+ return;
+
+ cmpModManager.RemoveLocalModifier(entity, "TerritoryDecay/DecayRate", "Hospital_Ability");
+ cmpModManager.RemoveLocalModifier(entity, "GarrisonHolder/BuffHeal", "Hospital_Ability");
+}
+
+Hospital.prototype.IsFinished = function(entity, templateData, commandData)
+{
+ return !this.Validate(entity, templateData, false);
+}
+
+Hospital.prototype.Validate = function(entity, templateData, sendMessages)
+{
+ let cmpGarrisonHolder = Engine.QueryInterface(entity, IID_GarrisonHolder);
+ let entities = cmpGarrisonHolder.GetEntities();
+ for (let ent of entities)
+ {
+ let Identity = Engine.QueryInterface(ent, IID_Identity);
+ if (MatchesClassList(Identity.GetClassesList(), templateData.Hospital.Requires._string))
+ return true;
+ }
+ return false;
+}
+
+var Hospital = new Hospital();
+AbilityEffects.RegisterEffect(Hospital);
Index: binaries/data/mods/public/simulation/templates/structures/athen_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/athen_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ athen
+
+
+ structures/tent_greek.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/brit_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/brit_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ brit
+
+
+ structures/celts/hut.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/cart_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/cart_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ cart
+
+
+ structures/tent_arab.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/gaul_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/gaul_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ gaul
+
+
+ structures/celts/hut.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/iber_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/iber_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ iber
+
+
+ structures/celts/hut.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/mace_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/mace_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ mace
+
+
+ structures/tent_greek.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/maur_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/maur_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ maur
+
+
+ structures/tent_greek.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/pers_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/pers_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ pers
+
+
+ structures/tent_arab.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/ptol_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/ptol_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ ptol
+
+
+ structures/tent_greek.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/rome_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/rome_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ rome
+
+
+ structures/tent_greek.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/sele_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/sele_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ sele
+
+
+ structures/tent_greek.xml
+
+
Index: binaries/data/mods/public/simulation/templates/structures/spart_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/structures/spart_hospital.xml
@@ -0,0 +1,9 @@
+
+
+
+ spart
+
+
+ structures/tent_greek.xml
+
+
Index: binaries/data/mods/public/simulation/templates/template_structure_civic_hospital.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/simulation/templates/template_structure_civic_hospital.xml
@@ -0,0 +1,70 @@
+
+
+
+
+ Heal Garrisoned Units
+
+
+ Healer
+ 2.0
+
+
+
+
+ Hospital
+ own neutral enemy
+
+
+ 15
+
+ 50
+ 50
+
+
+
+
+ 4.0
+
+
+ 6
+ 0.5
+
+ Human
+ 0
+ 2
+
+
+ 400
+ rubble/rubble_stone_2x2
+
+
+ Battlefield Hospital
+ Armies on campaign set up hospitals to heal their wounded during battle or marching.
+ Town Hospital
+ technologies/asclepius_rod.png
+ phase_town
+
+
+ 10
+
+
+
+
+
+
+
+
+ interface/complete/building/complete_temple.xml
+ attack/destruction/building_collapse_large.xml
+
+
+
+ 5
+
+
+ 10
+
+
+ structures/fndn_2x2.xml
+
+
Index: binaries/data/mods/public/simulation/templates/template_unit.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit.xml
+++ binaries/data/mods/public/simulation/templates/template_unit.xml
@@ -1,5 +1,13 @@
+
+
+ Damage
+
+ 10
+
+
+
1
1
Index: binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml
@@ -1,17 +1,16 @@
+
+ 1.0
+
+ structures/{civ}_hospital
+
+
250
-
- 12
- 5
- 2000
-
- Human
-
85