diff --git a/binaries/data/mods/public/simulation/components/GarrisonHolder.js b/binaries/data/mods/public/simulation/components/GarrisonHolder.js index 78535a31a7..c1743f4b94 100644 --- a/binaries/data/mods/public/simulation/components/GarrisonHolder.js +++ b/binaries/data/mods/public/simulation/components/GarrisonHolder.js @@ -12,7 +12,10 @@ GarrisonHolder.prototype.Schema = "" + "" + "" + - "" + + "" + + "" + + "" + + "" + "" + "" + "" + @@ -74,6 +77,13 @@ GarrisonHolder.prototype.GetHealRate = function() return ApplyTechModificationsToEntity("GarrisonHolder/BuffHeal", +this.template.BuffHeal, this.entity); }; +GarrisonHolder.prototype.EjectEntitiesOnDestroy = function() +{ + if (this.template.EjectEntitiesOnDestroy == "true") + return true; + return false; +} + /** * Get number of garrisoned units capable of shooting arrows * Not necessarily archers @@ -337,15 +347,12 @@ GarrisonHolder.prototype.OnHealthChanged = function(msg) { if (!this.HasEnoughHealth()) { - // We have to be careful of our passability - // ships: not land passable, so assume units have drowned in a shipwreck - // building: land passable, so units can be ejected freely - var classes = (Engine.QueryInterface(this.entity, IID_Identity)).GetClassesList(); var cmpPosition = Engine.QueryInterface(this.entity, IID_Position); - // Destroy the garrisoned units if the holder is a ship or is not in the - // world (generally means this holder is inside a ship which has sunk). - if (classes.indexOf("Ship") != -1 || !cmpPosition.IsInWorld()) + // Destroy the garrisoned units if the holder kill his entities on destroy or + // is not in the world (generally means this holder is inside + // a holder which kills its entities which has sunk). + if (!this.EjectEntitiesOnDestroy() || !cmpPosition.IsInWorld()) { for each (var entity in this.entities) { diff --git a/binaries/data/mods/public/simulation/templates/structures/athen_wonder.xml b/binaries/data/mods/public/simulation/templates/structures/athen_wonder.xml index 6c6d6805de..a24feeaac2 100644 --- a/binaries/data/mods/public/simulation/templates/structures/athen_wonder.xml +++ b/binaries/data/mods/public/simulation/templates/structures/athen_wonder.xml @@ -7,6 +7,7 @@ 30 0.1 + true Support Infantry Cavalry 3 2 diff --git a/binaries/data/mods/public/simulation/templates/structures/rome_tent.xml b/binaries/data/mods/public/simulation/templates/structures/rome_tent.xml index 1f42b047ec..17b75edfec 100644 --- a/binaries/data/mods/public/simulation/templates/structures/rome_tent.xml +++ b/binaries/data/mods/public/simulation/templates/structures/rome_tent.xml @@ -16,6 +16,7 @@ 5 0.1 + true Support Infantry 0 2 diff --git a/binaries/data/mods/public/simulation/templates/structures/rome_wonder.xml b/binaries/data/mods/public/simulation/templates/structures/rome_wonder.xml index 647d1fca87..46b99b7780 100644 --- a/binaries/data/mods/public/simulation/templates/structures/rome_wonder.xml +++ b/binaries/data/mods/public/simulation/templates/structures/rome_wonder.xml @@ -7,6 +7,7 @@ 30 0.1 + true Support Infantry Cavalry 3 2 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml b/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml index 32f38bc3a3..45aae5ee71 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml @@ -42,6 +42,7 @@ 20 0.1 + true Support Infantry Cavalry 1 2 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml b/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml index db9aede6ea..6a850e9833 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml @@ -23,6 +23,7 @@ 20 0.1 + true Support Infantry Cavalry 3 2 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_defense_defense_tower.xml b/binaries/data/mods/public/simulation/templates/template_structure_defense_defense_tower.xml index fc74e7ced6..bcacfaa9bf 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_defense_defense_tower.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_defense_defense_tower.xml @@ -34,7 +34,8 @@ 5 - 0.1 + 0.1 + true Support Infantry 0 2 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_defense_outpost.xml b/binaries/data/mods/public/simulation/templates/template_structure_defense_outpost.xml index 44f994a22e..6774c8838c 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_defense_outpost.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_defense_outpost.xml @@ -44,6 +44,7 @@ 1 0.1 + true Support Infantry 0 2 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_tower.xml b/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_tower.xml index cc10471848..cab9ae4bfc 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_tower.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_tower.xml @@ -34,6 +34,7 @@ 5 0.1 + true Support Infantry 0 2 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml b/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml index 211f64f480..d4a377b728 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml @@ -16,6 +16,7 @@ 10 0.1 + true Infantry Cavalry 0 2 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml b/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml index 4a3e791610..f8ccaa8c8d 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml @@ -35,6 +35,7 @@ 20 0.075 + true Support Infantry Cavalry Siege 0 6 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml b/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml index 5960074656..25a969e592 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml @@ -13,6 +13,7 @@ 10 0.1 + true Animal 1 2 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_special.xml b/binaries/data/mods/public/simulation/templates/template_structure_special.xml index 152844e12b..0ea162f041 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_special.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_special.xml @@ -29,6 +29,7 @@ 5 0.1 + true Support Infantry Cavalry 1 2 diff --git a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml index b5d8077817..955ffd7c04 100644 --- a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml +++ b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml @@ -33,6 +33,7 @@ 20 0 + false Support Infantry Cavalry 1 10 diff --git a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fishing.xml b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fishing.xml index 0a87fc6031..3438614298 100644 --- a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fishing.xml +++ b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fishing.xml @@ -22,6 +22,7 @@ 1 0 + false Support Infantry 1 10 diff --git a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_merchant.xml b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_merchant.xml index ba33475ddc..7ac4ccc653 100644 --- a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_merchant.xml +++ b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_merchant.xml @@ -14,6 +14,7 @@ 15 0 + false Support Infantry Cavalry 1 10 diff --git a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml index 87aa9cc962..5073d73b3a 100644 --- a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml +++ b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml @@ -33,6 +33,7 @@ 50 0 + false Support Infantry Cavalry Siege 1 10 diff --git a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml index 4961f3686e..4053d5c2a3 100644 --- a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml +++ b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml @@ -33,6 +33,7 @@ 30 0 + false Support Infantry Cavalry Siege 1 10 diff --git a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ram.xml b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ram.xml index c8cf7b8fe2..b936c9a68f 100644 --- a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ram.xml +++ b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ram.xml @@ -56,6 +56,7 @@ 5 0.1 + true Support Infantry 1 2 diff --git a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml index 5f0e3c7fd2..82aca12eed 100644 --- a/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml +++ b/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml @@ -38,6 +38,7 @@ 20 0.1 + true Support Infantry 1 2