Ticket #3792: patch.diff

File patch.diff, 83.1 KB (added by fatherbushido, 8 years ago)

test it

  • binaries/data/mods/public/globalscripts/Templates.js

    function MatchesClassList(classes, match  
    6969 * Get information about a template with or without technology modifications.
    7070 * @param template A valid template as returned by the template loader.
    7171 * @param player An optional player id to get the technology modifications
    7272 *               of properties.
    7373 */
    74 function GetTemplateDataHelper(template, player)
     74function GetTemplateDataHelper(template, player, aurasTemplate)
    7575{
    7676    var ret = {};
    7777
    7878    var func;
    7979    if (player)
    function GetTemplateDataHelper(template,  
    118118    }
    119119
    120120    if (template.Auras)
    121121    {
    122122        ret.auras = {};
    123         for (let auraID in template.Auras)
     123        for (let auraID in aurasTemplate)
    124124        {
    125             let aura = template.Auras[auraID];
    126             if (aura.AuraName)
     125            let aura = aurasTemplate[auraID];
     126            if (aura.auraName)
    127127                ret.auras[auraID] = {
    128                     "name": aura.AuraName,
    129                     "description": aura.AuraDescription || null
     128                    "name": aura.auraName || null,
     129                    "description": aura.auraDescription || null
    130130                };
    131131        }
    132132    }
    133133
    134134    if (template.BuildRestrictions)
  • binaries/data/mods/public/gui/structree/helper.js

    function loadTechData(templateName)  
    2020    if (!(templateName in g_TechnologyData))
    2121    {
    2222        var filename = "simulation/data/technologies/" + templateName + ".json";
    2323        var data = Engine.ReadJSONFile(filename);
    2424        translateObjectKeys(data, ["genericName", "tooltip"]);
    25        
     25
    2626        g_TechnologyData[templateName] = data;
    2727    }
    2828
    2929    return g_TechnologyData[templateName];
    3030}
  • binaries/data/mods/public/simulation/components/Auras.js

     
    11function Auras() {}
    22
    3 var modificationSchema =
    4     "<element name='Modifications' a:help='Modification list'>" +
    5         "<oneOrMore>" +
    6             "<element a:help='Name of the value to modify'>" +
    7                 "<anyName/>" +
    8                 "<choice>" +
    9                     "<element name='Add'>" +
    10                         "<data type='decimal'/>" +
    11                     "</element>" +
    12                     "<element name='Multiply'>" +
    13                         "<data type='decimal'/>" +
    14                     "</element>" +
    15                 "</choice>" +
    16             "</element>" +
    17         "</oneOrMore>" +
    18     "</element>";
    19 
    203Auras.prototype.Schema =
    21     "<oneOrMore>" +
    22         "<element a:help='Any name you want'>" +
    23             "<anyName/>" +
    24             "<interleave>" +
    25                 "<optional>" +
    26                     "<element name='Radius' a:help='Define the radius this aura affects, if it is a range aura'>" +
    27                         "<data type='nonNegativeInteger'/>" +
    28                     "</element>" +
    29                 "</optional>" +
    30                 "<element name='Type' a:help='Controls how this aura affects nearby units'>" +
    31                     "<choice>" +
    32                         "<value a:help='Affects units in the same formation'>formation</value>" +
    33                         "<value a:help='Affects units in a certain range'>range</value>" +
    34                         "<value a:help='Affects the structure or unit this unit is garrisoned in'>garrison</value>" +
    35                         "<value a:help='Affects the units that are garrisoned on a certain structure'>garrisonedUnits</value>" +
    36                         "<value a:help='Affects all units while this unit is alive'>global</value>" +
    37                     "</choice>" +
    38                 "</element>" +
    39                 modificationSchema +
    40                 "<optional>" +
    41                     "<element name='AuraName' a:help='name to display in the GUI'>" +
    42                         "<text/>" +
    43                     "</element>" +
    44                 "</optional>" +
    45                 "<optional>" +
    46                     "<element name='AuraDescription' a:help='description to display in the GUI, requires a name'>" +
    47                         "<text/>" +
    48                     "</element>" +
    49                 "</optional>" +
    50                 "<optional>" +
    51                     "<element name='OverlayIcon' a:help='Icon to show on the entities affected by this aura'>" +
    52                         "<text/>" +
    53                     "</element>" +
    54                 "</optional>" +
    55                 "<element name='Affects' a:help='Affected classes'>" +
    56                     "<text/>" +
    57                 "</element>" +
    58                 "<optional>" +
    59                     "<element name='AffectedPlayers' a:help='Affected players'>" +
    60                         "<text/>" +
    61                     "</element>" +
    62                 "</optional>" +
    63             "</interleave>" +
    64         "</element>" +
    65     "</oneOrMore>";
     4            "<attribute name='datatype'>" +
     5                "<value>tokens</value>" +
     6            "</attribute>" +
     7            "<text/>";
    668
    679Auras.prototype.Init = function()
    6810{
    69     var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
    70     this.templateName = cmpTemplateManager.GetCurrentTemplateName(this.entity);
     11    let cmpTechnologyTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TechnologyTemplateManager);
    7112    this.auras = {};
    7213    this.affectedPlayers = {};
    73     for (var name in this.template)
     14    let auraNames = this.GetAuraNames();
     15    this.auraTemplate = {};
     16    for (let name of auraNames)
    7417    {
    7518        this.affectedPlayers[name] = []; // will be calculated on ownership change
    7619        var aura = {};
    77         aura.affects = this.template[name].Affects;
    78         if (this.template[name].AffectedPlayers)
    79             aura.affectedPlayers = this.template[name].AffectedPlayers.split(/\s+/);
     20        this.auraTemplate[name] = cmpTechnologyTemplateManager.GetAuraTemplate(name);
     21        aura.affects = this.auraTemplate[name].affects;
     22        if (this.auraTemplate[name].affectedPlayers)
     23            aura.affectedPlayers = this.auraTemplate[name].affectedPlayers.split(/\s+/);
    8024        this.auras[name] = aura;
    8125    }
    8226};
    8327
    84 Auras.prototype.GetModifierIdentifier = function(name, mod)
     28// we can modify identifier if we want stackable auras in some case
     29Auras.prototype.GetModifierIdentifier = function(name)
    8530{
    86         return this.templateName + "/" + name + "/" + mod.value;
     31        return name;
    8732};
    8833
    8934Auras.prototype.GetDescriptions = function()
    9035{
     36    let auraNames = this.GetAuraNames();
    9137    var ret = {};
    92     for (let name in this.template)
     38    for (let name of auraNames)
    9339    {
    94         let aura = this.template[name];
    95         if (aura.AuraName)
    96             ret[aura.AuraName] = aura.AuraDescription || null;
     40        let aura = this.auraTemplate[name];
     41        if (aura.auraName)
     42            ret[aura.auraName] = aura.auraDescription || null;
    9743    }
    9844    return ret;
    9945};
    10046
    10147Auras.prototype.GetAuraNames = function()
    10248{
    103     return Object.keys(this.template);
     49    return this.template._string.split(/\s+/);
    10450};
    10551
    10652Auras.prototype.GetOverlayIcon = function(name)
    10753{
    108     return this.template[name].OverlayIcon || "";
     54    return this.auraTemplate[name].overlayIcon || "";
    10955};
    11056
    11157Auras.prototype.GetAffectedEntities = function(name)
    11258{
    11359    return this[name].targetUnits;
    Auras.prototype.GetRange = function(name  
    11763{
    11864    if (!this.IsRangeAura(name))
    11965        return undefined;
    12066    if (this.IsGlobalAura(name))
    12167        return -1; // -1 is infinite range
    122     return +this.template[name].Radius;
     68    return +this.auraTemplate[name].radius;
    12369};
    12470
    12571Auras.prototype.GetClasses = function(name)
    12672{
    12773    return this.auras[name].affects;
    Auras.prototype.HasGarrisonedUnitsAura =  
    175121    return this.GetAuraNames().some(n => this.IsGarrisonedUnitsAura(n));
    176122};
    177123
    178124Auras.prototype.GetType = function(name)
    179125{
    180     return this.template[name].Type;
     126    return this.auraTemplate[name].type;
    181127};
    182128
    183129Auras.prototype.IsFormationAura = function(name)
    184130{
    185131    return this.GetType(name) == "formation";
    Auras.prototype.Clean = function()  
    231177
    232178        if (this[name].rangeQuery)
    233179            cmpRangeManager.DestroyActiveQuery(this[name].rangeQuery);
    234180    }
    235181
    236     for (let name in this.template)
     182    //apply technology modifications of the auras
     183    for (let name of auraNames)
    237184    {
    238185        let modifications = [];
    239         for (let value in this.template[name].Modifications)
     186        for (let modification of this.auraTemplate[name].modifications)
    240187        {
    241188            let mod = {};
    242             mod.value = value.replace(/\./g, "/").replace(/\/\//g, ".");
    243             let templateModifications = this.template[name].Modifications[value];
    244             if (templateModifications.Add)
    245                 mod.add = ApplyValueModificationsToEntity("Auras/"+name+"/Modifications/"+mod.value+"/Add",
    246                     +templateModifications.Add, this.entity);
    247             else if (templateModifications.Multiply)
    248                 mod.multiply = ApplyValueModificationsToEntity("Auras/"+name+"/Modifications/"+mod.value+"/Multiply",
    249                     +templateModifications.Multiply, this.entity);
     189            mod.value = modification.value;
     190            let valueName = "Auras/" + name + "/modifications/" + modification.value + "/";
     191            if (modification.add)
     192                mod.add = ApplyValueModificationsToEntity(valueName + "add", modification.add, this.entity);
     193            if (modification.multiply)
     194                mod.multiply = ApplyValueModificationsToEntity(valueName + "multiply", modification.multiply, this.entity);
    250195            modifications.push(mod);
    251196        }
    252197        this.auras[name].modifications = modifications;
     198
    253199    }
    254200
    255201    for (let name of auraNames)
    256202    {
    257203        // only calculate the affected players on re-applying the bonuses
    Auras.prototype.ApplyTemplateBonus = fun  
    346292    var cmpAuraManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AuraManager);
    347293    var classes = this.GetClasses(name);
    348294
    349295    for (let mod of modifications)
    350296        for (let player of players)
    351             cmpAuraManager.ApplyTemplateBonus(mod.value, player, classes, mod, this.GetModifierIdentifier(name, mod));
     297            cmpAuraManager.ApplyTemplateBonus(mod.value, player, classes, mod, this.GetModifierIdentifier(name));
    352298};
    353299
    354300Auras.prototype.RemoveFormationBonus = function(memberList)
    355301{
    356302    var auraNames = this.GetAuraNames().filter(n => this.IsFormationAura(n));
    Auras.prototype.RemoveTemplateBonus = fu  
    375321    var classes = this.GetClasses(name);
    376322    var players = this.GetAffectedPlayers(name);
    377323
    378324    for (let mod of modifications)
    379325        for (let player of players)
    380             cmpAuraManager.RemoveTemplateBonus(mod.value, player, classes, this.GetModifierIdentifier(name, mod));
     326            cmpAuraManager.RemoveTemplateBonus(mod.value, player, classes, this.GetModifierIdentifier(name));
    381327};
    382328
    383329Auras.prototype.ApplyBonus = function(name, ents)
    384330{
    385331    var validEnts = this.GiveMembersWithValidClass(name, ents);
    Auras.prototype.ApplyBonus = function(na  
    389335    this[name].targetUnits = this[name].targetUnits.concat(validEnts);
    390336    var modifications = this.GetModifications(name);
    391337    var cmpAuraManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AuraManager);
    392338
    393339    for (let mod of modifications)
    394         cmpAuraManager.ApplyBonus(mod.value, validEnts, mod, this.GetModifierIdentifier(name, mod));
    395 
     340        cmpAuraManager.ApplyBonus(mod.value, validEnts, mod, this.GetModifierIdentifier(name));
    396341    // update status bars if this has an icon
    397342    if (!this.GetOverlayIcon(name))
    398343        return;
    399344
    400345    for (let ent of validEnts)
    Auras.prototype.RemoveBonus = function(n  
    414359    this[name].targetUnits = this[name].targetUnits.filter(v => validEnts.indexOf(v) == -1);
    415360    var modifications = this.GetModifications(name);
    416361    var cmpAuraManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AuraManager);
    417362
    418363    for (let mod of modifications)
    419         cmpAuraManager.RemoveBonus(mod.value, validEnts, this.GetModifierIdentifier(name, mod));
    420 
     364        cmpAuraManager.RemoveBonus(mod.value, validEnts, this.GetModifierIdentifier(name));
    421365    // update status bars if this has an icon
    422366    if (!this.GetOverlayIcon(name))
    423367        return;
    424368
    425369    for (let ent of validEnts)
  • binaries/data/mods/public/simulation/components/GuiInterface.js

    GuiInterface.prototype.GetTemplateData =  
    571571    let template = cmpTemplateManager.GetTemplate(name);
    572572
    573573    if (!template)
    574574        return null;
    575575
    576     return GetTemplateDataHelper(template, player);
     576    let aurasTemplate = {};
     577
     578    if (!template.Auras)
     579        return GetTemplateDataHelper(template, player, aurasTemplate);
     580
     581    // Add aura name and description loaded from JSON file
     582    let auraNames = template.Auras._string.split(/\s+/);
     583    let cmpTechnologyTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TechnologyTemplateManager);
     584    for (let name of auraNames)
     585    {
     586        let auraTemplate = cmpTechnologyTemplateManager.GetAuraTemplate(name);
     587        if (!auraTemplate)
     588        {
     589            // the following warning is perhaps useless since it's yet done in TechnologyTemplateManager
     590            warn("Tried to get data for invalid technology: " + name);
     591            continue;
     592        }
     593        aurasTemplate[name] = {};
     594        if (auraTemplate.auraName)
     595            aurasTemplate[name].auraName = auraTemplate.auraName;
     596        if (auraTemplate.auraName)
     597            aurasTemplate[name].auraDescription = auraTemplate.auraDescription;
     598    }
     599    return GetTemplateDataHelper(template, player, aurasTemplate);
    577600};
    578601
    579602GuiInterface.prototype.GetTechnologyData = function(player, name)
    580603{
    581604    let cmpTechnologyTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TechnologyTemplateManager);
  • binaries/data/mods/public/simulation/components/TechnologyTemplateManager.js

     
    11/**
    2  * System component which loads the technology data files
     2 * System component which loads the technology and the aura data files
    33 */
    44function TechnologyTemplateManager() {}
    55
    66TechnologyTemplateManager.prototype.Schema =
    77    "<a:component type='system'/><empty/>";
  • binaries/data/mods/public/simulation/data/technologies/pop_wonder.json

     
    1414    "requirements": { "tech": "phase_city" },
    1515    "requirementsTooltip": "Unlocked in City Phase.",
    1616    "icon": "special_treasure.png",
    1717    "researchTime": 40,
    1818    "tooltip": "Increase the population bonus of the wonder by 40.",
    19     "modifications": [{ "value": "Auras/Aura1/Modifications/Player/MaxPopulation/Add", "add": 40 }],
    20     "affects": ["Wonder"],
     19    "modifications": [{ "value": "Auras/wonder_pop/modifications/Player/MaxPopulation/add", "add": 40 }],
    2120    "soundComplete": "interface/alarm/alarm_upgradearmory.xml"
    2221}
  • binaries/data/mods/public/simulation/helpers/ValueModification.js

    function ApplyValueModificationsToTempla  
    3030    if (cmpTechnologyManager)
    3131        value = cmpTechnologyManager.ApplyModificationsTemplate(tech_type, current_value, template);
    3232
    3333    let cmpAuraManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AuraManager);
    3434    if (!cmpAuraManager)
    35         return value; 
     35        return value;
    3636    return cmpAuraManager.ApplyTemplateModifications(tech_type, value, playerID, template);
    3737}
    3838
    3939Engine.RegisterGlobal("ApplyValueModificationsToEntity", ApplyValueModificationsToEntity);
    4040Engine.RegisterGlobal("ApplyValueModificationsToPlayer", ApplyValueModificationsToPlayer);
  • binaries/data/mods/public/simulation/templates/structures/athen_theatron.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_special">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Structure</Affects>
    7       <Modifications>
    8         <TerritoryInfluence.Radius> <Multiply>1.2</Multiply> </TerritoryInfluence.Radius>
    9       </Modifications>
    10     </Aura1>
    11   </Auras>
     3  <Auras datatype="tokens">theatron</Auras>
    124  <BuildRestrictions>
    135    <Category>Theater</Category>
    146  </BuildRestrictions>
    157  <Cost>
    168    <BuildTime>500</BuildTime>
  • binaries/data/mods/public/simulation/templates/structures/brit_rotarymill.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_special">
     3  <Auras datatype="tokens">rotary_mill</Auras>
    34  <Cost>
    45    <BuildTime>100</BuildTime>
    56    <PopulationBonus>2</PopulationBonus>
    67    <Resources>
    78      <food>0</food>
    89      <wood>200</wood>
    910      <stone>100</stone>
    1011      <metal>0</metal>
    1112    </Resources>
    1213  </Cost>
    13   <Auras>
    14     <Aura1>
    15     <Type>range</Type>
    16       <Radius>60</Radius>
    17       <Affects>Worker</Affects>
    18       <Modifications>
    19         <ResourceGatherer.Rates.food..grain> <Multiply>1.25</Multiply> </ResourceGatherer.Rates.food..grain>
    20       </Modifications>
    21       <AuraName>Farming bonus</AuraName>
    22       <AuraDescription>Boosts nearby farming with +25% gathering rate.</AuraDescription>
    23       <OverlayIcon>art/textures/ui/session/auras/farming.png</OverlayIcon>
    24     </Aura1>
    25   </Auras>
    2614  <Footprint replace="">
    2715    <Circle radius="9.0"/>
    2816    <Height>6.0</Height>
    2917  </Footprint>
    3018  <GarrisonHolder disable=""/>
  • binaries/data/mods/public/simulation/templates/structures/cart_super_dock.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_special">
    3   <Auras>
    4     <Aura1>
    5       <Type>garrisonedUnits</Type>
    6       <Affects>Ship</Affects>
    7       <Modifications>
    8         <Health.RegenRate> <Add>3</Add> </Health.RegenRate>
    9       </Modifications>
    10       <AuraName>Repairing ship Aura</AuraName>
    11       <AuraDescription>Heals garrisoned ship at 3 HP per second.</AuraDescription>
    12     </Aura1>
    13   </Auras>
     3  <Auras datatype="tokens">cart_super_dock_repair</Auras>
    144  <BuildRestrictions>
    155    <Territory>own ally neutral</Territory>
    166    <PlacementType>shore</PlacementType>
    177    <Category>Dock</Category>
    188  </BuildRestrictions>
  • binaries/data/mods/public/simulation/templates/structures/gaul_rotarymill.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_special">
     3  <Auras datatype="tokens">rotary_mill</Auras>
    34  <Cost>
    45    <BuildTime>100</BuildTime>
    56    <PopulationBonus>2</PopulationBonus>
    67    <Resources>
    78      <food>0</food>
    89      <wood>200</wood>
    910      <stone>100</stone>
    1011      <metal>0</metal>
    1112    </Resources>
    1213  </Cost>
    13   <Auras>
    14     <Aura1>
    15     <Type>range</Type>
    16       <Radius>60</Radius>
    17       <Affects>Worker</Affects>
    18       <Modifications>
    19         <ResourceGatherer.Rates.food..grain> <Multiply>1.25</Multiply> </ResourceGatherer.Rates.food..grain>
    20       </Modifications>
    21       <AuraName>Farming bonus</AuraName>
    22       <AuraDescription>Boosts nearby farming with +25% gathering rate.</AuraDescription>
    23       <OverlayIcon>art/textures/ui/session/auras/farming.png</OverlayIcon>
    24     </Aura1>
    25   </Auras>
    2614  <Footprint replace="">
    2715    <Circle radius="9.0"/>
    2816    <Height>6.0</Height>
    2917  </Footprint>
    3018  <GarrisonHolder disable=""/>
  • binaries/data/mods/public/simulation/templates/structures/iber_monument.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_special">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>50</Radius>
    7       <Affects>Unit</Affects>
    8       <Modifications>
    9         <Attack.Melee.Hack> <Add>2</Add> </Attack.Melee.Hack>
    10         <Attack.Ranged.Pierce> <Add>3</Add> </Attack.Ranged.Pierce>
    11       </Modifications>
    12       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    13     </Aura1>
    14   </Auras>
     3  <Auras datatype="tokens">iber_monument</Auras>
    154  <BuildRestrictions>
    165    <Category>Monument</Category>
    176  </BuildRestrictions>
    187  <Cost>
    198    <BuildTime>120</BuildTime>
  • binaries/data/mods/public/simulation/templates/structures/mace_theatron.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_special">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Structure</Affects>
    7       <Modifications>
    8         <TerritoryInfluence.Radius> <Multiply>1.2</Multiply> </TerritoryInfluence.Radius>
    9       </Modifications>
    10     </Aura1>
    11   </Auras>
     3  <Auras datatype="tokens">theatron</Auras>
    124  <BuildRestrictions>
    135    <Category>Theater</Category>
    146  </BuildRestrictions>
    157  <Cost>
    168    <BuildTime>550</BuildTime>
  • binaries/data/mods/public/simulation/templates/structures/maur_pillar_ashoka.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_special">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>75</Radius>
    7       <Affects>Trader</Affects>
    8       <Modifications>
    9         <UnitMotion.WalkSpeed> <Multiply>1.20</Multiply> </UnitMotion.WalkSpeed>
    10       </Modifications>
    11       <AuraDescription>All traders in range +20% walk speed.</AuraDescription>
    12       <OverlayIcon>art/textures/ui/session/auras/build_bonus.png</OverlayIcon>
    13     </Aura1>
    14   </Auras>
     3  <Auras datatype="tokens">maur_pillar</Auras>
    154  <BuildRestrictions>
    165    <Category>Pillar</Category>
    176  </BuildRestrictions>
    187  <Cost>
    198    <BuildTime>80</BuildTime>
  • binaries/data/mods/public/simulation/templates/structures/spart_theatron.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_special">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Structure</Affects>
    7       <Modifications>
    8         <TerritoryInfluence.Radius> <Multiply>1.2</Multiply> </TerritoryInfluence.Radius>
    9       </Modifications>
    10     </Aura1>
    11   </Auras>
     3  <Auras datatype="tokens">theatron</Auras>
    124  <BuildRestrictions>
    135    <Category>Theater</Category>
    146  </BuildRestrictions>
    157  <Cost>
    168    <BuildTime>500</BuildTime>
  • binaries/data/mods/public/simulation/templates/structures/theb_theatron.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_special">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Structure</Affects>
    7       <Modifications>
    8         <TerritoryInfluence.Radius> <Multiply>1.2</Multiply> </TerritoryInfluence.Radius>
    9       </Modifications>
    10     </Aura1>
    11   </Auras>
     3  <Auras datatype="tokens">theatron</Auras>
    124  <BuildRestrictions>
    135    <Category>Theater</Category>
    146  </BuildRestrictions>
    157  <Cost>
    168    <BuildTime>500</BuildTime>
  • binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_structure_civic">
    3   <Auras>
    4     <heal>
    5       <Type>range</Type>
    6       <Radius>40</Radius>
    7       <Affects>Human</Affects>
    8       <Modifications>
    9         <Health.RegenRate> <Add>1</Add> </Health.RegenRate>
    10       </Modifications>
    11       <AuraName>Healing Aura</AuraName>
    12       <AuraDescription>Heals nearby units at 1 HP per second.</AuraDescription>
    13       <OverlayIcon>art/textures/ui/session/auras/heal.png</OverlayIcon>
    14     </heal>
    15   </Auras>
     3  <Auras datatype="tokens">temple_heal</Auras>
    164  <BuildRestrictions>
    175    <Category>Temple</Category>
    186  </BuildRestrictions>
    197  <Cost>
    208    <PopulationBonus>5</PopulationBonus>
  • binaries/data/mods/public/simulation/templates/template_structure_defense_wall_long.xml

     
    33  <Armour>
    44    <Hack>18.0</Hack>
    55    <Pierce>40.0</Pierce>
    66    <Crush>4.0</Crush>
    77  </Armour>
    8   <Auras>
    9     <Aura1>
    10       <Type>garrisonedUnits</Type>
    11       <Affects>Unit</Affects>
    12       <Modifications>
    13         <Armour.Pierce> <Add>3</Add> </Armour.Pierce>
    14         <Armour.Hack> <Add>3</Add> </Armour.Hack>
    15         <Armour.Crush> <Add>3</Add> </Armour.Crush>
    16         <Vision.Range> <Add>20</Add> </Vision.Range>
    17       </Modifications>
    18       <AuraName>Wall Protection</AuraName>
    19       <AuraDescription>Units on walls have 3 extra Armor levels</AuraDescription>
    20     </Aura1>
    21   </Auras>
     8  <Auras datatype="tokens">wall_garrisoned</Auras>
    229  <Cost>
    2310    <BuildTime>45</BuildTime>
    2411    <Resources>
    2512      <stone>28</stone>
    2613    </Resources>
  • binaries/data/mods/public/simulation/templates/template_structure_defense_wall_medium.xml

     
    33  <Armour>
    44    <Hack>18.0</Hack>
    55    <Pierce>40.0</Pierce>
    66    <Crush>4.0</Crush>
    77  </Armour>
    8   <Auras>
    9     <Aura1>
    10       <Type>garrisonedUnits</Type>
    11       <Affects>Unit</Affects>
    12       <Modifications>
    13         <Armour.Pierce> <Add>3</Add> </Armour.Pierce>
    14         <Armour.Hack> <Add>3</Add> </Armour.Hack>
    15         <Armour.Crush> <Add>3</Add> </Armour.Crush>
    16         <Vision.Range> <Add>20</Add> </Vision.Range>
    17       </Modifications>
    18       <AuraName>Wall Protection</AuraName>
    19       <AuraDescription>Units on walls have 3 extra Armor levels</AuraDescription>
    20     </Aura1>
    21   </Auras>
     8  <Auras datatype="tokens">wall_garrisoned</Auras>
    229  <Cost>
    2310    <BuildTime>30</BuildTime>
    2411    <Resources>
    2512      <stone>22</stone>
    2613    </Resources>
  • binaries/data/mods/public/simulation/templates/template_structure_wonder.xml

     
    88      <Hack>2</Hack>
    99      <Pierce>10</Pierce>
    1010      <Crush>2</Crush>
    1111    </Foundation>
    1212  </Armour>
    13   <Auras>
    14     <Aura1>
    15       <Type>global</Type>
    16       <Affects>Player</Affects>
    17       <Modifications>
    18         <Player.MaxPopulation> <Add>10</Add> </Player.MaxPopulation>
    19       </Modifications>
    20       <AuraName>Wonder Aura</AuraName>
    21       <AuraDescription>+10 maximum population cap.</AuraDescription>
    22      </Aura1>
    23   </Auras>
     13  <Auras datatype="tokens">wonder_pop</Auras>
    2414  <BuildRestrictions>
    2515    <Category>Wonder</Category>
    2616  </BuildRestrictions>
    2717  <Capturable>
    2818    <CapturePoints>2000</CapturePoints>
  • binaries/data/mods/public/simulation/templates/template_unit_hero.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit">
    3   <Auras>
    4     <AuraA>
    5       <Type>garrison</Type>
    6       <Affects>Structure Mechanical</Affects>
    7       <Modifications>
    8         <Capturable.GarrisonRegenRate> <Add>2</Add> </Capturable.GarrisonRegenRate>
    9       </Modifications>
    10       <AuraName>Garrisoned Capture Aura</AuraName>
    11       <AuraDescription>When garrisoned in a structure or a siege, the hero gives it a bonus of +2 capture points recovery rate.</AuraDescription>
    12     </AuraA>   
    13   </Auras>
    143  <Attack>
    154    <Capture>
    165      <Value>15</Value>
    176      <MaxRange>4</MaxRange>
    187      <RepeatTime>1000</RepeatTime>
     
    2110  <Armour>
    2211    <Hack>10.0</Hack>
    2312    <Pierce>20.0</Pierce>
    2413    <Crush>15.0</Crush>
    2514  </Armour>
     15  <Auras datatype="tokens">hero_garrison</Auras>
    2616  <Cost>
    2717    <Population>2</Population>
    2818    <BuildTime>40</BuildTime>
    2919    <Resources>
    3020      <food>100</food>
  • binaries/data/mods/public/simulation/templates/template_unit_support_female_citizen.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_support">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>10</Radius>
    7       <Affects>Citizen+Soldier</Affects>
    8       <Modifications>
    9         <Builder.Rate> <Multiply>1.1</Multiply> </Builder.Rate>
    10         <ResourceGatherer.BaseSpeed> <Multiply>1.1</Multiply> </ResourceGatherer.BaseSpeed>
    11       </Modifications>
    12       <AuraName>Inspiration Aura</AuraName>
    13       <AuraDescription>Nearby males work 10% faster.</AuraDescription>
    14       <OverlayIcon>art/textures/ui/session/auras/buildgather_bonus.png</OverlayIcon>
    15     </Aura1>
    16   </Auras>
    173  <Attack>
    184    <Melee>
    195      <Hack>2.0</Hack>
    206      <Pierce>0</Pierce>
    217      <Crush>0.0</Crush>
     
    2814      <Pierce>0.0</Pierce>
    2915      <Crush>0.0</Crush>
    3016      <MaxRange>4.0</MaxRange>
    3117    </Slaughter>
    3218  </Attack>
     19  <Auras datatype="tokens">female_inspiration</Auras>
    3320  <Builder>
    3421    <Rate>1.0</Rate>
    3522    <Entities datatype="tokens">
    3623      structures/{civ}_house
    3724      structures/{civ}_storehouse
  • binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_support">
     3  <Cost>
     4    <Resources>
     5      <food>250</food>
     6    </Resources>
     7  </Cost>
    38  <Heal>
    49    <Range>12</Range>
    510    <HP>5</HP>
    611    <Rate>2000</Rate>
    712    <UnhealableClasses datatype="tokens"/>
    813    <HealableClasses datatype="tokens">Human</HealableClasses>
    914  </Heal>
    10   <Cost>
    11     <Resources>
    12       <food>250</food>
    13     </Resources>
    14   </Cost>
    1515  <Health>
    1616    <Max>85</Max>
    1717  </Health>
    1818  <Identity>
    1919    <Classes datatype="tokens">Healer</Classes>
  • binaries/data/mods/public/simulation/templates/units/athen_hero_iphicrates.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_javelinist">
    3   <Auras>
    4     <Aura1>
    5       <Type>formation</Type>
    6       <Affects>Unit</Affects>
    7       <Modifications>
    8         <UnitMotion.WalkSpeed> <Multiply>1.15</Multiply> </UnitMotion.WalkSpeed>
    9         <Armour.Pierce> <Add>1</Add> </Armour.Pierce>
    10         <Armour.Hack>   <Add>1</Add> </Armour.Hack>
    11         <Armour.Crush>  <Add>1</Add> </Armour.Crush>
    12       </Modifications>
    13       <AuraName>Formation Reforms</AuraName>
    14       <AuraDescription>All units in his formation +15% speed and +1 armor.</AuraDescription>
    15     </Aura1>
    16     <Aura2>
    17       <Type>global</Type>
    18       <Affects>Javelin</Affects>
    19       <Modifications>
    20         <UnitMotion.WalkSpeed><Multiply>1.15</Multiply></UnitMotion.WalkSpeed>
    21       </Modifications>
    22       <AuraName>Peltast Reforms</AuraName>
    23       <AuraDescription>All Peltasts +15% speed.</AuraDescription>
    24     </Aura2>
    25   </Auras>
     3  <Auras datatype="tokens">athen_hero_iphicrates_1 athen_hero_iphicrates_2</Auras>
    264  <Identity>
    275    <Civ>athen</Civ>
    286    <Lang>greek</Lang>
    297    <GenericName>Iphicrates</GenericName>
    308    <SpecificName>Iphikratēs</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/athen_hero_pericles.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_spearman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Worker</Affects>
    8       <Modifications>
    9         <Builder.Rate> <Multiply>1.15</Multiply> </Builder.Rate>
    10       </Modifications>
    11       <AuraName>Builder Aura</AuraName>
    12       <AuraDescription>Buildings construct 15% faster within his vision.</AuraDescription>
    13       <OverlayIcon>art/textures/ui/session/auras/build_bonus.png</OverlayIcon>
    14     </Aura1>
    15     <Aura2>
    16       <Type>global</Type>
    17       <Affects>Temple</Affects>
    18       <Modifications>
    19         <Cost.Resources.stone> <Add>-50</Add> </Cost.Resources.stone>
    20       </Modifications>
    21       <AuraName>Acropolis Aura</AuraName>
    22       <AuraDescription>Temples are 50 stone cheaper during his lifetime.</AuraDescription>
    23     </Aura2>
    24   </Auras>
     3  <Auras datatype="tokens">athen_hero_pericles_1 athen_hero_pericles_2</Auras>
    254  <Identity>
    265    <Civ>athen</Civ>
    276    <Lang>greek</Lang>
    287    <GenericName>Pericles</GenericName>
    298    <SpecificName>Periklēs</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/athen_hero_themistocles.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>garrison</Type>
    6       <Affects>Ship</Affects>
    7       <AffectedPlayers>Player MutualAlly</AffectedPlayers>
    8       <Modifications>
    9         <UnitMotion.WalkSpeed> <Multiply>1.5</Multiply> </UnitMotion.WalkSpeed>
    10       </Modifications>
    11       <AuraName>Naval Commander Aura</AuraName>
    12       <AuraDescription>When garrisoned in a ship, his ship is +50% faster.</AuraDescription>
    13     </Aura1>
    14     <Aura2>
    15       <Type>global</Type>
    16       <Affects>Ship</Affects>
    17       <Modifications>
    18         <Cost.BuildTime> <Multiply>0.8</Multiply> </Cost.BuildTime>
    19       </Modifications>
    20       <AuraName>Naval Architect Aura</AuraName>
    21       <AuraDescription>-20% build time for ships during his lifespan.</AuraDescription>
    22     </Aura2>
    23   </Auras>
     3  <Auras datatype="tokens">athen_hero_themistocles_1 athen_hero_themistocles_2</Auras>
    244  <Identity>
    255    <Civ>athen</Civ>
    266    <Lang>greek</Lang>
    277    <GenericName>Themistocles</GenericName>
    288    <SpecificName>Themistoklês</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/brit_hero_boudicca.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_javelinist">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Champion</Affects>
    8       <Modifications>
    9         <UnitMotion.WalkSpeed> <Multiply>1.25</Multiply> </UnitMotion.WalkSpeed>
    10         <Attack.Ranged.Pierce> <Add>5</Add> </Attack.Ranged.Pierce>
    11         <Attack.Melee.Hack> <Add>5</Add> </Attack.Melee.Hack>
    12         <Attack.Capture.Value> <Add>2</Add> </Attack.Capture.Value>
    13       </Modifications>
    14       <AuraName>Champion Army</AuraName>
    15       <AuraDescription>+5 Attack, +2 Capture and +25% Speed for Champion Units.</AuraDescription>
    16       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    17     </Aura1>
    18   </Auras>
     3  <Auras datatype="tokens">brit_hero_boudicca</Auras>
    194  <Footprint replace="">
    205    <Square width="4.5" depth="9.0"/>
    216    <Height>5.0</Height>
    227  </Footprint>
    238  <Identity>
  • binaries/data/mods/public/simulation/templates/units/brit_hero_boudicca_sword.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Champion</Affects>
    7       <Modifications>
    8         <UnitMotion.WalkSpeed> <Multiply>1.25</Multiply> </UnitMotion.WalkSpeed>
    9         <Attack.Ranged.Pierce> <Add>5</Add> </Attack.Ranged.Pierce>
    10         <Attack.Melee.Hack> <Add>5</Add> </Attack.Melee.Hack>
    11         <Attack.Capture.Value> <Add>2</Add> </Attack.Capture.Value>
    12       </Modifications>
    13       <AuraName>Champion Army</AuraName>
    14       <AuraDescription>+5 Attack, +2 Capture and +25% Speed for Champion Units.</AuraDescription>
    15     </Aura1>
    16   </Auras>
     3  <Auras datatype="tokens">brit_hero_boudicca</Auras>
    174  <Identity>
    185    <Civ>brit</Civ>
    196    <Gender>female</Gender>
    207    <SpecificName>Boudicca</SpecificName>
    218    <GenericName>Heroine</GenericName>
  • binaries/data/mods/public/simulation/templates/units/brit_hero_caratacos.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Unit</Affects>
    7       <Modifications>
    8         <UnitMotion.WalkSpeed> <Multiply>1.15</Multiply> </UnitMotion.WalkSpeed>
    9       </Modifications>
    10       <AuraName>Hero Aura</AuraName>
    11       <AuraDescription>All Units +15% speed.</AuraDescription>
    12     </Aura1>
    13   </Auras>
     3  <Auras datatype="tokens">brit_hero_caratacos</Auras>
    144  <Identity>
    155    <Civ>brit</Civ>
    166    <SpecificName>Caratacos</SpecificName>
    177    <History>Caratacos's name is better known in its Romanized form, Caratacus. Under this name he is remembered as a fierce defender of Britain against the Romans after their invasion in 43 AD. Son of King Cunobelin of the Catuvellauni tribe, Caratacos fought for nine years against the Romans with little success, eventually fleeing to the tribes in Wales, where he was defeated decisively. Finally he entered Northern Britain, where was handed over to the Romans. Taken to Rome, Caratacos was allowed to live by the Emperor Claudius and died in Italy.</History>
    188    <Icon>units/celt_hero_caratacos.png</Icon>
  • binaries/data/mods/public/simulation/templates/units/brit_hero_cunobelin.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Unit</Affects>
    8       <Modifications>
    9         <Health.RegenRate> <Add>1</Add> </Health.RegenRate>
    10       </Modifications>
    11       <AuraName>Hero Aura</AuraName>
    12       <AuraDescription>+1 HP per second healing rate for all units.</AuraDescription>
    13       <OverlayIcon>art/textures/ui/session/auras/heal.png</OverlayIcon>
    14     </Aura1>
    15   </Auras>
     3  <Auras datatype="tokens">brit_hero_cunobelin</Auras>
    164  <Identity>
    175    <Civ>brit</Civ>
    186    <SpecificName>Cunobelin</SpecificName>
    197    <History>Cunobelin was a powerful ruler centered in the territory around modern day London. Ruling the Catuvellauni from Camulodunum, he was a warrior king who conquered a neighboring tribe and was referred to by the Romans as the King of the Britons. Eventually Cunobelin retired to become the arch-druid of Siluria, but was taken to Rome with his son upon Caratacos's capture. According to legend, the Apostle Paul baptized Cunobelin into Christianity before he died in Italy.</History>
    208    <Icon>units/celt_hero_cunobelin.png</Icon>
  • binaries/data/mods/public/simulation/templates/units/cart_hero_hamilcar.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Unit</Affects>
    7       <Modifications>
    8         <UnitMotion.WalkSpeed> <Multiply>1.15</Multiply> </UnitMotion.WalkSpeed>
    9       </Modifications>
    10       <AuraName>Lightning Aura</AuraName>
    11       <AuraDescription>All Units +15% speed.</AuraDescription>
    12     </Aura1>
    13   </Auras>
     3  <Auras datatype="tokens">cart_hero_hamilcar</Auras>
    144  <Identity>
    155    <Civ>cart</Civ>
    166    <SpecificName>Ḥimelqart Baraq</SpecificName>
    177    <GenericName>Hamilcar Barca</GenericName>
    188    <History>Father of Hannibal and virtual military dictator of Carthage. Hamilcar Barca was a soldier and politician who excelled along his entire career. Lived 275-228 BC. While overshadowed by his sons, Hamilcar was great general in his own right, earning the nickname Baraq or Barca for the "lightning" speed of his advance.</History>
  • binaries/data/mods/public/simulation/templates/units/cart_hero_hannibal.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_elephant_melee">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Unit</Affects>
    8       <AffectedPlayers>Player Ally</AffectedPlayers>
    9       <Modifications>
    10         <Attack.Ranged.Pierce> <Add>2</Add> </Attack.Ranged.Pierce>
    11         <Attack.Melee.Hack> <Add>2</Add> </Attack.Melee.Hack>
    12         <Attack.Capture.Value> <Add>1</Add> </Attack.Capture.Value>
    13       </Modifications>
    14       <AuraName>Tactician Aura</AuraName>
    15       <AuraDescription>All allied units +2 Attack and +1 Capture within his vision range.</AuraDescription>
    16       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    17     </Aura1>
    18   </Auras>
     3  <Auras datatype="tokens">cart_hero_hannibal</Auras>
    194  <Identity>
    205    <Civ>cart</Civ>
    216    <GenericName>Hannibal Barca</GenericName>
    227    <SpecificName>Ḥannibaʿal Baraq</SpecificName>
    238    <History>Carthage's most famous son. Hannibal Barca was the eldest son of Hamilcar Barca and proved an even greater commander than his father. Lived 247-182 BC. While he ultimately lost the Second Punic War, his victories at Trebia, Lake Trasimene, and Cannae, and the feat of crossing the Alps have secured his position as among the best tacticians and strategists in history.</History>
  • binaries/data/mods/public/simulation/templates/units/cart_hero_maharbal.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_spearman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Cavalry</Affects>
    8       <Modifications>
    9         <Attack.Charge.Hack> <Add>5</Add> </Attack.Charge.Hack>
    10       </Modifications>
    11       <AuraName>Commander Aura</AuraName>
    12       <AuraDescription> +5 Cavalry charge attack within vision range of him (currently useless).</AuraDescription>
    13     </Aura1>
    14   </Auras>
     3  <Auras datatype="tokens">cart_hero_maharbal</Auras>
    154  <Identity>
    165    <Civ>cart</Civ>
    176    <GenericName>Maharbal</GenericName>
    187    <SpecificName>Maharbaʿal</SpecificName>
    198    <History>Maharbal was Hannibal Barca's "brash young cavalry commander" during the 2nd Punic War. He is credited with turning the wing of the legions at Cannae resulting in defeat in which 30,000 of 50,000 Romans were lost, as well as significant contributions to the winning of many other battles during the 2nd Punic War. He is known for having said, after the battle of Cannae, "Hannibal, you know how to win the victory; just not what to do with it."</History>
  • binaries/data/mods/public/simulation/templates/units/gaul_hero_brennus.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Unit</Affects>
    7       <Modifications>
    8         <Looter.Resource.metal> <Add>10</Add> </Looter.Resource.metal>
    9       </Modifications>
    10       <AuraName>Hero Aura</AuraName>
    11       <AuraDescription>+10 Metal loot for every enemy unit killed.</AuraDescription>
    12     </Aura1>
    13   </Auras>
     3  <Auras datatype="tokens">gaul_hero_brennus</Auras>
    144  <Identity>
    155    <Civ>gaul</Civ>
    166    <SpecificName>Brennus</SpecificName>
    177    <History>Brennus is the name which the Roman historians give to the famous leader of the Gauls who took Rome in the time of Camillus. According to Geoffrey of Monmouth, the cleric who wrote “History of the Kings of Britain”, Brennus and his brother Belinus invaded Gaul and sacked Rome in 390 B.C., 'proving' that Britons had conquered Rome, the greatest civilization in the world, long before Rome conquered the Britons. We know from many ancient sources which predate Geoffrey that Rome was indeed sacked, but in 387 not 390, and that the raid was led by a man named Brennos (which was latinized to Brennus), but he and his invading horde were Gallic Senones, not British. In this episode several features of Geoffrey's editing method can be seen: he modified the historical Brennus/Brennos, created the brother Belinus, borrowed the Gallic invasion, but omitted the parts where the Celts seemed weak or foolish. His technique is both additive and subtractive. Like the tale of Trojan origin, the story of the sack of Rome is not pure fabrication; it is a creative rearrangement of the available facts, with details added as necessary. By virtue of their historical association, Beli and Bran are often muddled with the earlier brothers Belinus and Brennus (the sons of Dunvallo Molmutius) who contended for power in northern Britain in around 390 B.C., and were regarded as gods in old Celtic tradition.</History>
    188    <Icon>units/celt_hero_brennus.png</Icon>
  • binaries/data/mods/public/simulation/templates/units/gaul_hero_britomartus.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_spearman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Worker</Affects>
    7       <Modifications>
    8         <ResourceGatherer.BaseSpeed> <Multiply>1.15</Multiply> </ResourceGatherer.BaseSpeed>
    9       </Modifications>
    10       <AuraName>Hero Aura</AuraName>
    11       <AuraDescription>Gathering rates increased with +15% during his lifetime.</AuraDescription>
    12     </Aura1>
    13   </Auras>
     3  <Auras datatype="tokens">gaul_hero_britomartus</Auras>
    144  <Identity>
    155    <Civ>gaul</Civ>
    166    <SpecificName>Britomartus</SpecificName>
    177    <History> The story of how Marcus Claudius Marcellus killed a Gallic leader at Clastidium (222 BC) is typical of such encounters. Advancing with a smallish army, Marcellus met a combined force of Insubrian Gauls and Gaesatae at Clastidium. The Gallic army advanced with the usual rush and terrifying cries, and their king, Britomartus, picking out Marcellus by means of his badges of rank, made for him, shouting a challenge and brandishing his spear. Britomartus was an outstanding figure not only for his size but also for his adornments; for he was resplendent in bright colors and his armor shone with gold and silver. This armor, thought Marcellus, would be a fitting offering to the gods. He charged the Gaul, pierced his bright breastplate and cast him to the ground. It was an easy task to kill Britomartus and strip him of his armor.</History>
    188    <Icon>units/celt_hero_britomartus.png</Icon>
  • binaries/data/mods/public/simulation/templates/units/gaul_hero_vercingetorix.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Unit</Affects>
    8       <Modifications>
    9         <Attack.Ranged.Pierce> <Add>2</Add> </Attack.Ranged.Pierce>
    10         <Attack.Melee.Hack> <Add>2</Add> </Attack.Melee.Hack>
    11         <Attack.Capture.Value> <Add>1</Add> </Attack.Capture.Value>
    12       </Modifications>
    13       <AuraName>Hero Aura</AuraName>
    14       <AuraDescription>+2 Attack and +1 Capture for all units within his aura.</AuraDescription>
    15       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    16     </Aura1>
    17   </Auras>
     3  <Auras datatype="tokens">gaul_hero_vercingetorix</Auras>
    184  <Identity>
    195    <Civ>gaul</Civ>
    206    <SpecificName>Vercingetorix</SpecificName>
    217    <History>The most famous of all Celts, Vercingetorix lead the rebelling Gallic tribes against the might of Rome and Julius Caesar's veteran army in 54 BC. Although successful in defeating several Roman forces, Vercingetorix was unable to defeat Caesar, who eventually surrounded the Celtic leaders in the town of Alesia along with 100,000 men. When a relief army arrived to lift the epic siege, the Romans were out numbered 7 to 1 but still defeated the Celts. Vercingetorix surrendered and was executed.</History>
    228    <Icon>units/celt_hero_vercingetorix.png</Icon>
  • binaries/data/mods/public/simulation/templates/units/iber_hero_caros.xml

     
    22<Entity parent="template_unit_hero_infantry_swordsman">
    33  <Identity>
    44    <Civ>iber</Civ>
    55    <SpecificName>Caros</SpecificName>
    66    <Icon>units/iber_hero_caros.png</Icon>
    7     <Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
     7    <Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
    88    <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>
    99  </Identity>
    1010  <VisualActor>
    1111    <Actor>units/iberians/hero_caros.xml</Actor>
    1212  </VisualActor>
  • binaries/data/mods/public/simulation/templates/units/iber_hero_indibil.xml

     
    22<Entity parent="template_unit_hero_cavalry_spearman">
    33  <Identity>
    44    <Civ>iber</Civ>
    55    <SpecificName>Indibil</SpecificName>
    66    <Icon>units/iber_hero_indibil.png</Icon>
    7     <Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
     7    <Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
    88    <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>
    99  </Identity>
    1010  <VisualActor>
    1111    <Actor>units/iberians/hero_indibil_horse.xml</Actor>
    1212  </VisualActor>
  • binaries/data/mods/public/simulation/templates/units/iber_hero_viriato.xml

     
    22<Entity parent="template_unit_hero_infantry_swordsman">
    33  <Identity>
    44    <Civ>iber</Civ>
    55    <SpecificName>Viriato</SpecificName>
    66    <Icon>units/iber_hero_viriato.png</Icon>
    7     <Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
     7    <Tooltip>Hero Aura: "Tactica Guerilla." TBD.</Tooltip>
    88    <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>
    99  </Identity>
    1010  <VisualActor>
    1111    <Actor>units/iberians/hero_viriato.xml</Actor>
    1212  </VisualActor>
  • binaries/data/mods/public/simulation/templates/units/mace_hero_alexander.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Structure</Affects>
    7       <Modifications>
    8         <TerritoryInfluence.Radius> <Multiply>1.10</Multiply> </TerritoryInfluence.Radius>
    9       </Modifications>
    10       <AuraName>Imperialism Aura</AuraName>
    11       <AuraDescription>+10% territory effect for all buildings while he lives.</AuraDescription>
    12     </Aura1>
    13   </Auras>
     3  <Auras datatype="tokens">mace_hero_alexander</Auras>
    144  <Attack>
    155    <Melee>
    166      <Bonuses>
    177        <Herocide>
    188          <Classes>Hero</Classes>
  • binaries/data/mods/public/simulation/templates/units/mace_hero_demetrius.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Siege</Affects>
    7       <Modifications>
    8         <Attack.Ranged.Crush> <Add>10</Add> </Attack.Ranged.Crush>
    9         <Attack.Melee.Crush> <Add>10</Add> </Attack.Melee.Crush>
    10         <Attack.Ranged.MaxRange> <Multiply>1.15</Multiply> </Attack.Ranged.MaxRange>
    11       </Modifications>
    12       <AuraName>Hero Aura</AuraName>
    13       <AuraDescription>+15% Range and +10 Crush Attack for Siege Engines.</AuraDescription>
    14       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    15     </Aura1>
    16   </Auras>
     3  <Auras datatype="tokens">mace_hero_demetrius</Auras>
    174  <Identity>
    185    <Civ>mace</Civ>
    196    <Lang>greek</Lang>
    207    <GenericName>Demetrius The Besieger</GenericName>
    218    <SpecificName>Dēmḗtrios Poliorkḗtēs</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/mace_hero_philip.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_spearman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Champion</Affects>
    8       <Modifications>
    9         <Attack.Ranged.Pierce> <Add>5</Add> </Attack.Ranged.Pierce>
    10         <Attack.Melee.Hack> <Add>5</Add> </Attack.Melee.Hack>
    11     <Attack.Capture.Value> <Add>2</Add> </Attack.Capture.Value>
    12       </Modifications>
    13       <AuraName>Hero Aura</AuraName>
    14       <AuraDescription>+5 Attack and +2 Capture for Champion Units.</AuraDescription>
    15       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    16     </Aura1>
    17   </Auras>
     3  <Auras datatype="tokens">mace_hero_philip</Auras>
    184  <Identity>
    195    <Civ>mace</Civ>
    206    <Lang>greek</Lang>
    217    <GenericName>Philip II of Macedon</GenericName>
    228    <SpecificName>Phílippos B' ho Makedṓn</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/maur_hero_ashoka.xml

     
    99    <GenericName>Ashoka the Great</GenericName>
    1010    <SpecificName>Aśoka Devānāmpriya</SpecificName>
    1111    <Classes datatype="tokens">Ashoka</Classes>
    1212    <VisibleClasses datatype="tokens">Chariot</VisibleClasses>
    1313    <Icon>units/maur_hero_ashoka.png</Icon>
    14     <Tooltip>Hero Aura: TBD.
    15 Hero Special: "Edicts of Ashoka" - Edict Pillars of Ashoka can be built during Ashoka's lifetime.</Tooltip>
     14    <Tooltip>Hero Special: "Edicts of Ashoka" - Edict Pillars of Ashoka can be built during Ashoka's lifetime.</Tooltip>
    1615    <History>TBD.</History>
    1716  </Identity>
    1817  <VisualActor>
    1918    <Actor>units/mauryans/hero_chariot.xml</Actor>
    2019  </VisualActor>
  • binaries/data/mods/public/simulation/templates/units/maur_hero_maurya.xml

     
    22<Entity parent="template_unit_hero_elephant_melee">
    33  <Identity>
    44    <Civ>maur</Civ>
    55    <GenericName>Chandragupta Maurya</GenericName>
    66    <SpecificName>Chandragupta Maurya</SpecificName>
    7     <Tooltip>Hero Aura: TBD.</Tooltip>
    87    <History>TBD.</History>
    98    <Icon>units/maur_hero_chandragupta.png</Icon>
    109  </Identity>
    1110  <ProductionQueue>
    1211    <BatchTimeModifier>0.7</BatchTimeModifier>
  • binaries/data/mods/public/simulation/templates/units/pers_hero_cyrus.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_spearman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Cavalry</Affects>
    8       <Modifications>
    9         <Attack.Ranged.Pierce> <Add>2</Add> </Attack.Ranged.Pierce>
    10         <Attack.Melee.Hack> <Add>2</Add> </Attack.Melee.Hack>
    11         <Attack.Capture.Value> <Add>1</Add> </Attack.Capture.Value>
    12       </Modifications>
    13       <AuraName>Lead from the Front Aura</AuraName>
    14       <AuraDescription>+2 Attack and +1 Capture for nearby cavalry units.</AuraDescription>
    15       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    16     </Aura1>
    17   </Auras>
     3  <Auras datatype="tokens">pers_hero_cyrus</Auras>
    184  <Identity>
    195    <Civ>pers</Civ>
    206    <GenericName>Cyrus II The Great</GenericName>
    217    <SpecificName>Kurush II</SpecificName>
    228    <Icon>units/pers_hero_cyrus.png</Icon>
  • binaries/data/mods/public/simulation/templates/units/pers_hero_darius.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_archer">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Unit</Affects>
    7       <AffectedPlayers>Player</AffectedPlayers>
    8       <Modifications>
    9         <UnitMotion.WalkSpeed> <Multiply>1.15</Multiply> </UnitMotion.WalkSpeed>
    10       </Modifications>
    11       <AuraName>Leadership Aura</AuraName>
    12       <AuraDescription>+15% Movement Speed of all units.</AuraDescription>
    13     </Aura1>
    14   </Auras>
     3  <Auras datatype="tokens">pers_hero_darius</Auras>
    154  <Footprint replace="">
    165    <Square width="6.0" depth="12.0"/>
    176    <Height>5.0</Height>
    187  </Footprint>
    198  <Identity>
  • binaries/data/mods/public/simulation/templates/units/pers_hero_xerxes.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_archer">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Worker</Affects>
    8       <Modifications>
    9         <Builder.Rate> <Multiply>1.15</Multiply> </Builder.Rate>
    10         <ResourceGatherer.BaseSpeed> <Multiply>1.15</Multiply> </ResourceGatherer.BaseSpeed>
    11       </Modifications>
    12       <AuraName>Administrator Aura</AuraName>
    13       <AuraDescription> +15% Gather Rate and Build Rate of nearby units.</AuraDescription>
    14       <OverlayIcon>art/textures/ui/session/auras/buildgather_bonus.png</OverlayIcon>
    15     </Aura1>
    16   </Auras>
     3  <Auras datatype="tokens">pers_hero_xerxes</Auras>
    174  <Identity>
    185    <Civ>pers</Civ>
    196    <GenericName>Xerxes I</GenericName>
    207    <SpecificName>Xsayarsa I</SpecificName>
    218    <Icon>units/pers_hero_xerxes.png</Icon>
  • binaries/data/mods/public/simulation/templates/units/pers_hero_xerxes_chariot.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_archer">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Worker</Affects>
    8       <Modifications>
    9         <Builder.Rate> <Multiply>1.15</Multiply> </Builder.Rate>
    10         <ResourceGatherer.BaseSpeed> <Multiply>1.15</Multiply> </ResourceGatherer.BaseSpeed>
    11       </Modifications>
    12       <AuraName>Administrator Aura</AuraName>
    13       <AuraDescription> +15% Gather Rate and Build Rate of nearby units.</AuraDescription>
    14       <OverlayIcon>art/textures/ui/session/auras/buildgather_bonus.png</OverlayIcon>
    15     </Aura1>
    16   </Auras>
     3  <Auras datatype="tokens">pers_hero_xerxes</Auras>
    174  <Footprint replace="">
    185    <Square width="6.0" depth="12.0"/>
    196    <Height>5.0</Height>
    207  </Footprint>
    218  <Identity>
  • binaries/data/mods/public/simulation/templates/units/ptol_hero_cleopatra.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_archer">
    3   <Auras>
    4     <unit_attack_speed_20>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Unit</Affects>
    8       <Modifications>
    9         <Attack.Melee.RepeatTime> <Multiply>0.8</Multiply> </Attack.Melee.RepeatTime>
    10         <Attack.Ranged.RepeatTime> <Multiply>0.8</Multiply> </Attack.Ranged.RepeatTime>
    11       </Modifications>
    12       <AuraName>Patriot Aura</AuraName>
    13       <AuraDescription>Egyptian units fight 25% faster in her vision range.</AuraDescription>
    14       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    15     </unit_attack_speed_20>
    16   </Auras>
     3  <Auras datatype="tokens">ptol_hero_cleopatra</Auras>
    174  <Identity>
    185    <Civ>ptol</Civ>
    196    <Gender>female</Gender>
    207    <GenericName>Cleopatra VII</GenericName>
    218    <SpecificName>Kleopatra H' Philopator</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/ptol_hero_ptolemy_I.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_elephant_melee">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>77</Radius>
    7       <Affects>Worker</Affects>
    8       <Modifications>
    9         <Builder.Rate> <Multiply>1.10</Multiply> </Builder.Rate>
    10       </Modifications>
    11       <AuraName>Construction Aura</AuraName>
    12       <AuraDescription>Buildings construct 10% faster within his vision.</AuraDescription>
    13       <OverlayIcon>art/textures/ui/session/auras/build_bonus.png</OverlayIcon>
    14     </Aura1>
    15     <Aura2>
    16       <Type>global</Type>
    17       <Affects>Mercenary</Affects>
    18       <Modifications>
    19         <Cost.Resources.food> <Multiply>0.5</Multiply> </Cost.Resources.food>
    20         <Cost.Resources.wood> <Multiply>0.5</Multiply> </Cost.Resources.wood>
    21         <Cost.Resources.stone> <Multiply>0.5</Multiply> </Cost.Resources.stone>
    22         <Cost.Resources.metal> <Multiply>0.5</Multiply> </Cost.Resources.metal>
    23       </Modifications>
    24       <AuraName>Mercenary Patron Aura</AuraName>
    25       <AuraDescription>Mercenaries cost -50% resources during his lifetime.</AuraDescription>
    26     </Aura2>
    27   </Auras>
     3  <Auras datatype="tokens">ptol_hero_ptolemy_I_1 ptol_hero_ptolemy_I_2</Auras>
    284  <Identity>
    295    <Civ>ptol</Civ>
    306    <GenericName>Ptolemy I "Savior"</GenericName>
    317    <SpecificName>Ptolemaios A' Soter</SpecificName>
    328    <History>Born in 367 BCE, Ptolemy I grew to become one of Alexander the Great's closest friends and generals. He was instrumental in Alexander's later campaigns in Bactria (modern Afghanistan) and India. After Alexander's death, Ptolemy took control of the Satrap of Egypt, and after the Battle of Ipsus became sole ruler of Egypt as "Pharaoh," founding the Ptolemy Dynasty that would rule Egypt for nearly 3 centuries. Ptolemaic Egypt reached the height of its territorial boundaries under his reign as he added Syria, Judea, Cyprus, and parts of Asia Minor to his realm. His reputation for bonhomie and liberality attached the floating soldier-class of Macedonians and Hellenes to his service, and was not insignificant; nor did he wholly neglect conciliation of the native Egyptians. He was a ready patron of letters, founding the Great Library of Alexandria. He himself wrote a history of Alexander's campaigns that has not survived. This used to be considered an objective work, distinguished by its straightforward honesty and sobriety. However, Ptolemy may have exaggerated his own role, and had propagandist aims in writing his History. Although now lost, it was a principal source for the surviving account by Arrian of Nicomedia. Ptolemy died in 283 BCE, the last of the Diodachoi, leaving a well-ordered and stable kingdom to his progeny.</History>
  • binaries/data/mods/public/simulation/templates/units/ptol_hero_ptolemy_IV.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Pike</Affects>
    7       <Modifications>
    8         <Health.Max> <Multiply>1.40</Multiply> </Health.Max>
    9       </Modifications>
    10       <AuraName>Raphia Aura</AuraName>
    11       <AuraDescription>Egyptian Pikemen have 40% greater health during his lifetime.</AuraDescription>
    12     </Aura1>
    13   </Auras>
     3  <Auras datatype="tokens">ptol_hero_ptolemy_IV</Auras>
    144  <Identity>
    155    <Civ>ptol</Civ>
    166    <GenericName>Ptolemy IV "Father Loving"</GenericName>
    177    <SpecificName>Ptolemaios D' Philopator</SpecificName>
    188    <Classes datatype="tokens">PtolemyIV</Classes>
  • binaries/data/mods/public/simulation/templates/units/rome_hero_marcellus.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Unit</Affects>
    8       <Modifications>
    9         <Attack.Ranged.Pierce> <Add>5</Add> </Attack.Ranged.Pierce>
    10         <Attack.Melee.Hack> <Add>5</Add> </Attack.Melee.Hack>
    11         <Attack.Capture.Value> <Add>2</Add> </Attack.Capture.Value>
    12       </Modifications>
    13       <AuraName>Sword of Rome Aura</AuraName>
    14       <AuraDescription>+5 Attack and +2 Capture for Roman units within his vision range.</AuraDescription>
    15       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    16     </Aura1>
    17   </Auras>
     3  <Auras datatype="tokens">rome_hero_marcellus</Auras>
    184  <Identity>
    195    <Civ>rome</Civ>
    206    <Lang>latin</Lang>
    217    <SpecificName>Marcus Claudius Marcellus</SpecificName>
    228    <Icon>units/rome_hero_marcellus.png</Icon>
  • binaries/data/mods/public/simulation/templates/units/rome_hero_maximus.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Unit Structure</Affects>
    7       <Modifications>
    8         <Armour.Pierce> <Add>1</Add> </Armour.Pierce>
    9         <Armour.Hack> <Add>1</Add> </Armour.Hack>
    10         <Armour.Crush> <Add>1</Add> </Armour.Crush>
    11       </Modifications>
    12       <AuraName>Shield of Rome Aura</AuraName>
    13       <AuraDescription>+1 armour for all units and structures.</AuraDescription>
    14     </Aura1>
    15   </Auras>
     3  <Auras datatype="tokens">rome_hero_maximus</Auras>
    164  <Identity>
    175    <Civ>rome</Civ>
    186    <Lang>latin</Lang>
    197    <SpecificName>Quintus Fabius Maximus</SpecificName>
    208    <Icon>units/rome_hero_maximus.png</Icon>
  • binaries/data/mods/public/simulation/templates/units/sele_hero_antiochus_great.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_spearman">
    3   <Auras>
    4     <Aura1>
    5       <Type>global</Type>
    6       <Affects>Cavalry</Affects>
    7       <Modifications>
    8         <Armour.Pierce> <Add>2</Add> </Armour.Pierce>
    9         <Armour.Hack> <Add>2</Add> </Armour.Hack>
    10         <Armour.Crush> <Add>2</Add> </Armour.Crush>
    11       </Modifications>
    12       <AuraName>Ilarchès Aura</AuraName>
    13       <AuraDescription>All cavalry gains +2 levels of all armour types.</AuraDescription>
    14     </Aura1>
    15   </Auras>
     3  <Auras datatype="tokens">sele_hero_antiochus_great</Auras>
    164  <Identity>
    175    <Civ>sele</Civ>
    186    <Lang>greek</Lang>
    197    <GenericName>Antiochus III "The Great"</GenericName>
    208    <SpecificName>Antiokhos G' Mégās</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/sele_hero_antiochus_righteous.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_cavalry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>70</Radius>
    7       <AffectedPlayers>Enemy</AffectedPlayers>
    8       <Affects>Structure Mechanical</Affects>
    9       <Modifications>
    10         <Health.Max> <Multiply>0.8</Multiply> </Health.Max>
    11       </Modifications>
    12       <AuraName>Conquest Aura</AuraName>
    13       <AuraDescription>All nearby enemy buildings, siege engines, and ships have their health reduced by 20%.</AuraDescription>
    14       <OverlayIcon>art/textures/ui/session/auras/health_bonus.png</OverlayIcon>
    15     </Aura1>
    16   </Auras>
     3  <Auras datatype="tokens">sele_hero_antiochus_righteous</Auras>
    174  <Identity>
    185    <Civ>sele</Civ>
    196    <Lang>greek</Lang>
    207    <GenericName>Antiochus IV "The Righteous"</GenericName>
    218    <SpecificName>Antiokhos D' Epiphanes</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/sele_hero_seleucus_victor.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_elephant_melee">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>80</Radius>
    7       <Affects>Elephant</Affects>
    8       <Modifications>
    9         <UnitMotion.WalkSpeed> <Multiply>1.20</Multiply> </UnitMotion.WalkSpeed>
    10         <Attack.Melee.Hack> <Multiply>1.20</Multiply> </Attack.Melee.Hack>
    11         <Attack.Melee.Crush> <Multiply>1.20</Multiply> </Attack.Melee.Crush>
    12       </Modifications>
    13       <AuraName>Zooiarchos Aura</AuraName>
    14       <AuraDescription>Boosts War Elephant attack and speed +20% within his vision.</AuraDescription>
    15       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    16     </Aura1>
    17   </Auras>
     3  <Auras datatype="tokens">sele_hero_seleucus_victor</Auras>
    184  <Identity>
    195    <Civ>sele</Civ>
    206    <Lang>greek</Lang>
    217    <GenericName>Seleucus I "The Victor"</GenericName>
    228    <SpecificName>Seleukos A' Nikator</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/spart_hero_agis.xml

     
    66  <Identity>
    77    <Civ>spart</Civ>
    88    <Lang>greek</Lang>
    99    <GenericName>Agis III</GenericName>
    1010    <SpecificName>Agis</SpecificName>
    11     <Tooltip>No hero aura. Has 2x health of other infantry heroes. Basically a very tough hoplite.</Tooltip>
    1211    <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>
    1312    <Icon>units/spart_hero_agis.png</Icon>
    1413  </Identity>
    1514  <VisualActor>
    1615    <Actor>units/spartans/agis.xml</Actor>
  • binaries/data/mods/public/simulation/templates/units/spart_hero_brasidas.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_swordsman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>60</Radius>
    7       <Affects>Javelin</Affects>
    8       <Modifications>
    9         <Attack.Ranged.Pierce> <Add>2</Add> </Attack.Ranged.Pierce>
    10         <Armour.Pierce> <Add>1</Add> </Armour.Pierce>
    11         <Armour.Hack>   <Add>1</Add> </Armour.Hack>
    12         <Armour.Crush>  <Add>1</Add> </Armour.Crush>
    13       </Modifications>
    14       <AuraName>Helot Reforms</AuraName>
    15       <AuraDescription>Helot Skirmishers within sight of him gain +2 attack and +1 all armor types.</AuraDescription>
    16       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    17     </Aura1>
    18   </Auras>
     3  <Auras datatype="tokens">spart_hero_brasidas</Auras>
    194  <Identity>
    205    <Civ>spart</Civ>
    216    <Lang>greek</Lang>
    227    <GenericName>Brasidas</GenericName>
    238    <SpecificName>Brasidas</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/spart_hero_leonidas.xml

     
    11<?xml version="1.0" encoding="utf-8"?>
    22<Entity parent="template_unit_hero_infantry_spearman">
    3   <Auras>
    4     <Aura1>
    5       <Type>range</Type>
    6       <Radius>30</Radius>
    7       <Affects>Spear</Affects>
    8       <Modifications>
    9         <Attack.Melee.Hack> <Multiply>1.20</Multiply> </Attack.Melee.Hack>
    10         <Attack.Melee.Pierce> <Multiply>1.20</Multiply> </Attack.Melee.Pierce>
    11         <Attack.Melee.Crush> <Multiply>1.20</Multiply> </Attack.Melee.Crush>
    12         <Attack.Capture.Value> <Add>1</Add> </Attack.Capture.Value>
    13       </Modifications>
    14       <AuraName>Last Stand Aura</AuraName>
    15       <AuraDescription>+20% Attack and +1 Capture for nearby Hoplites and Spartiates.</AuraDescription>
    16       <OverlayIcon>art/textures/ui/session/auras/attack_bonus.png</OverlayIcon>
    17     </Aura1>
    18   </Auras>
     3  <Auras datatype="tokens">spart_hero_leonidas</Auras>
    194  <Identity>
    205    <Civ>spart</Civ>
    216    <Lang>greek</Lang>
    227    <GenericName>Leonidas I</GenericName>
    238    <SpecificName>Leōnídēs</SpecificName>