Cleanup of the Auras code in preparation of stackable auras. Implements auras being enabled by techs. Refs #3792. Patch by fatherbushido

This was SVN commit r17974.
This commit is contained in:
sanderd17 2016-04-04 18:55:44 +00:00
parent d7b62e0af7
commit 46ead523b8
101 changed files with 625 additions and 740 deletions

View File

@ -68,10 +68,11 @@ function MatchesClassList(classes, match)
/**
* Get information about a template with or without technology modifications.
* @param template A valid template as returned by the template loader.
* @param player An optional player id to get the technology modifications
* @param player An optional player id to get the technology modifications
* of properties.
* @param aurasTemplate An object in the form of {key: {auraName: "", auraDescription: ""}}
*/
function GetTemplateDataHelper(template, player)
function GetTemplateDataHelper(template, player, aurasTemplate)
{
var ret = {};
@ -120,13 +121,13 @@ function GetTemplateDataHelper(template, player)
if (template.Auras)
{
ret.auras = {};
for (let auraID in template.Auras)
for (let auraID in aurasTemplate)
{
let aura = template.Auras[auraID];
if (aura.AuraName)
let aura = aurasTemplate[auraID];
if (aura.auraName)
ret.auras[auraID] = {
"name": aura.AuraName,
"description": aura.AuraDescription || null
"name": aura.auraName || null,
"description": aura.auraDescription || null
};
}
}

View File

@ -1,114 +1,54 @@
function Auras() {}
var modificationSchema =
"<element name='Modifications' a:help='Modification list'>" +
"<oneOrMore>" +
"<element a:help='Name of the value to modify'>" +
"<anyName/>" +
"<choice>" +
"<element name='Add'>" +
"<data type='decimal'/>" +
"</element>" +
"<element name='Multiply'>" +
"<data type='decimal'/>" +
"</element>" +
"</choice>" +
"</element>" +
"</oneOrMore>" +
"</element>";
Auras.prototype.Schema =
"<oneOrMore>" +
"<element a:help='Any name you want'>" +
"<anyName/>" +
"<interleave>" +
"<optional>" +
"<element name='Radius' a:help='Define the radius this aura affects, if it is a range aura'>" +
"<data type='nonNegativeInteger'/>" +
"</element>" +
"</optional>" +
"<element name='Type' a:help='Controls how this aura affects nearby units'>" +
"<choice>" +
"<value a:help='Affects units in the same formation'>formation</value>" +
"<value a:help='Affects units in a certain range'>range</value>" +
"<value a:help='Affects the structure or unit this unit is garrisoned in'>garrison</value>" +
"<value a:help='Affects the units that are garrisoned on a certain structure'>garrisonedUnits</value>" +
"<value a:help='Affects all units while this unit is alive'>global</value>" +
"</choice>" +
"</element>" +
modificationSchema +
"<optional>" +
"<element name='AuraName' a:help='name to display in the GUI'>" +
"<text/>" +
"</element>" +
"</optional>" +
"<optional>" +
"<element name='AuraDescription' a:help='description to display in the GUI, requires a name'>" +
"<text/>" +
"</element>" +
"</optional>" +
"<optional>" +
"<element name='OverlayIcon' a:help='Icon to show on the entities affected by this aura'>" +
"<text/>" +
"</element>" +
"</optional>" +
"<element name='Affects' a:help='Affected classes'>" +
"<text/>" +
"</element>" +
"<optional>" +
"<element name='AffectedPlayers' a:help='Affected players'>" +
"<text/>" +
"</element>" +
"</optional>" +
"</interleave>" +
"</element>" +
"</oneOrMore>";
"<attribute name='datatype'>" +
"<value>tokens</value>" +
"</attribute>" +
"<text/>";
Auras.prototype.Init = function()
{
var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
this.templateName = cmpTemplateManager.GetCurrentTemplateName(this.entity);
let cmpTechnologyTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TechnologyTemplateManager);
this.auras = {};
this.affectedPlayers = {};
for (var name in this.template)
let auraNames = this.GetAuraNames();
for (let name of auraNames)
{
this.affectedPlayers[name] = []; // will be calculated on ownership change
var aura = {};
aura.affects = this.template[name].Affects;
if (this.template[name].AffectedPlayers)
aura.affectedPlayers = this.template[name].AffectedPlayers.split(/\s+/);
this.auras[name] = aura;
this.affectedPlayers[name] = [];
this.auras[name] = cmpTechnologyTemplateManager.GetAuraTemplate(name);
}
// In case of autogarrisoning, this component can be called before ownership is set.
// So it needs to be completely initialised from the start.
this.Clean();
};
Auras.prototype.GetModifierIdentifier = function(name, mod)
// We can modify identifier if we want stackable auras in some case.
Auras.prototype.GetModifierIdentifier = function(name)
{
return this.templateName + "/" + name + "/" + mod.value;
return name;
};
Auras.prototype.GetDescriptions = function()
{
let auraNames = this.GetAuraNames();
var ret = {};
for (let name in this.template)
for (let name of auraNames)
{
let aura = this.template[name];
if (aura.AuraName)
ret[aura.AuraName] = aura.AuraDescription || null;
let aura = this.auras[name];
if (aura.auraName)
ret[aura.auraName] = aura.auraDescription || null;
}
return ret;
};
Auras.prototype.GetAuraNames = function()
{
return Object.keys(this.template);
return this.template._string.split(/\s+/);
};
Auras.prototype.GetOverlayIcon = function(name)
{
return this.template[name].OverlayIcon || "";
return this.auras[name].overlayIcon || "";
};
Auras.prototype.GetAffectedEntities = function(name)
@ -122,7 +62,7 @@ Auras.prototype.GetRange = function(name)
return undefined;
if (this.IsGlobalAura(name))
return -1; // -1 is infinite range
return +this.template[name].Radius;
return +this.auras[name].radius;
};
Auras.prototype.GetClasses = function(name)
@ -163,6 +103,16 @@ Auras.prototype.CalculateAffectedPlayers = function(name)
}
};
Auras.prototype.CanApply = function(name)
{
if (!this.auras[name].requiredTechnology)
return true;
let cmpTechnologyManager = QueryOwnerInterface(this.entity, IID_TechnologyManager);
if (!cmpTechnologyManager || !cmpTechnologyManager.IsTechnologyResearched(this.auras[name].requiredTechnology))
return false;
return true;
};
Auras.prototype.HasFormationAura = function()
{
return this.GetAuraNames().some(n => this.IsFormationAura(n));
@ -180,7 +130,7 @@ Auras.prototype.HasGarrisonedUnitsAura = function()
Auras.prototype.GetType = function(name)
{
return this.template[name].Type;
return this.auras[name].type;
};
Auras.prototype.IsFormationAura = function(name)
@ -236,25 +186,6 @@ Auras.prototype.Clean = function()
cmpRangeManager.DestroyActiveQuery(this[name].rangeQuery);
}
for (let name in this.template)
{
let modifications = [];
for (let value in this.template[name].Modifications)
{
let mod = {};
mod.value = value.replace(/\./g, "/").replace(/\/\//g, ".");
let templateModifications = this.template[name].Modifications[value];
if (templateModifications.Add)
mod.add = ApplyValueModificationsToEntity("Auras/"+name+"/Modifications/"+mod.value+"/Add",
+templateModifications.Add, this.entity);
else if (templateModifications.Multiply)
mod.multiply = ApplyValueModificationsToEntity("Auras/"+name+"/Modifications/"+mod.value+"/Multiply",
+templateModifications.Multiply, this.entity);
modifications.push(mod);
}
this.auras[name].modifications = modifications;
}
for (let name of auraNames)
{
// only calculate the affected players on re-applying the bonuses
@ -343,6 +274,9 @@ Auras.prototype.ApplyGarrisonBonus = function(structure)
Auras.prototype.ApplyTemplateBonus = function(name, players)
{
if (!this.CanApply(name))
return;
if (!this.IsGlobalAura(name))
return;
var modifications = this.GetModifications(name);
@ -351,7 +285,7 @@ Auras.prototype.ApplyTemplateBonus = function(name, players)
for (let mod of modifications)
for (let player of players)
cmpAuraManager.ApplyTemplateBonus(mod.value, player, classes, mod, this.GetModifierIdentifier(name, mod));
cmpAuraManager.ApplyTemplateBonus(mod.value, player, classes, mod, this.GetModifierIdentifier(name));
};
Auras.prototype.RemoveFormationBonus = function(memberList)
@ -370,6 +304,8 @@ Auras.prototype.RemoveGarrisonBonus = function(structure)
Auras.prototype.RemoveTemplateBonus = function(name)
{
if (!this.CanApply(name))
return;
if (!this.IsGlobalAura(name))
return;
@ -380,7 +316,7 @@ Auras.prototype.RemoveTemplateBonus = function(name)
for (let mod of modifications)
for (let player of players)
cmpAuraManager.RemoveTemplateBonus(mod.value, player, classes, this.GetModifierIdentifier(name, mod));
cmpAuraManager.RemoveTemplateBonus(mod.value, player, classes, this.GetModifierIdentifier(name));
};
Auras.prototype.ApplyBonus = function(name, ents)
@ -390,12 +326,15 @@ Auras.prototype.ApplyBonus = function(name, ents)
return;
this[name].targetUnits = this[name].targetUnits.concat(validEnts);
if (!this.CanApply(name))
return;
var modifications = this.GetModifications(name);
var cmpAuraManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AuraManager);
for (let mod of modifications)
cmpAuraManager.ApplyBonus(mod.value, validEnts, mod, this.GetModifierIdentifier(name, mod));
cmpAuraManager.ApplyBonus(mod.value, validEnts, mod, this.GetModifierIdentifier(name));
// update status bars if this has an icon
if (!this.GetOverlayIcon(name))
return;
@ -415,11 +354,15 @@ Auras.prototype.RemoveBonus = function(name, ents)
return;
this[name].targetUnits = this[name].targetUnits.filter(v => validEnts.indexOf(v) == -1);
if (!this.CanApply(name))
return;
var modifications = this.GetModifications(name);
var cmpAuraManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AuraManager);
for (let mod of modifications)
cmpAuraManager.RemoveBonus(mod.value, validEnts, this.GetModifierIdentifier(name, mod));
cmpAuraManager.RemoveBonus(mod.value, validEnts, this.GetModifierIdentifier(name));
// update status bars if this has an icon
if (!this.GetOverlayIcon(name))
@ -445,9 +388,23 @@ Auras.prototype.OnDiplomacyChanged = function(msg)
this.Clean();
};
Auras.prototype.OnValueModification = function(msg)
Auras.prototype.OnGlobalResearchFinished = function(msg)
{
if (msg.component == "Auras")
let cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership);
if (!cmpOwnership || cmpOwnership.GetOwner() != msg.player)
return;
let auraNames = this.GetAuraNames();
let needsClean = false;
for (let name of auraNames)
{
let requiredTech = this.auras[name].requiredTechnology;
if (requiredTech && requiredTech == msg.tech)
{
needsClean = true;
break;
}
}
if (needsClean)
this.Clean();
};

View File

@ -576,7 +576,28 @@ GuiInterface.prototype.GetTemplateData = function(player, extendedName)
if (!template)
return null;
return GetTemplateDataHelper(template, player);
let aurasTemplate = {};
if (!template.Auras)
return GetTemplateDataHelper(template, player, aurasTemplate);
// Add aura name and description loaded from JSON file
let auraNames = template.Auras._string.split(/\s+/);
let cmpTechnologyTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TechnologyTemplateManager);
for (let name of auraNames)
{
let auraTemplate = cmpTechnologyTemplateManager.GetAuraTemplate(name);
if (!auraTemplate)
{
// the following warning is perhaps useless since it's yet done in TechnologyTemplateManager
warn("Tried to get data for invalid aura: " + name);
continue;
}
aurasTemplate[name] = {};
aurasTemplate[name].auraName = auraTemplate.auraName || null;
aurasTemplate[name].auraDescription = auraTemplate.auraDescription || null;
}
return GetTemplateDataHelper(template, player, aurasTemplate);
};
GuiInterface.prototype.GetTechnologyData = function(player, name)

View File

@ -1,5 +1,5 @@
/**
* System component which loads the technology data files
* System component which loads the technology and the aura data files
*/
function TechnologyTemplateManager() {}

View File

@ -0,0 +1,12 @@
{
"type": "formation",
"affects": ["Unit"],
"modifications": [
{ "value": "Armour/Pierce", "add": 1 },
{ "value": "Armour/Hack", "add": 1 },
{ "value": "Armour/Crush", "add": 1 },
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
],
"auraName": "Formation Reforms",
"auraDescription": "All units in his formation +15% speed and +1 armor."
}

View File

@ -0,0 +1,9 @@
{
"type": "global",
"affects": ["Javelin"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "add": 1.15 }
],
"auraName": "Peltast Reforms",
"auraDescription": "All Peltasts +15% speed."
}

View File

@ -0,0 +1,11 @@
{
"type": "range",
"radius": 60,
"affects": ["Worker"],
"modifications": [
{ "value": "Builder/Rate", "multiply": 1.15 }
],
"auraName": "Builder Aura",
"auraDescription": "Buildings construct 15% faster within his vision.",
"overlayIcon": "art/textures/ui/session/auras/build_bonus.png"
}

View File

@ -0,0 +1,9 @@
{
"type": "global",
"affects": ["Temple"],
"modifications": [
{ "value": "Cost/Resources/stone", "add": -50 }
],
"auraName": "Acropolis Aura",
"auraDescription": "Temples are 50 stone cheaper during his lifetime."
}

View File

@ -0,0 +1,10 @@
{
"type": "garrison",
"affects": ["Ship"],
"affectedPlayers": ["Player", "MutualAlly"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.5 }
],
"auraName": "Naval Commander Aura",
"auraDescription": "When garrisoned in a ship, his ship is +50% faster."
}

View File

@ -0,0 +1,9 @@
{
"type": "global",
"affects": ["Ship"],
"modifications": [
{ "value": "Cost.BuildTime", "multiply": 0.8 }
],
"auraName": "Naval Architect Aura",
"auraDescription": "-20% build time for ships during his lifespan."
}

View File

@ -0,0 +1,14 @@
{
"type": "range",
"radius": 60,
"affects": ["Champion"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.25 },
{ "value": "Attack/Ranged/Pierce", "add": 5 },
{ "value": "Attack/Melee/Hack", "add": 5 },
{ "value": "Attack/Capture/Value", "add": 2 }
],
"auraName": "Champion Army",
"auraDescription": "+5 Attack, +2 Capture and +25% Speed for Champion Units.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,9 @@
{
"type": "global",
"affects": ["Unit"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
],
"auraName": "Hero Aura",
"auraDescription": "All Units +15% speed."
}

View File

@ -0,0 +1,11 @@
{
"type": "range",
"radius": 60,
"affects": ["Unit"],
"modifications": [
{ "value": "Health/RegenRate", "add": 1 }
],
"auraName": "Hero Aura",
"auraDescription": "+1 HP per second healing rate for all units.",
"overlayIcon": "art/textures/ui/session/auras/heal.png"
}

View File

@ -0,0 +1,9 @@
{
"type": "global",
"affects": ["Unit"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
],
"auraName": "Lightning Aura",
"auraDescription": "All Units +15% speed."
}

View File

@ -0,0 +1,14 @@
{
"type": "range",
"radius": 60,
"affects": ["Unit"],
"affectedPlayers": ["Player", "Ally"],
"modifications": [
{ "value": "Attack/Ranged/Pierce", "add": 2 },
{ "value": "Attack/Melee/Hack", "add": 2 },
{ "value": "Attack/Capture/Value", "add": 1 }
],
"auraName": "Tactician Aura",
"auraDescription": "All allied units +2 Attack and +1 Capture within his vision range.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,10 @@
{
"type": "range",
"radius": 60,
"affects": ["Cavalry"],
"modifications": [
{ "value": "Attack/Charge/Hack", "add": 5}
],
"auraName": "Commander Aura",
"auraDescription": "+5 Cavalry charge attack within vision range of him (currently useless)."
}

View File

@ -0,0 +1,10 @@
{
"type": "garrisonedUnits",
"affects": ["Ship"],
"modifications": [
{ "value": "Health/RegenRate", "add": 3 }
],
"auraName": "Repairing Ship aura",
"auraDescription": "Heals garrisoned ship at 3 HP per second.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,12 @@
{
"type": "range",
"radius": 10,
"affects": ["Citizen Soldier"],
"modifications": [
{ "value": "Builder/Rate", "multiply": 1.1 },
{ "value": "ResourceGatherer/BaseSpeed", "multiply": 1.1 }
],
"auraName": "Inspiration Aura",
"auraDescription": "Nearby males work 10% faster.",
"overlayIcon": "art/textures/ui/session/auras/buildgather_bonus.png"
}

View File

@ -0,0 +1,9 @@
{
"type": "global",
"affects": ["Unit"],
"modifications": [
{ "value": "Looter/Resource/metal", "add": 10 }
],
"auraName": "Hero Aura",
"auraDescription": "+10 Metal loot for every enemy unit killed."
}

View File

@ -0,0 +1,9 @@
{
"type": "global",
"affects": ["Worker"],
"modifications": [
{ "value": "ResourceGatherer/BaseSpeed", "multiply": 1.15 }
],
"auraName": "Hero Aura",
"auraDescription": "Gathering rates increased with +15% during his lifetime."
}

View File

@ -0,0 +1,13 @@
{
"type": "range",
"radius": 60,
"affects": ["Unit"],
"modifications": [
{ "value": "Attack/Ranged/Pierce", "add": 2 },
{ "value": "Attack/Melee/Hack", "add": 2 },
{ "value": "Attack/Capture/Value", "add": 1 }
],
"auraName": "Hero Aura",
"auraDescription": "+2 Attack and +1 Capture for all units within his aura.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,9 @@
{
"type": "garrison",
"affects": ["Structure", "Mechanical"],
"modifications": [
{ "value": "Capturable/GarrisonRegenRate", "add": 2 }
],
"auraName": "Garrisoned Capture Aura",
"auraDescription": "When garrisoned in a structure or a siege, the hero gives it a bonus of +2 capture points recovery rate."
}

View File

@ -0,0 +1,10 @@
{
"type": "range",
"radius": 50,
"affects": ["Unit"],
"modifications": [
{ "value": "Attack/Melee/Hack", "add": 2 },
{"value": "Attack/Ranged/Pierce", "add": 3 }
],
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,9 @@
{
"type": "global",
"affects": ["Structure"],
"modifications": [
{ "value": "TerritoryInfluence/Radius", "multiply": 1.1}
],
"auraName": "Imperialism Aura",
"auraDescription": "+10% territory effect for all buildings while he lives."
}

View File

@ -0,0 +1,12 @@
{
"type": "global",
"affects": ["Siege"],
"modifications": [
{ "value": "Attack/Melee/Crush", "add": 10 },
{ "value": "Attack/Ranged/Crush", "add": 10 },
{ "value": "Attack/Ranged/MaxRange", "multiply": 1.15 }
],
"auraName": "Hero Aura",
"auraDescription": "+15% Range and +10 Crush Attack for Siege Engines.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,13 @@
{
"type": "range",
"radius": 60,
"affects": ["Champion"],
"modifications": [
{ "value": "Attack/Ranged/Pierce", "add": 5},
{ "value": "Attack/Melee/Hack", "add": 5},
{ "value": "Attack/Capture/Value", "add": 2}
],
"auraName": "Hero Aura",
"auraDescription": "+5 Attack and +2 Capture for Champion Units.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,10 @@
{
"type": "range",
"radius": 75,
"affects": ["Trader"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.20 }
],
"auraDescription": "All traders in range +20% walk speed.",
"overlayIcon": "art/textures/ui/session/auras/build_bonus.png"
}

View File

@ -0,0 +1,13 @@
{
"type": "range",
"radius": 60,
"affects": ["Cavalry"],
"modifications": [
{ "value": "Attack/Ranged/Pierce", "add": 2 },
{ "value": "Attack/Melee/Hack", "add": 2 },
{ "value": "Attack/Capture/Value", "add": 1 }
],
"auraName": "Lead from the Front Aura",
"auraDescription": "+2 Attack and +1 Capture for nearby cavalry units.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,13 @@
{
"type": "global",
"affects": ["Unit"],
"affectedPlayers": ["Player"],
"modifications": [
{ "value": "Attack/Ranged/Pierce", "add": 5 },
{ "value": "Attack/Melee/Hack", "add": 5 },
{ "value": "Attack/Capture/Value", "add": 2 },
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.25 }
],
"auraName": "Champion Army",
"auraDescription": "+5 Attack, +2 Capture and +25% Speed for Champion Units."
}

View File

@ -0,0 +1,12 @@
{
"type": "range",
"radius": 60,
"affects": ["Worker"],
"modifications": [
{ "value": "Builder/Rate", "multiply": 1.15 },
{ "value": "ResourceGatherer/BaseSpeed", "multiply": 1.15 }
],
"auraName": "Administrator Aura",
"auraDescription": "+15% Gather Rate and Build Rate of nearby units.",
"overlayIcon": "art/textures/ui/session/auras/buildgather_bonus.png"
}

View File

@ -0,0 +1,12 @@
{
"type": "range",
"radius": 60,
"affects": ["Unit"],
"modifications": [
{ "value": "Attack/Melee/RepeatTime", "multiply": 0.8 },
{ "value": "Attack/Ranged/RepeatTime", "multiply": 0.8 }
],
"auraName": "Patriot Aura",
"auraDescription": "Egyptian units fight 25% faster in her vision range.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,9 @@
{
"type": "global",
"affects": ["Pike"],
"modifications": [
{ "value": "Health/Max", "multiply": 1.40}
],
"auraName": "Raphia Aura",
"auraDescription": "Egyptian Pikemen have 40% greater health during his lifetime."
}

View File

@ -0,0 +1,11 @@
{
"type": "range",
"radius": 77,
"affects": ["Worker"],
"modifications": [
{ "value": "Builder/Rate", "multiply": 1.10 }
],
"auraName": "Construction Aura",
"auraDescription": "Buildings construct 10% faster within his vision.",
"overlayIcon": "art/textures/ui/session/auras/build_bonus.png"
}

View File

@ -0,0 +1,12 @@
{
"type": "global",
"affects": ["Mercernary"],
"modifications": [
{ "value": "Cost/Resources/food", "multiply": 0.5 },
{ "value": "Cost/Resources/wood", "multiply": 0.5 },
{ "value": "Cost/Resources/stone", "multiply": 0.5 },
{ "value": "Cost/Resources/metal", "multiply": 0.5 }
],
"auraName": "Mercenary Patron Aura",
"auraDescription": "Mercenaries cost -50% resources during his lifetime."
}

View File

@ -0,0 +1,13 @@
{
"type": "range",
"radius": 60,
"affects": ["Unit"],
"modifications": [
{ "value": "Attack/Ranged/Pierce", "add": 5 },
{ "value": "Attack/Ranged/Hack", "add": 5 },
{ "value": "Attack/Capture/Value", "add": 2 }
],
"auraName": "Sword of Rome Aura",
"auraDescription": "+5 Attack and +2 Capture for Roman units within his vision range.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,11 @@
{
"type": "global",
"affects": ["Unit", "Structure"],
"modifications": [
{ "value": "Armour/Pierce", "add": 1 },
{ "value": "Armour/Hack", "add": 1 },
{ "value": "Armour/Crush", "add": 1 }
],
"auraName": "Shield of Rome Aura",
"auraDescription": "+1 armour for all units and structures."
}

View File

@ -0,0 +1,11 @@
{
"type": "range",
"radius": 60,
"affects": ["Worker"],
"modifications": [
{ "value": "ResourceGatherer/Rates/food.grain", "multiply": 1.25 }
],
"auraDescription" : "Boosts nearby farming with +25% gathering rate.",
"auraName": "Farming bonus",
"overlayIcon": "art/textures/ui/session/auras/farming.png"
}

View File

@ -0,0 +1,11 @@
{
"type": "global",
"affects": ["Cavalry"],
"modifications": [
{ "value": "Armour/Pierce", "add": 2 },
{ "value": "Armour/Hack", "add": 2 },
{ "value": "Armour/Crush", "add": 2 }
],
"auraName": "Ilarchès Aura",
"auraDescription": "All Cavalry gains +2 levels of all armour types."
}

View File

@ -0,0 +1,12 @@
{
"type": "range",
"radius": 70,
"affects": ["Structure", "Mechanical"],
"affectedPlayers": ["Enemy"],
"modifications": [
{ "value": "Health/Max", "multiply": 0.8 }
],
"auraName": "Conquest Aura",
"auraDescription": "All nearby enemy Buildings, Siege engines, and Ships have their health reduced by 20%.",
"overlayIcon": "art/textures/ui/session/auras/health_bonus.png"
}

View File

@ -0,0 +1,13 @@
{
"type": "range",
"radius": 80,
"affects": ["Elephant"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed>", "multiply": 1.2 },
{ "value": "Attack.Melee.Hack>", "multiply": 1.2 },
{ "value": "Attack.Melee.Crush>", "multiply": 1.2 }
],
"auraName": "Zooiarchos Aura",
"auraDescription": "Boosts War Elephant attack and speed +20% within his vision.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,14 @@
{
"type": "range",
"radius": 60,
"affects": ["Javelin"],
"modifications": [
{ "value": "Attack/Ranged/Pierce", "add": 2 },
{ "value": "Armour/Pierce", "add": 1 },
{ "value": "Armour/Hack", "add": 1 },
{ "value": "Armour/Crush", "add": 1 }
],
"auraName": "Helot Reforms",
"auraDescription": "Helot Skirmishers within sight of him gain +2 attack and +1 all armor types.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,14 @@
{
"type": "range",
"radius": 30,
"affects": ["Spear"],
"modifications": [
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
{ "value": "Attack/Capture/Value", "add": 1 }
],
"auraName": "Last Stand Aura",
"auraDescription": "+20% Attack and +1 Capture for nearby Hoplites and Spartiates.",
"overlayIcon": "art/textures/ui/session/auras/attack_bonus.png"
}

View File

@ -0,0 +1,11 @@
{
"type": "range",
"radius": 40,
"affects": ["Human"],
"modifications": [
{ "value": "Health/RegenRate", "add": 1 }
],
"auraName": "Healing Aura",
"auraDescription": "Heals nearby units at 1 HP per second.",
"overlayIcon": "art/textures/ui/session/auras/heal.png"
}

View File

@ -0,0 +1,8 @@
{
"type": "global",
"affects": ["Structure"],
"modifications": [
{ "value": "TerritoryInfluence/Radius", "multiply": 1.20 }
],
"auraDescription": "Increase territory influence."
}

View File

@ -0,0 +1,12 @@
{
"type": "garrisonedUnits",
"affects": ["Unit"],
"modifications": [
{ "value": "Armour/Pierce", "add": 3 },
{ "value": "Armour/Hack", "add": 3 },
{ "value": "Armour/Crush", "add": 3 },
{ "value": "Vision/Range", "add": 20 }
],
"auraName": "Wall Protection",
"auraDescription": "Units on walls have 3 extra Armor levels and higher vision."
}

View File

@ -0,0 +1,7 @@
{
"type": "global",
"affects": ["Player"],
"modifications": [ { "value": "Player/MaxPopulation", "add": 10 } ],
"auraName": "Wonder Aura",
"auraDescription": "+10 max. population cap"
}

View File

@ -0,0 +1,8 @@
{
"type": "global",
"affects": ["Player"],
"modifications": [ { "value": "Player/MaxPopulation", "add": 40 } ],
"auraName": "Wonder Aura",
"auraDescription": "+40 extra max. population cap (requires \"Glorious Expansion\" tech)",
"requiredTechnology": "pop_wonder"
}

View File

@ -10,12 +10,12 @@
"pers": "Paradise"
},
"description": "The wonder attracts many more people to your civilization.",
"cost": { "food": 3000, "wood": 3000, "stone": 500, "metal": 500 },
"cost": { "food": 2000, "wood": 3000, "stone": 500, "metal": 500 },
"requirements": { "tech": "phase_city" },
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "special_treasure.png",
"researchTime": 40,
"tooltip": "+50 maximum population cap.",
"modifications": [{ "value": "Player/MaxPopulation", "add": 50 }],
"tooltip": "enable +50 wonder aura",
"modifications": [],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -32,7 +32,7 @@ function ApplyValueModificationsToTemplate(tech_type, current_value, playerID, t
let cmpAuraManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AuraManager);
if (!cmpAuraManager)
return value;
return value;
return cmpAuraManager.ApplyTemplateModifications(tech_type, value, playerID, template);
}

View File

@ -1,14 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Structure</Affects>
<Modifications>
<TerritoryInfluence.Radius> <Multiply>1.2</Multiply> </TerritoryInfluence.Radius>
</Modifications>
</Aura1>
</Auras>
<Auras datatype="tokens">theatron</Auras>
<BuildRestrictions>
<Category>Theater</Category>
</BuildRestrictions>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special">
<Auras datatype="tokens">rotary_mill</Auras>
<Cost>
<BuildTime>100</BuildTime>
<PopulationBonus>2</PopulationBonus>
@ -10,19 +11,6 @@
<metal>0</metal>
</Resources>
</Cost>
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Worker</Affects>
<Modifications>
<ResourceGatherer.Rates.food..grain> <Multiply>1.25</Multiply> </ResourceGatherer.Rates.food..grain>
</Modifications>
<AuraName>Farming bonus</AuraName>
<AuraDescription>Boosts nearby farming with +25% gathering rate.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/farming.png</OverlayIcon>
</Aura1>
</Auras>
<Footprint replace="">
<Circle radius="9.0"/>
<Height>6.0</Height>

View File

@ -1,16 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special">
<Auras>
<Aura1>
<Type>garrisonedUnits</Type>
<Affects>Ship</Affects>
<Modifications>
<Health.RegenRate> <Add>3</Add> </Health.RegenRate>
</Modifications>
<AuraName>Repairing ship Aura</AuraName>
<AuraDescription>Heals garrisoned ship at 3 HP per second.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">cart_super_dock_repair</Auras>
<BuildRestrictions>
<Territory>own ally neutral</Territory>
<PlacementType>shore</PlacementType>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special">
<Auras datatype="tokens">rotary_mill</Auras>
<Cost>
<BuildTime>100</BuildTime>
<PopulationBonus>2</PopulationBonus>
@ -10,19 +11,6 @@
<metal>0</metal>
</Resources>
</Cost>
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Worker</Affects>
<Modifications>
<ResourceGatherer.Rates.food..grain> <Multiply>1.25</Multiply> </ResourceGatherer.Rates.food..grain>
</Modifications>
<AuraName>Farming bonus</AuraName>
<AuraDescription>Boosts nearby farming with +25% gathering rate.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/farming.png</OverlayIcon>
</Aura1>
</Auras>
<Footprint replace="">
<Circle radius="9.0"/>
<Height>6.0</Height>

View File

@ -1,17 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>50</Radius>
<Affects>Unit</Affects>
<Modifications>
<Attack.Melee.Hack> <Add>2</Add> </Attack.Melee.Hack>
<Attack.Ranged.Pierce> <Add>3</Add> </Attack.Ranged.Pierce>
</Modifications>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">iber_monument</Auras>
<BuildRestrictions>
<Category>Monument</Category>
</BuildRestrictions>

View File

@ -1,14 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Structure</Affects>
<Modifications>
<TerritoryInfluence.Radius> <Multiply>1.2</Multiply> </TerritoryInfluence.Radius>
</Modifications>
</Aura1>
</Auras>
<Auras datatype="tokens">theatron</Auras>
<BuildRestrictions>
<Category>Theater</Category>
</BuildRestrictions>

View File

@ -1,17 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>75</Radius>
<Affects>Trader</Affects>
<Modifications>
<UnitMotion.WalkSpeed> <Multiply>1.20</Multiply> </UnitMotion.WalkSpeed>
</Modifications>
<AuraDescription>All traders in range +20% walk speed.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/build_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">maur_pillar</Auras>
<BuildRestrictions>
<Category>Pillar</Category>
</BuildRestrictions>

View File

@ -1,14 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Structure</Affects>
<Modifications>
<TerritoryInfluence.Radius> <Multiply>1.2</Multiply> </TerritoryInfluence.Radius>
</Modifications>
</Aura1>
</Auras>
<Auras datatype="tokens">theatron</Auras>
<BuildRestrictions>
<Category>Theater</Category>
</BuildRestrictions>

View File

@ -1,14 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Structure</Affects>
<Modifications>
<TerritoryInfluence.Radius> <Multiply>1.2</Multiply> </TerritoryInfluence.Radius>
</Modifications>
</Aura1>
</Auras>
<Auras datatype="tokens">theatron</Auras>
<BuildRestrictions>
<Category>Theater</Category>
</BuildRestrictions>

View File

@ -1,18 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_civic">
<Auras>
<heal>
<Type>range</Type>
<Radius>40</Radius>
<Affects>Human</Affects>
<Modifications>
<Health.RegenRate> <Add>1</Add> </Health.RegenRate>
</Modifications>
<AuraName>Healing Aura</AuraName>
<AuraDescription>Heals nearby units at 1 HP per second.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/heal.png</OverlayIcon>
</heal>
</Auras>
<Auras datatype="tokens">temple_heal</Auras>
<BuildRestrictions>
<Category>Temple</Category>
</BuildRestrictions>

View File

@ -5,20 +5,7 @@
<Pierce>40.0</Pierce>
<Crush>4.0</Crush>
</Armour>
<Auras>
<Aura1>
<Type>garrisonedUnits</Type>
<Affects>Unit</Affects>
<Modifications>
<Armour.Pierce> <Add>3</Add> </Armour.Pierce>
<Armour.Hack> <Add>3</Add> </Armour.Hack>
<Armour.Crush> <Add>3</Add> </Armour.Crush>
<Vision.Range> <Add>20</Add> </Vision.Range>
</Modifications>
<AuraName>Wall Protection</AuraName>
<AuraDescription>Units on walls have 3 extra Armor levels</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">wall_garrisoned</Auras>
<Cost>
<BuildTime>45</BuildTime>
<Resources>

View File

@ -5,20 +5,7 @@
<Pierce>40.0</Pierce>
<Crush>4.0</Crush>
</Armour>
<Auras>
<Aura1>
<Type>garrisonedUnits</Type>
<Affects>Unit</Affects>
<Modifications>
<Armour.Pierce> <Add>3</Add> </Armour.Pierce>
<Armour.Hack> <Add>3</Add> </Armour.Hack>
<Armour.Crush> <Add>3</Add> </Armour.Crush>
<Vision.Range> <Add>20</Add> </Vision.Range>
</Modifications>
<AuraName>Wall Protection</AuraName>
<AuraDescription>Units on walls have 3 extra Armor levels</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">wall_garrisoned</Auras>
<Cost>
<BuildTime>30</BuildTime>
<Resources>

View File

@ -10,17 +10,18 @@
<Crush>2</Crush>
</Foundation>
</Armour>
<Auras datatype="tokens">wonder_pop_1 wonder_pop_2</Auras>
<BuildRestrictions>
<Category>Wonder</Category>
</BuildRestrictions>
<Capturable>
<CapturePoints>1500</CapturePoints>
<CapturePoints>2000</CapturePoints>
<RegenRate>5.0</RegenRate>
</Capturable>
<Cost>
<BuildTime>1000</BuildTime>
<Resources>
<food>0</food>
<food>1000</food>
<wood>1000</wood>
<stone>1000</stone>
<metal>1000</metal>

View File

@ -1,16 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit">
<Auras>
<AuraA>
<Type>garrison</Type>
<Affects>Structure Mechanical</Affects>
<Modifications>
<Capturable.GarrisonRegenRate> <Add>2</Add> </Capturable.GarrisonRegenRate>
</Modifications>
<AuraName>Garrisoned Capture Aura</AuraName>
<AuraDescription>When garrisoned in a structure or a siege, the hero gives it a bonus of +2 capture points recovery rate.</AuraDescription>
</AuraA>
</Auras>
<Attack>
<Capture>
<Value>15</Value>
@ -23,6 +12,7 @@
<Pierce>20.0</Pierce>
<Crush>15.0</Crush>
</Armour>
<Auras datatype="tokens">hero_garrison</Auras>
<Cost>
<Population>2</Population>
<BuildTime>40</BuildTime>

View File

@ -1,19 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_support">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>10</Radius>
<Affects>Citizen+Soldier</Affects>
<Modifications>
<Builder.Rate> <Multiply>1.1</Multiply> </Builder.Rate>
<ResourceGatherer.BaseSpeed> <Multiply>1.1</Multiply> </ResourceGatherer.BaseSpeed>
</Modifications>
<AuraName>Inspiration Aura</AuraName>
<AuraDescription>Nearby males work 10% faster.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/buildgather_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Attack>
<Melee>
<Hack>2.0</Hack>
@ -30,6 +16,7 @@
<MaxRange>4.0</MaxRange>
</Slaughter>
</Attack>
<Auras datatype="tokens">female_inspiration</Auras>
<Builder>
<Rate>1.0</Rate>
<Entities datatype="tokens">

View File

@ -1,5 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_support">
<Cost>
<Resources>
<food>250</food>
</Resources>
</Cost>
<Heal>
<Range>12</Range>
<HP>5</HP>
@ -7,11 +12,6 @@
<UnhealableClasses datatype="tokens"/>
<HealableClasses datatype="tokens">Human</HealableClasses>
</Heal>
<Cost>
<Resources>
<food>250</food>
</Resources>
</Cost>
<Health>
<Max>85</Max>
</Health>

View File

@ -1,28 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_javelinist">
<Auras>
<Aura1>
<Type>formation</Type>
<Affects>Unit</Affects>
<Modifications>
<UnitMotion.WalkSpeed> <Multiply>1.15</Multiply> </UnitMotion.WalkSpeed>
<Armour.Pierce> <Add>1</Add> </Armour.Pierce>
<Armour.Hack> <Add>1</Add> </Armour.Hack>
<Armour.Crush> <Add>1</Add> </Armour.Crush>
</Modifications>
<AuraName>Formation Reforms</AuraName>
<AuraDescription>All units in his formation +15% speed and +1 armor.</AuraDescription>
</Aura1>
<Aura2>
<Type>global</Type>
<Affects>Javelin</Affects>
<Modifications>
<UnitMotion.WalkSpeed><Multiply>1.15</Multiply></UnitMotion.WalkSpeed>
</Modifications>
<AuraName>Peltast Reforms</AuraName>
<AuraDescription>All Peltasts +15% speed.</AuraDescription>
</Aura2>
</Auras>
<Auras datatype="tokens">athen_hero_iphicrates_1 athen_hero_iphicrates_2</Auras>
<Identity>
<Civ>athen</Civ>
<Lang>greek</Lang>

View File

@ -1,27 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_spearman">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Worker</Affects>
<Modifications>
<Builder.Rate> <Multiply>1.15</Multiply> </Builder.Rate>
</Modifications>
<AuraName>Builder Aura</AuraName>
<AuraDescription>Buildings construct 15% faster within his vision.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/build_bonus.png</OverlayIcon>
</Aura1>
<Aura2>
<Type>global</Type>
<Affects>Temple</Affects>
<Modifications>
<Cost.Resources.stone> <Add>-50</Add> </Cost.Resources.stone>
</Modifications>
<AuraName>Acropolis Aura</AuraName>
<AuraDescription>Temples are 50 stone cheaper during his lifetime.</AuraDescription>
</Aura2>
</Auras>
<Auras datatype="tokens">athen_hero_pericles_1 athen_hero_pericles_2</Auras>
<Identity>
<Civ>athen</Civ>
<Lang>greek</Lang>

View File

@ -1,26 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_swordsman">
<Auras>
<Aura1>
<Type>garrison</Type>
<Affects>Ship</Affects>
<AffectedPlayers>Player MutualAlly</AffectedPlayers>
<Modifications>
<UnitMotion.WalkSpeed> <Multiply>1.5</Multiply> </UnitMotion.WalkSpeed>
</Modifications>
<AuraName>Naval Commander Aura</AuraName>
<AuraDescription>When garrisoned in a ship, his ship is +50% faster.</AuraDescription>
</Aura1>
<Aura2>
<Type>global</Type>
<Affects>Ship</Affects>
<Modifications>
<Cost.BuildTime> <Multiply>0.8</Multiply> </Cost.BuildTime>
</Modifications>
<AuraName>Naval Architect Aura</AuraName>
<AuraDescription>-20% build time for ships during his lifespan.</AuraDescription>
</Aura2>
</Auras>
<Auras datatype="tokens">athen_hero_themistocles_1 athen_hero_themistocles_2</Auras>
<Identity>
<Civ>athen</Civ>
<Lang>greek</Lang>

View File

@ -1,21 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_javelinist">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Champion</Affects>
<Modifications>
<UnitMotion.WalkSpeed> <Multiply>1.25</Multiply> </UnitMotion.WalkSpeed>
<Attack.Ranged.Pierce> <Add>5</Add> </Attack.Ranged.Pierce>
<Attack.Melee.Hack> <Add>5</Add> </Attack.Melee.Hack>
<Attack.Capture.Value> <Add>2</Add> </Attack.Capture.Value>
</Modifications>
<AuraName>Champion Army</AuraName>
<AuraDescription>+5 Attack, +2 Capture and +25% Speed for Champion Units.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">brit_hero_boudicca</Auras>
<Footprint replace="">
<Square width="4.5" depth="9.0"/>
<Height>5.0</Height>

View File

@ -1,19 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_swordsman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Champion</Affects>
<Modifications>
<UnitMotion.WalkSpeed> <Multiply>1.25</Multiply> </UnitMotion.WalkSpeed>
<Attack.Ranged.Pierce> <Add>5</Add> </Attack.Ranged.Pierce>
<Attack.Melee.Hack> <Add>5</Add> </Attack.Melee.Hack>
<Attack.Capture.Value> <Add>2</Add> </Attack.Capture.Value>
</Modifications>
<AuraName>Champion Army</AuraName>
<AuraDescription>+5 Attack, +2 Capture and +25% Speed for Champion Units.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">brit_hero_boudicca</Auras>
<Identity>
<Civ>brit</Civ>
<Gender>female</Gender>

View File

@ -1,16 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_swordsman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Unit</Affects>
<Modifications>
<UnitMotion.WalkSpeed> <Multiply>1.15</Multiply> </UnitMotion.WalkSpeed>
</Modifications>
<AuraName>Hero Aura</AuraName>
<AuraDescription>All Units +15% speed.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">brit_hero_caratacos</Auras>
<Identity>
<Civ>brit</Civ>
<SpecificName>Caratacos</SpecificName>

View File

@ -1,18 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_swordsman">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Unit</Affects>
<Modifications>
<Health.RegenRate> <Add>1</Add> </Health.RegenRate>
</Modifications>
<AuraName>Hero Aura</AuraName>
<AuraDescription>+1 HP per second healing rate for all units.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/heal.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">brit_hero_cunobelin</Auras>
<Identity>
<Civ>brit</Civ>
<SpecificName>Cunobelin</SpecificName>

View File

@ -1,16 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_swordsman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Unit</Affects>
<Modifications>
<UnitMotion.WalkSpeed> <Multiply>1.15</Multiply> </UnitMotion.WalkSpeed>
</Modifications>
<AuraName>Lightning Aura</AuraName>
<AuraDescription>All Units +15% speed.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">cart_hero_hamilcar</Auras>
<Identity>
<Civ>cart</Civ>
<SpecificName>Ḥimelqart Baraq</SpecificName>

View File

@ -1,21 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_elephant_melee">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Unit</Affects>
<AffectedPlayers>Player Ally</AffectedPlayers>
<Modifications>
<Attack.Ranged.Pierce> <Add>2</Add> </Attack.Ranged.Pierce>
<Attack.Melee.Hack> <Add>2</Add> </Attack.Melee.Hack>
<Attack.Capture.Value> <Add>1</Add> </Attack.Capture.Value>
</Modifications>
<AuraName>Tactician Aura</AuraName>
<AuraDescription>All allied units +2 Attack and +1 Capture within his vision range.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">cart_hero_hannibal</Auras>
<Identity>
<Civ>cart</Civ>
<GenericName>Hannibal Barca</GenericName>

View File

@ -1,17 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_spearman">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Cavalry</Affects>
<Modifications>
<Attack.Charge.Hack> <Add>5</Add> </Attack.Charge.Hack>
</Modifications>
<AuraName>Commander Aura</AuraName>
<AuraDescription> +5 Cavalry charge attack within vision range of him (currently useless).</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">cart_hero_maharbal</Auras>
<Identity>
<Civ>cart</Civ>
<GenericName>Maharbal</GenericName>

View File

@ -1,16 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_swordsman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Unit</Affects>
<Modifications>
<Looter.Resource.metal> <Add>10</Add> </Looter.Resource.metal>
</Modifications>
<AuraName>Hero Aura</AuraName>
<AuraDescription>+10 Metal loot for every enemy unit killed.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">gaul_hero_brennus</Auras>
<Identity>
<Civ>gaul</Civ>
<SpecificName>Brennus</SpecificName>

View File

@ -1,16 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_spearman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Worker</Affects>
<Modifications>
<ResourceGatherer.BaseSpeed> <Multiply>1.15</Multiply> </ResourceGatherer.BaseSpeed>
</Modifications>
<AuraName>Hero Aura</AuraName>
<AuraDescription>Gathering rates increased with +15% during his lifetime.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">gaul_hero_britomartus</Auras>
<Identity>
<Civ>gaul</Civ>
<SpecificName>Britomartus</SpecificName>

View File

@ -1,20 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_swordsman">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Unit</Affects>
<Modifications>
<Attack.Ranged.Pierce> <Add>2</Add> </Attack.Ranged.Pierce>
<Attack.Melee.Hack> <Add>2</Add> </Attack.Melee.Hack>
<Attack.Capture.Value> <Add>1</Add> </Attack.Capture.Value>
</Modifications>
<AuraName>Hero Aura</AuraName>
<AuraDescription>+2 Attack and +1 Capture for all units within his aura.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">gaul_hero_vercingetorix</Auras>
<Identity>
<Civ>gaul</Civ>
<SpecificName>Vercingetorix</SpecificName>

View File

@ -4,7 +4,7 @@
<Civ>iber</Civ>
<SpecificName>Caros</SpecificName>
<Icon>units/iber_hero_caros.png</Icon>
<Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
<Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
<History>Caros was a chief of the Belli tribe located just east of the Celtiberi (Numantines at the center). Leading the confederated tribes of the meseta central (central upland plain) he concealed 20,000 foot and 5,000 mounted troops along a densely wooded track. Q. Fulvius Nobilior neglected proper reconnaissance and lead his army into the trap strung out in a long column. Some 10,000 of 15,000 Roman legionaries fell in the massive ambush that was sprung upon them. The date was 23 August of 153 BCE, the day when Rome celebrated the feast of Vulcan. By later Senatorial Decree it was ever thereafter known as dies ater, a 'sinister day', and Rome never again fought a battle on the 23rd of August. Caros was wounded in a small cavalry action the same evening and died soon thereafter, but he had carried off one of the most humiliating defeats that Rome ever suffered.</History>
</Identity>
<VisualActor>

View File

@ -4,7 +4,7 @@
<Civ>iber</Civ>
<SpecificName>Indibil</SpecificName>
<Icon>units/iber_hero_indibil.png</Icon>
<Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
<Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
<History>Indibil was king of the Ilegetes, a large federation ranged principally along the Ebro River in the northwest of the Iberian Peninsula. During the Barcid expansion, from 212 BCE he had initially been talked into allying himself with the Carthaginians who hade taken control of a lot of territory to the south and west, however after loss and his capture in a major battle he was convinced, some say tricked, to switch to the Roman side by Scipio Africanus. But that alliance didn't last long, as Roman promises were hollow and the Romans acted more like conquerors than allies. So, while the Romans and their allies had ended Carthaginian presence in 'Hispania' in 206 BCE, Indibil and another tribal prince by the name of Mandonio, who may have been his brother, rose up in rebellion against the Romans. They were defeated in battle, but rose up in a 2nd even larger rebellion that had unified all the Ilergetes again in 205 BCE. Outnumbered and outarmed they were again defeated, Indibil losing his life in the final battle and Mandonio being captured then later put to death. From that date onward the Ilergetes remained a pacified tribe under Roman rule.</History>
</Identity>
<VisualActor>

View File

@ -4,7 +4,7 @@
<Civ>iber</Civ>
<SpecificName>Viriato</SpecificName>
<Icon>units/iber_hero_viriato.png</Icon>
<Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
<Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
<History>Viriato, like Vercingentorix amongst the Gauls, was the most famous of the Iberian tribal war leaders, having conducted at least 7 campaigns against the Romans in the southern half of the peninsula during the 'Lusitani Wars' from 147 to 139 BCE. He surfaced as a survivor of the treacherous massacre of 9,000 men and the selling into slavery of 21,000 elderly, women, and children of the Lusitani. They had signed a treaty of peace with the Romans, conducted by Servius Sulpicius Galba, governor of Hispania Ulterior, as the 'final solution' to the Lusitani problem. He emerged from humble beginnings in 151 BCE to become war chief of the Lusitani. He was intelligent and a superior tactician, never really defeated in any encounter (though suffered losses in some requiring retreat). He succumbed instead to another treachery arranged by a later Roman commander, Q. Servilius Caepio, to have him assassinated by three comrades that were close to him.</History>
</Identity>
<VisualActor>

View File

@ -1,16 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_swordsman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Structure</Affects>
<Modifications>
<TerritoryInfluence.Radius> <Multiply>1.10</Multiply> </TerritoryInfluence.Radius>
</Modifications>
<AuraName>Imperialism Aura</AuraName>
<AuraDescription>+10% territory effect for all buildings while he lives.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">mace_hero_alexander</Auras>
<Attack>
<Melee>
<Bonuses>

View File

@ -1,19 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_swordsman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Siege</Affects>
<Modifications>
<Attack.Ranged.Crush> <Add>10</Add> </Attack.Ranged.Crush>
<Attack.Melee.Crush> <Add>10</Add> </Attack.Melee.Crush>
<Attack.Ranged.MaxRange> <Multiply>1.15</Multiply> </Attack.Ranged.MaxRange>
</Modifications>
<AuraName>Hero Aura</AuraName>
<AuraDescription>+15% Range and +10 Crush Attack for Siege Engines.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">mace_hero_demetrius</Auras>
<Identity>
<Civ>mace</Civ>
<Lang>greek</Lang>

View File

@ -1,20 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_spearman">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Champion</Affects>
<Modifications>
<Attack.Ranged.Pierce> <Add>5</Add> </Attack.Ranged.Pierce>
<Attack.Melee.Hack> <Add>5</Add> </Attack.Melee.Hack>
<Attack.Capture.Value> <Add>2</Add> </Attack.Capture.Value>
</Modifications>
<AuraName>Hero Aura</AuraName>
<AuraDescription>+5 Attack and +2 Capture for Champion Units.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">mace_hero_philip</Auras>
<Identity>
<Civ>mace</Civ>
<Lang>greek</Lang>

View File

@ -11,8 +11,7 @@
<Classes datatype="tokens">Ashoka</Classes>
<VisibleClasses datatype="tokens">Chariot</VisibleClasses>
<Icon>units/maur_hero_ashoka.png</Icon>
<Tooltip>Hero Aura: TBD.
Hero Special: "Edicts of Ashoka" - Edict Pillars of Ashoka can be built during Ashoka's lifetime.</Tooltip>
<Tooltip>Hero Special: "Edicts of Ashoka" - Edict Pillars of Ashoka can be built during Ashoka's lifetime.</Tooltip>
<History>TBD.</History>
</Identity>
<VisualActor>

View File

@ -4,7 +4,6 @@
<Civ>maur</Civ>
<GenericName>Chandragupta Maurya</GenericName>
<SpecificName>Chandragupta Maurya</SpecificName>
<Tooltip>Hero Aura: TBD.</Tooltip>
<History>TBD.</History>
<Icon>units/maur_hero_chandragupta.png</Icon>
</Identity>

View File

@ -1,20 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_spearman">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Cavalry</Affects>
<Modifications>
<Attack.Ranged.Pierce> <Add>2</Add> </Attack.Ranged.Pierce>
<Attack.Melee.Hack> <Add>2</Add> </Attack.Melee.Hack>
<Attack.Capture.Value> <Add>1</Add> </Attack.Capture.Value>
</Modifications>
<AuraName>Lead from the Front Aura</AuraName>
<AuraDescription>+2 Attack and +1 Capture for nearby cavalry units.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">pers_hero_cyrus</Auras>
<Identity>
<Civ>pers</Civ>
<GenericName>Cyrus II The Great</GenericName>

View File

@ -1,17 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_archer">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Unit</Affects>
<AffectedPlayers>Player</AffectedPlayers>
<Modifications>
<UnitMotion.WalkSpeed> <Multiply>1.15</Multiply> </UnitMotion.WalkSpeed>
</Modifications>
<AuraName>Leadership Aura</AuraName>
<AuraDescription>+15% Movement Speed of all units.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">pers_hero_darius</Auras>
<Footprint replace="">
<Square width="6.0" depth="12.0"/>
<Height>5.0</Height>

View File

@ -1,19 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_archer">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Worker</Affects>
<Modifications>
<Builder.Rate> <Multiply>1.15</Multiply> </Builder.Rate>
<ResourceGatherer.BaseSpeed> <Multiply>1.15</Multiply> </ResourceGatherer.BaseSpeed>
</Modifications>
<AuraName>Administrator Aura</AuraName>
<AuraDescription> +15% Gather Rate and Build Rate of nearby units.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/buildgather_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">pers_hero_xerxes</Auras>
<Identity>
<Civ>pers</Civ>
<GenericName>Xerxes I</GenericName>

View File

@ -1,19 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_archer">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Worker</Affects>
<Modifications>
<Builder.Rate> <Multiply>1.15</Multiply> </Builder.Rate>
<ResourceGatherer.BaseSpeed> <Multiply>1.15</Multiply> </ResourceGatherer.BaseSpeed>
</Modifications>
<AuraName>Administrator Aura</AuraName>
<AuraDescription> +15% Gather Rate and Build Rate of nearby units.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/buildgather_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">pers_hero_xerxes</Auras>
<Footprint replace="">
<Square width="6.0" depth="12.0"/>
<Height>5.0</Height>

View File

@ -1,19 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_archer">
<Auras>
<unit_attack_speed_20>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Unit</Affects>
<Modifications>
<Attack.Melee.RepeatTime> <Multiply>0.8</Multiply> </Attack.Melee.RepeatTime>
<Attack.Ranged.RepeatTime> <Multiply>0.8</Multiply> </Attack.Ranged.RepeatTime>
</Modifications>
<AuraName>Patriot Aura</AuraName>
<AuraDescription>Egyptian units fight 25% faster in her vision range.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</unit_attack_speed_20>
</Auras>
<Auras datatype="tokens">ptol_hero_cleopatra</Auras>
<Identity>
<Civ>ptol</Civ>
<Gender>female</Gender>

View File

@ -1,30 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_elephant_melee">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>77</Radius>
<Affects>Worker</Affects>
<Modifications>
<Builder.Rate> <Multiply>1.10</Multiply> </Builder.Rate>
</Modifications>
<AuraName>Construction Aura</AuraName>
<AuraDescription>Buildings construct 10% faster within his vision.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/build_bonus.png</OverlayIcon>
</Aura1>
<Aura2>
<Type>global</Type>
<Affects>Mercenary</Affects>
<Modifications>
<Cost.Resources.food> <Multiply>0.5</Multiply> </Cost.Resources.food>
<Cost.Resources.wood> <Multiply>0.5</Multiply> </Cost.Resources.wood>
<Cost.Resources.stone> <Multiply>0.5</Multiply> </Cost.Resources.stone>
<Cost.Resources.metal> <Multiply>0.5</Multiply> </Cost.Resources.metal>
</Modifications>
<AuraName>Mercenary Patron Aura</AuraName>
<AuraDescription>Mercenaries cost -50% resources during his lifetime.</AuraDescription>
</Aura2>
</Auras>
<Auras datatype="tokens">ptol_hero_ptolemy_I_1 ptol_hero_ptolemy_I_2</Auras>
<Identity>
<Civ>ptol</Civ>
<GenericName>Ptolemy I "Savior"</GenericName>

View File

@ -1,16 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_swordsman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Pike</Affects>
<Modifications>
<Health.Max> <Multiply>1.40</Multiply> </Health.Max>
</Modifications>
<AuraName>Raphia Aura</AuraName>
<AuraDescription>Egyptian Pikemen have 40% greater health during his lifetime.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">ptol_hero_ptolemy_IV</Auras>
<Identity>
<Civ>ptol</Civ>
<GenericName>Ptolemy IV "Father Loving"</GenericName>

View File

@ -1,20 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_swordsman">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Unit</Affects>
<Modifications>
<Attack.Ranged.Pierce> <Add>5</Add> </Attack.Ranged.Pierce>
<Attack.Melee.Hack> <Add>5</Add> </Attack.Melee.Hack>
<Attack.Capture.Value> <Add>2</Add> </Attack.Capture.Value>
</Modifications>
<AuraName>Sword of Rome Aura</AuraName>
<AuraDescription>+5 Attack and +2 Capture for Roman units within his vision range.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">rome_hero_marcellus</Auras>
<Identity>
<Civ>rome</Civ>
<Lang>latin</Lang>

View File

@ -1,18 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_swordsman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Unit Structure</Affects>
<Modifications>
<Armour.Pierce> <Add>1</Add> </Armour.Pierce>
<Armour.Hack> <Add>1</Add> </Armour.Hack>
<Armour.Crush> <Add>1</Add> </Armour.Crush>
</Modifications>
<AuraName>Shield of Rome Aura</AuraName>
<AuraDescription>+1 armour for all units and structures.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">rome_hero_maximus</Auras>
<Identity>
<Civ>rome</Civ>
<Lang>latin</Lang>

View File

@ -1,18 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_spearman">
<Auras>
<Aura1>
<Type>global</Type>
<Affects>Cavalry</Affects>
<Modifications>
<Armour.Pierce> <Add>2</Add> </Armour.Pierce>
<Armour.Hack> <Add>2</Add> </Armour.Hack>
<Armour.Crush> <Add>2</Add> </Armour.Crush>
</Modifications>
<AuraName>Ilarchès Aura</AuraName>
<AuraDescription>All cavalry gains +2 levels of all armour types.</AuraDescription>
</Aura1>
</Auras>
<Auras datatype="tokens">sele_hero_antiochus_great</Auras>
<Identity>
<Civ>sele</Civ>
<Lang>greek</Lang>

View File

@ -1,19 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_cavalry_swordsman">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>70</Radius>
<AffectedPlayers>Enemy</AffectedPlayers>
<Affects>Structure Mechanical</Affects>
<Modifications>
<Health.Max> <Multiply>0.8</Multiply> </Health.Max>
</Modifications>
<AuraName>Conquest Aura</AuraName>
<AuraDescription>All nearby enemy buildings, siege engines, and ships have their health reduced by 20%.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/health_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">sele_hero_antiochus_righteous</Auras>
<Identity>
<Civ>sele</Civ>
<Lang>greek</Lang>

View File

@ -1,20 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_elephant_melee">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>80</Radius>
<Affects>Elephant</Affects>
<Modifications>
<UnitMotion.WalkSpeed> <Multiply>1.20</Multiply> </UnitMotion.WalkSpeed>
<Attack.Melee.Hack> <Multiply>1.20</Multiply> </Attack.Melee.Hack>
<Attack.Melee.Crush> <Multiply>1.20</Multiply> </Attack.Melee.Crush>
</Modifications>
<AuraName>Zooiarchos Aura</AuraName>
<AuraDescription>Boosts War Elephant attack and speed +20% within his vision.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">sele_hero_seleucus_victor</Auras>
<Identity>
<Civ>sele</Civ>
<Lang>greek</Lang>

View File

@ -8,7 +8,6 @@
<Lang>greek</Lang>
<GenericName>Agis III</GenericName>
<SpecificName>Agis</SpecificName>
<Tooltip>No hero aura. Has 2x health of other infantry heroes. Basically a very tough hoplite.</Tooltip>
<History>Agis III was the 20th Spartan king of the Eurypontid lineage. Agis cobbled together an alliance of Southern Greek states to fight off Macedonian hegemony while Alexander the Great was away in Asia on his conquest march. After securing Crete as a Spartan tributary, Agis then moved to besiege the city of Megalopolis in the Peloponnese, who was an ally of Macedon. Antipater, the Macedonian regent, lead an army to stop this new uprising. In the Battle of Megalopolis, the Macedonians prevailed in a long and bloody battle. Much like Leonidas 150 years earlier, instead of surrendering, Agis made a heroic final stand in order to buy time for his troops to retreat.</History>
<Icon>units/spart_hero_agis.png</Icon>
</Identity>

View File

@ -1,21 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_hero_infantry_swordsman">
<Auras>
<Aura1>
<Type>range</Type>
<Radius>60</Radius>
<Affects>Javelin</Affects>
<Modifications>
<Attack.Ranged.Pierce> <Add>2</Add> </Attack.Ranged.Pierce>
<Armour.Pierce> <Add>1</Add> </Armour.Pierce>
<Armour.Hack> <Add>1</Add> </Armour.Hack>
<Armour.Crush> <Add>1</Add> </Armour.Crush>
</Modifications>
<AuraName>Helot Reforms</AuraName>
<AuraDescription>Helot Skirmishers within sight of him gain +2 attack and +1 all armor types.</AuraDescription>
<OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
</Aura1>
</Auras>
<Auras datatype="tokens">spart_hero_brasidas</Auras>
<Identity>
<Civ>spart</Civ>
<Lang>greek</Lang>

Some files were not shown because too many files have changed in this diff Show More