diff --git a/binaries/data/mods/public/simulation/components/Auras.js b/binaries/data/mods/public/simulation/components/Auras.js index 644c3f87a9..f9f3dc4e80 100644 --- a/binaries/data/mods/public/simulation/components/Auras.js +++ b/binaries/data/mods/public/simulation/components/Auras.js @@ -14,6 +14,7 @@ Auras.prototype.Schema = "formation" + "range" + "garrison" + + "garrisonedUnits" + "global" + "" + "" + @@ -96,6 +97,11 @@ Auras.prototype.HasGarrisonAura = function() return this.GetAuraNames().some(this.IsGarrisonAura.bind(this)); }; +Auras.prototype.HasGarrisonedUnitsAura = function() +{ + return this.GetAuraNames().some(this.IsGarrisonedUnitsAura.bind(this)); +}; + Auras.prototype.GetType = function(name) { return this.template[name].Type; @@ -111,6 +117,11 @@ Auras.prototype.IsGarrisonAura = function(name) return this.GetType(name) == "garrison"; }; +Auras.prototype.IsGarrisonedUnitsAura = function(name) +{ + return this.GetType(name) == "garrisonedUnits"; +}; + Auras.prototype.IsRangeAura = function(name) { // A global aura is also treated as a range aura with infinite range. @@ -237,6 +248,20 @@ Auras.prototype.OnRangeUpdate = function(msg) }; +Auras.prototype.OnGarrisonedUnitsChanged = function(msg) +{ + var auraNames = this.GetAuraNames(); + for each (var name in auraNames) + { + if (!this.IsGarrisonedUnitsAura(name)) + continue; + for each (var ent in msg.added) + this.ApplyBonus(name, ent); + for each (var ent in msg.removed) + this.RemoveBonus(name, ent); + } +}; + Auras.prototype.ApplyFormationBonus = function(memberList) { var auraNames = this.GetAuraNames(); diff --git a/binaries/data/mods/public/simulation/data/auras/unit_armor_3.json b/binaries/data/mods/public/simulation/data/auras/unit_armor_3.json new file mode 100644 index 0000000000..ae23ebda3e --- /dev/null +++ b/binaries/data/mods/public/simulation/data/auras/unit_armor_3.json @@ -0,0 +1,5 @@ +{ + "affects":["Unit"], + "affectedPlayers":["Player", "Ally"], + "modifications":[{"value":"Armour/Pierce","add":3},{"value":"Armour/Hack","add":3},{"value":"Armour/Crush","add":3}] +} diff --git a/binaries/data/mods/public/simulation/data/auras/unit_vision_20.json b/binaries/data/mods/public/simulation/data/auras/unit_vision_20.json new file mode 100644 index 0000000000..cb264056d9 --- /dev/null +++ b/binaries/data/mods/public/simulation/data/auras/unit_vision_20.json @@ -0,0 +1,5 @@ +{ + "affects":["Unit"], + "affectedPlayers":["Player","Ally"], + "modifications":[{"value":"Vision/Range","add":20}] +} diff --git a/binaries/data/mods/public/simulation/templates/other/palisades_rocks_long.xml b/binaries/data/mods/public/simulation/templates/other/palisades_rocks_long.xml index 8ad7251ff3..966b38d4ba 100644 --- a/binaries/data/mods/public/simulation/templates/other/palisades_rocks_long.xml +++ b/binaries/data/mods/public/simulation/templates/other/palisades_rocks_long.xml @@ -11,6 +11,7 @@ 9.0 + 1000 rubble/rubble_1x3pal diff --git a/binaries/data/mods/public/simulation/templates/other/palisades_rocks_medium.xml b/binaries/data/mods/public/simulation/templates/other/palisades_rocks_medium.xml index 4b4120f79c..bf0879fe5c 100644 --- a/binaries/data/mods/public/simulation/templates/other/palisades_rocks_medium.xml +++ b/binaries/data/mods/public/simulation/templates/other/palisades_rocks_medium.xml @@ -11,6 +11,7 @@ 9.0 + 1000 rubble/rubble_1x3pal diff --git a/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_long.xml b/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_long.xml index 5bc1636dc3..baae35cc38 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_long.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_long.xml @@ -1,5 +1,13 @@ + + + garrisonedUnits + + + garrisonedUnits + + 30 diff --git a/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_medium.xml b/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_medium.xml index 17bb3ecfda..fa52e5cdf0 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_medium.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_defense_wall_medium.xml @@ -1,5 +1,13 @@ + + + garrisonedUnits + + + garrisonedUnits + + 20