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