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