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:
parent
d7b62e0af7
commit
46ead523b8
@ -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
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
};
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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() {}
|
||||
|
||||
|
@ -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."
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"type": "global",
|
||||
"affects": ["Javelin"],
|
||||
"modifications": [
|
||||
{ "value": "UnitMotion/WalkSpeed", "add": 1.15 }
|
||||
],
|
||||
"auraName": "Peltast Reforms",
|
||||
"auraDescription": "All Peltasts +15% speed."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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."
|
||||
}
|
@ -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."
|
||||
}
|
@ -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."
|
||||
}
|
@ -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"
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"type": "global",
|
||||
"affects": ["Unit"],
|
||||
"modifications": [
|
||||
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
|
||||
],
|
||||
"auraName": "Hero Aura",
|
||||
"auraDescription": "All Units +15% speed."
|
||||
}
|
@ -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"
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"type": "global",
|
||||
"affects": ["Unit"],
|
||||
"modifications": [
|
||||
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
|
||||
],
|
||||
"auraName": "Lightning Aura",
|
||||
"auraDescription": "All Units +15% speed."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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)."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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."
|
||||
}
|
@ -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."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"type": "global",
|
||||
"affects": ["Structure"],
|
||||
"modifications": [
|
||||
{ "value": "TerritoryInfluence/Radius", "multiply": 1.20 }
|
||||
],
|
||||
"auraDescription": "Increase territory influence."
|
||||
}
|
@ -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."
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"type": "global",
|
||||
"affects": ["Player"],
|
||||
"modifications": [ { "value": "Player/MaxPopulation", "add": 10 } ],
|
||||
"auraName": "Wonder Aura",
|
||||
"auraDescription": "+10 max. population cap"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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">
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user