Ticket #2614: prodQueue.diff

File prodQueue.diff, 109.7 KB (added by sanderd17, 10 years ago)
  • binaries/data/mods/public/civs/athen.json

     
    167167        "skirmish/units/default_infantry_ranged_b": "units/athen_infantry_slinger_b",
    168168        "skirmish/structures/default_house_10": "structures/{civ}_house"
    169169    },
     170    "TrainableUnits":
     171    [
     172        "units/athen_infantry_spearman_b",
     173        "units/athen_infantry_slinger_b",
     174        "units/athen_cavalry_javelinist_b",
     175        "units/athen_infantry_javelinist_b",
     176        "units/athen_cavalry_javelinist_b",
     177        "units/athen_mechanical_siege_oxybeles_packed",
     178        "units/athen_mechanical_siege_lithobolos_packed",
     179        "units/athen_champion_infantry",
     180        "units/athen_champion_ranged",
     181        "units/athen_hero_themistocles",
     182        "units/athen_hero_pericles",
     183        "units/athen_hero_iphicrates"
     184    ],
    170185    "SelectableInGameSetup": true
    171186}
  • binaries/data/mods/public/civs/brit.json

     
    145145        "skirmish/units/special_starting_unit": "units/brit_war_dog_b",
    146146        "skirmish/structures/default_house_5": "structures/{civ}_house"
    147147    },
     148    "TrainableUnits":
     149    [
     150        "units/brit_infantry_spearman_b",
     151        "units/brit_infantry_slinger_b",
     152        "units/brit_cavalry_javelinist_b",
     153        "units/brit_infantry_javelinist_b",
     154        "units/brit_champion_infantry_barracks",
     155        "units/brit_cavalry_swordsman_b",
     156        "units/brit_champion_cavalry_barracks",
     157        "units/brit_champion_cavalry",
     158        "units/brit_champion_infantry",
     159        "units/brit_hero_boudicca",
     160        "units/brit_hero_caratacos",
     161        "units/brit_hero_cynvelin",
     162        "units/brit_mechanical_siege_ram"
     163    ],
    148164    "SelectableInGameSetup": true
    149165}
  • binaries/data/mods/public/civs/cart.json

     
    170170        "skirmish/units/default_infantry_ranged_b": "units/cart_infantry_archer_b",
    171171        "skirmish/structures/default_house_10": "structures/{civ}_house"
    172172    },
     173    "TrainableUnits":
     174    [
     175        "units/cart_infantry_spearman_b",
     176        "units/cart_infantry_archer_b",
     177        "units/cart_cavalry_javelinist_b",
     178        "units/cart_infantry_swordsman_b",
     179        "units/cart_cavalry_swordsman_2_b",
     180        "units/cart_infantry_javelinist_b",
     181        "units/cart_infantry_slinger_b",
     182        "units/cart_cavalry_swordsman_b",
     183        "units/cart_infantry_swordsman_2_b",
     184        "units/cart_cavalry_spearman_b",
     185        "units/cart_champion_infantry",
     186        "units/cart_champion_cavalry",
     187        "units/cart_hero_hamilcar",
     188        "units/cart_hero_hannibal",
     189        "units/cart_hero_maharbal",
     190        "units/cart_mechanical_siege_ballista_packed",
     191        "units/cart_mechanical_siege_oxybeles_packed",
     192        "units/cart_champion_elephant"
     193    ],
    173194    "SelectableInGameSetup": true
    174195}
  • binaries/data/mods/public/civs/celt.json

     
    168168        "skirmish/structures/default_house_5": "structures/{civ}_house",
    169169        "skirmish/structures/default_fortress": "structures/celt_fortress_g"
    170170    },
     171    "TrainableUnits":
     172    [
     173        "units/celt_infantry_spearman_b",
     174        "units/celt_infantry_javelinist_b",
     175        "units/celt_cavalry_javelinist_b",
     176        "units/celt_infantry_slinger_b",
     177        "units/celt_cavalry_swordsman_b",
     178        "units/celt_mechanical_siege_ram"
     179    ],
    171180    "SelectableInGameSetup": false
    172181}
  • binaries/data/mods/public/civs/gaul.json

     
    137137    {
    138138        "skirmish/structures/default_house_5": "structures/{civ}_house"
    139139    },
     140    "TrainableUnits":
     141    [
     142        "units/gaul_infantry_spearman_b",
     143        "units/gaul_infantry_javelinist_b",
     144        "units/gaul_cavalry_javelinist_b",
     145        "units/gaul_infantry_slinger_b",
     146        "units/gaul_champion_infantry_barracks",
     147        "units/gaul_cavalry_swordsman_b",
     148        "units/gaul_champion_cavalry_barracks",
     149        "units/gaul_champion_cavalry",
     150        "units/gaul_champion_infantry",
     151        "units/gaul_hero_brennus",
     152        "units/gaul_hero_britomartus",
     153        "units/gaul_hero_vercingetorix",
     154        "units/gaul_mechanical_siege_ram"
     155    ],
    140156    "SelectableInGameSetup": true
    141157}
  • binaries/data/mods/public/civs/hele.json

     
    185185        "skirmish/units/default_cavalry": "units/hele_cavalry_swordsman_b",
    186186        "skirmish/structures/default_house_10": "structures/{civ}_house"
    187187    },
     188    "TrainableUnits":
     189    [
     190        "units/hele_infantry_spearman_b",
     191        "units/hele_infantry_javelinist_b",
     192        "units/hele_cavalry_javelinist_b",
     193        "units/hele_infantry_archer_b",
     194        "units/hele_infantry_slinger_b",
     195        "units/hele_cavalry_swordsman_b",
     196        "units/hele_champion_cavalry_mace",
     197        "units/hele_champion_infantry_mace",
     198        "units/hele_champion_infantry_polis",
     199        "units/hele_champion_swordsman_polis",
     200        "units/hele_hero_alexander",
     201        "units/hele_hero_demetrius",
     202        "units/hele_hero_leonidas",
     203        "units/hele_hero_philip",
     204        "units/hele_hero_themistocles",
     205        "units/hele_hero_xenophon",
     206        "units/hele_mechanical_siege_oxybeles_packed",
     207        "units/hele_mechanical_siege_lithobolos_packed",
     208        "units/hele_mechanical_siege_tower"
     209    ],
    188210    "SelectableInGameSetup": false
    189211}
  • binaries/data/mods/public/civs/iber.json

     
    140140        "skirmish/structures/iber_wall_gate": "structures/iber_wall_gate",
    141141        "skirmish/structures/iber_wall_tower": "structures/iber_wall_tower"
    142142    },
     143    "TrainableUnits":
     144    [
     145        "units/iber_infantry_swordsman_b",
     146        "units/iber_infantry_javelinist_b",
     147        "units/iber_cavalry_javelinist_b",
     148        "units/iber_infantry_spearman_b",
     149        "units/iber_infantry_slinger_b",
     150        "units/iber_champion_infantry_barracks",
     151        "units/iber_cavalry_spearman_b",
     152        "units/iber_champion_cavalry_barracks",
     153        "units/iber_champion_infantry",
     154        "units/iber_champion_cavalry",
     155        "units/iber_hero_caros",
     156        "units/iber_hero_indibil",
     157        "units/iber_hero_viriato",
     158        "units/iber_mechanical_siege_ram"
     159    ],
    143160    "SelectableInGameSetup": true
    144161}
  • binaries/data/mods/public/civs/mace.json

     
    170170    {
    171171        "skirmish/structures/default_house_10": "structures/{civ}_house"
    172172    },
     173    "TrainableUnits":
     174    [
     175        "units/mace_infantry_spearman_b",
     176        "units/mace_infantry_javelinist_b",
     177        "units/mace_cavalry_spearman_b",
     178        "units/mace_infantry_archer_b",
     179        "units/mace_infantry_slinger_b",
     180        "units/mace_champion_infantry_a_barracks",
     181        "units/mace_cavalry_javelinist_b",
     182        "units/mace_champion_cavalry_barracks",
     183        "units/mace_champion_infantry_a",
     184        "units/mace_champion_cavalry",
     185        "units/mace_hero_philip",
     186        "units/mace_hero_alexander",
     187        "units/mace_hero_demetrius",
     188        "units/mace_mechanical_siege_oxybeles_packed",
     189        "units/mace_mechanical_siege_lithobolos_packed",
     190        "units/mace_mechanical_siege_ram",
     191        "units/mace_mechanical_siege_tower"
     192    ],
    173193    "SelectableInGameSetup": true
    174194}
  • binaries/data/mods/public/civs/maur.json

     
    153153        "skirmish/units/special_starting_unit": "units/maur_support_elephant",
    154154        "skirmish/structures/default_house_5": "structures/{civ}_house"
    155155    },
     156    "TrainableUnits":
     157    [
     158        "units/maur_infantry_spearman_b",
     159        "units/maur_infantry_archer_b",
     160        "units/maur_cavalry_javelinist_b",
     161        "units/maur_support_elephant",
     162        "units/maur_infantry_swordsman_b",
     163        "units/maur_champion_infantry_barracks",
     164        "units/maur_champion_maiden_barracks",
     165        "units/maur_cavalry_swordsman_b",
     166        "units/maur_champion_chariot_barracks",
     167        "units/maur_champion_infantry",
     168        "units/maur_champion_maiden",
     169        "units/maur_champion_chariot",
     170        "units/maur_hero_chanakya",
     171        "units/maur_hero_maurya",
     172        "units/maur_hero_ashoka",
     173        "units/maur_support_elephant",
     174        "units/maur_elephant_archer_b",
     175        "units/maur_champion_elephant"
     176    ],
    156177    "SelectableInGameSetup": true
    157178}
  • binaries/data/mods/public/civs/pers.json

     
    158158        "skirmish/units/default_infantry_ranged_b": "units/pers_infantry_archer_b",
    159159        "skirmish/structures/default_house_10" : "structures/{civ}_house"
    160160    },
     161    "TrainableUnits":
     162    [
     163        "units/pers_infantry_spearman_b",
     164        "units/pers_infantry_archer_b",
     165        "units/pers_cavalry_javelinist_b",
     166        "units/pers_cavalry_spearman_b",
     167        "units/pers_cavalry_swordsman_b",
     168        "units/pers_cavalry_archer_b",
     169        "units/pers_champion_infantry",
     170        "units/pers_champion_cavalry",
     171        "units/pers_hero_cyrus",
     172        "units/pers_hero_darius",
     173        "units/pers_hero_xerxes",
     174        "units/pers_mechanical_siege_ram",
     175        "units/pers_champion_elephant"
     176    ],
    161177    "SelectableInGameSetup": true
    162178}
  • binaries/data/mods/public/civs/ptol.json

     
    177177        "skirmish/units/default_cavalry": "units/ptol_cavalry_archer_b",
    178178        "skirmish/structures/default_house_5": "structures/{civ}_house"
    179179    },
     180    "TrainableUnits":
     181    [
     182        "units/ptol_infantry_spearman_b",
     183        "units/ptol_infantry_archer_b",
     184        "units/ptol_cavalry_archer_b",
     185        "units/ptol_infantry_slinger_b",
     186        "units/ptol_infantry_spearman_2_b",
     187        "units/ptol_infantry_swordsman_b",
     188        "units/ptol_cavalry_spearman_b",
     189        "units/ptol_cavalry_javelinist_b",
     190        "units/ptol_champion_cavalry",
     191        "units/ptol_hero_ptolemy_I",
     192        "units/ptol_hero_ptolemy_IV",
     193        "units/ptol_hero_cleopatra",
     194        "units/ptol_mechanical_siege_polybolos_packed",
     195        "units/ptol_mechanical_siege_lithobolos_packed",
     196        "units/ptol_mechanical_siege_tower",
     197        "units/ptol_champion_elephant"
     198    ],
    180199    "SelectableInGameSetup": true
    181200}
  • binaries/data/mods/public/civs/rome.json

     
    147147        "skirmish/units/default_infantry_melee_b": "units/rome_infantry_swordsman_b",
    148148        "skirmish/structures/default_house_10" : "structures/{civ}_house"
    149149    },
     150    "TrainableUnits":
     151    [
     152        "units/rome_infantry_swordsman_b",
     153        "units/rome_infantry_javelinist_b",
     154        "units/rome_cavalry_spearman_b",
     155        "units/rome_infantry_spearman_b",
     156        "units/rome_champion_infantry_barracks",
     157        "units/rome_cavalry_javelinist_b",
     158        "units/rome_champion_cavalry_barracks",
     159        "units/rome_champion_infantry",
     160        "units/rome_champion_cavalry",
     161        "units/rome_hero_marcellus",
     162        "units/rome_hero_maximus",
     163        "units/rome_hero_scipio",
     164        "units/rome_mechanical_siege_ballista_packed",
     165        "units/rome_mechanical_siege_scorpio_packed",
     166        "units/rome_mechanical_siege_ram"
     167    ],
    150168    "SelectableInGameSetup": true
    151169}
  • binaries/data/mods/public/civs/sele.json

     
    184184        "skirmish/units/default_cavalry" : "units/sele_cavalry_javelinist",
    185185        "skirmish/structures/default_house_10" : "structures/{civ}_house"
    186186    },
     187    "TrainableUnits":
     188    [
     189            "units/sele_infantry_spearman_2_b",
     190            "units/sele_cavalry_javelinist",
     191            "units/sele_infantry_spearman_b",
     192            "units/sele_infantry_javelinist_b",
     193            "units/sele_cavalry_archer_b",
     194            "units/sele_infantry_swordsman_b",
     195            "units/sele_infantry_archer_b",
     196            "units/sele_cavalry_spearman_b",
     197            "units/sele_champion_infantry_pikeman",
     198            "units/sele_champion_chariot",
     199            "units/sele_champion_infantry_swordsman",
     200            "units/sele_champion_cavalry",
     201            "units/sele_hero_seleucus_victor",
     202            "units/sele_hero_antiochus_great",
     203            "units/sele_hero_antiochus_righteous",
     204            "units/sele_mechanical_siege_lithobolos_packed",
     205            "units/sele_mechanical_siege_tower",
     206            "units/sele_champion_elephant"
     207    ],
    187208    "SelectableInGameSetup": true
    188209}
  • binaries/data/mods/public/civs/spart.json

     
    164164        "skirmish/structures/default_wall_medium": "",
    165165        "skirmish/structures/default_wall_long": ""
    166166    },
     167    "TrainableUnits":
     168    [
     169            "units/spart_infantry_spearman_b",
     170            "units/spart_infantry_javelinist_b",
     171            "units/spart_cavalry_javelinist_b",
     172            "units/spart_champion_infantry_sword",
     173            "units/spart_cavalry_spearman_b",
     174            "units/spart_champion_infantry_spear",
     175            "units/spart_hero_leonidas",
     176            "units/spart_hero_brasidas",
     177            "units/spart_hero_agis",
     178            "units/spart_mechanical_siege_ram",
     179            "units/spart_mechanical_siege_oxybeles_packed"
     180    ],
    167181    "SelectableInGameSetup": true
    168182}
  • binaries/data/mods/public/simulation/components/Player.js

     
    3636    this.cheatsEnabled = false;
    3737    this.cheatTimeMultiplier = 1;
    3838    this.heroes = [];
     39    this.trainableUnits = {};
    3940    this.resourceNames = {
    4041        "food": markForTranslation("Food"),
    4142        "wood": markForTranslation("Wood"),
     
    464465    this.formations = formations;
    465466};
    466467
     468Player.prototype.GetTrainableUnits = function()
     469{
     470    return this.trainableUnits;
     471};
     472
     473Player.prototype.SetTrainableUnits = function(units)
     474{
     475    this.trainableUnits = units;
     476};
     477
    467478Player.prototype.GetStartingCameraPos = function()
    468479{
    469480    return this.startCam.position;
  • binaries/data/mods/public/simulation/components/ProductionQueue.js

     
    1515        "<ref name='nonNegativeDecimal'/>" +
    1616    "</element>" +
    1717    "<optional>" +
    18         "<element name='Entities' a:help='Space-separated list of entity template names that this building can train. The special string \"{civ}\" will be automatically replaced by the building&apos;s four-character civ code'>" +
     18        "<element name='TrainFromJSON' a:help='Set to \"true\" in order to add all entities defined in the civ JSON.'>" +
     19            "<text/>" +
     20        "</element>" +
     21    "</optional>" +
     22    "<optional>" +
     23        "<element name='Entities' a:help='Space-separated list of entity template names that this building can train (in addition to the training group). The special string \"{civ}\" will be automatically replaced by the building&apos;s four-character civ code'>" +
    1924            "<attribute name='datatype'>" +
    2025                "<value>tokens</value>" +
    2126            "</attribute>" +
     
    2328        "</element>" +
    2429    "</optional>" +
    2530    "<optional>" +
     31        "<element name='RequiredClasses' a:help='Require certain classes from the trainable entities'>" +
     32            "<attribute name='datatype'>" +
     33                "<value>tokens</value>" +
     34            "</attribute>" +
     35            "<text/>" +
     36        "</element>" +
     37    "</optional>" +
     38    "<optional>" +
     39        "<element name='ForbiddenClasses' a:help='Forbid certain classes from the trainable entities'>" +
     40            "<attribute name='datatype'>" +
     41                "<value>tokens</value>" +
     42            "</attribute>" +
     43            "<text/>" +
     44        "</element>" +
     45    "</optional>" +
     46    "<optional>" +
    2647        "<element name='Technologies' a:help='Space-separated list of technology names that this building can research.'>" +
    2748            "<attribute name='datatype'>" +
    2849                "<value>tokens</value>" +
     
    6788    this.spawnNotified = false;
    6889   
    6990    this.alertRaiser = undefined;
     91
     92    // Hack for atlas, where the player settings are only set when the game starts
     93    // so update the entities and technologies on the first turn
     94    var cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
     95    cmpTimer.SetTimeout(this.entity, IID_ProductionQueue, "CalculateEntitiesList", 1, {});
     96    cmpTimer.SetTimeout(this.entity, IID_ProductionQueue, "CalculateTechnologiesList", 1, {});
    7097};
    7198
    7299ProductionQueue.prototype.PutUnderAlert = function(raiser)
     
    90117ProductionQueue.prototype.CalculateEntitiesList = function()
    91118{
    92119    this.entitiesList = [];
    93     if (!this.template.Entities)
     120    var cmpPlayer = QueryOwnerInterface(this.entity, IID_Player);
     121    var cmpIdentity = Engine.QueryInterface(this.entity, IID_Identity);
     122    if (!cmpIdentity || !cmpPlayer || cmpPlayer.GetPlayerID() == 0)
    94123        return;
    95    
    96     var string = this.template.Entities._string;
    97     if (!string)
    98         return;
    99    
    100     // Replace the "{civ}" codes with this entity's civ ID
    101     var cmpIdentity = Engine.QueryInterface(this.entity, IID_Identity);
    102     if (cmpIdentity)
    103         string = string.replace(/\{civ\}/g, cmpIdentity.GetCiv());
    104    
    105     var entitiesList = string.split(/\s+/);
    106124
    107     // check if some templates need to show their advanced or elite version
    108     var upgradeTemplate = function(templateName)
     125    // temporary variable to work with
     126    var ents = [];
     127    // add the entities defined in the template
     128    if (this.template.Entities && this.template.Entities._string)
     129        ents = ents.concat(this.template.Entities._string.split(/\s+/));
     130
     131    // add the entities defined in the civ.json
     132    if (this.template.TrainFromJSON && this.template.TrainFromJSON == "true")
     133        ents = ents.concat(cmpPlayer.GetTrainableUnits());
     134
     135    var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
     136    var playerID = cmpPlayer.GetPlayerID();
     137
     138    var requiredClasses, forbiddenClasses;
     139    if (this.template.RequiredClasses)
     140        requiredClasses = this.template.RequiredClasses._string;
     141    if (this.template.ForbiddenClasses)
     142        forbiddenClasses = this.template.ForbiddenClasses._string;
     143
     144    // function to check if some templates need to show their advanced or elite version
     145    // Also filters the entities already in the list based on their classes
     146    var upgradeAndFilterTemplate = function(templateName)
    109147    {
    110148        var template = cmpTemplateManager.GetTemplate(templateName);
    111149        while (template && template.Promotion !== undefined)
     
    116154            templateName = template.Promotion.Entity;
    117155            template = cmpTemplateManager.GetTemplate(templateName);
    118156        }
     157        if (!template || !template.Identity)
     158            return null;
     159        var classes = GetIdentityClasses(template.Identity);
     160        if (requiredClasses && !MatchesClassList(classes, requiredClasses))
     161            return null;
     162        if (forbiddenClasses && MatchesClassList(classes, requiredClasses))
     163            return null;
    119164        return templateName;
    120165    };
    121166
    122     var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
    123     var playerID = QueryOwnerInterface(this.entity, IID_Player).GetPlayerID();
    124     for each (var templateName in entitiesList)
    125         this.entitiesList.push(upgradeTemplate(templateName));
    126     for each (var item in this.queue)
     167    for (var i = 0; i <  ents.length; i++)
    127168    {
     169        var templateName = ents[i].replace(/\{civ\}/g, cmpPlayer.GetCiv());
     170        templateName = upgradeAndFilterTemplate(templateName);
     171        if (templateName)
     172            this.entitiesList.push(templateName);
     173    }
     174    // also update the queue, to produce more advanced units in case they should be upgraded now
     175    for (var item of this.queue)
     176    {
    128177        if (item.unitTemplate)
    129             item.unitTemplate = upgradeTemplate(item.unitTemplate);
     178        {
     179            var templateName = upgradeAndFilterTemplate(item.unitTemplate);
     180            if (templateName)
     181                item.unitTemplate = templateName;
     182        }
    130183    }
    131184};
    132185
     
    135188 */
    136189ProductionQueue.prototype.GetTechnologiesList = function()
    137190{
     191    return this.technologiesList
     192};
     193
     194ProductionQueue.prototype.CalculateTechnologiesList = function()
     195{
     196    this.technologiesList = [];
    138197    if (!this.template.Technologies)
    139         return [];
     198        return;
    140199   
    141200    var string = this.template.Technologies._string;
    142201    if (!string)
    143         return [];
     202        return;
    144203   
    145204    var cmpTechnologyManager = QueryOwnerInterface(this.entity, IID_TechnologyManager);
    146205    if (!cmpTechnologyManager)
    147         return [];
     206        return;
    148207   
    149208    var techs = string.split(/\s+/);
    150209    var techList = [];
     
    174233        techList[i] = tech;
    175234    }
    176235   
    177     var ret = []
    178    
    179236    // This inserts the techs into the correct positions to line up the technology pairs
    180237    for (var i = 0; i < techList.length; i++)
    181238    {
     
    182239        var tech = techList[i];
    183240        if (!tech)
    184241        {
    185             ret[i] = undefined;
     242            this.technologiesList[i] = undefined;
    186243            continue;
    187244        }
    188245       
    189246        var template = cmpTechnologyManager.GetTechnologyTemplate(tech);
    190247        if (template.top)
    191             ret[i] = {"pair": true, "top": template.top, "bottom": template.bottom};
     248            this.technologiesList[i] = {"pair": true, "top": template.top, "bottom": template.bottom};
    192249        else
    193             ret[i] = tech;
     250            this.technologiesList[i] = tech;
    194251    }
    195    
    196     return ret;
    197252};
    198253
    199254ProductionQueue.prototype.IsTechnologyResearchedOrInProgress = function(tech)
     
    324379                "timeTotal": time*1000,
    325380                "timeRemaining": time*1000,
    326381            });
     382            this.CalculateTechnologiesList();
    327383        }
    328384        else
    329385        {
     
    406462            // item.player is used as this.entity's owner may be invalid (deletion, etc.)
    407463            var cmpTechnologyManager = QueryPlayerIDInterface(item.player, IID_TechnologyManager);
    408464            cmpTechnologyManager.StoppedResearch(item.technologyTemplate);
     465            this.CalculateTechnologiesList();
    409466        }
    410467       
    411468        // Remove from the queue
     
    474531            cmpPlayer.UnBlockTraining();
    475532    }
    476533    if (msg.to != -1)
     534    {
    477535        this.CalculateEntitiesList();
     536        this.CalculateTechnologiesList();
     537    }
    478538
    479539    // Reset the production queue whenever the owner changes.
    480540    // (This should prevent players getting surprised when they capture
     
    774834        this.CalculateEntitiesList();
    775835};
    776836
     837ProductionQueue.prototype.OnGlobalTemplateModification = function()
     838{
     839    this.CalculateTechnologiesList();
     840};
     841
    777842Engine.RegisterComponentType(IID_ProductionQueue, "ProductionQueue", ProductionQueue);
  • binaries/data/mods/public/simulation/helpers/Player.js

     
    123123                cmpPlayer.SetFormations(rawFormations.Formations);
    124124            }
    125125
     126            var trainableUnits = getSetting(pData, pDefs, "TrainableUnits");
     127            if (trainableUnits !== undefined)
     128                cmpPlayer.SetTrainableUnits(trainableUnits);
     129            else
     130            {
     131                var data = Engine.ReadCivJSONFile(cmpPlayer.GetCiv()+".json");
     132                if (data && data.TrainableUnits)
     133                    cmpPlayer.SetTrainableUnits(data.TrainableUnits);
     134            }
     135
     136
    126137            var startCam = getSetting(pData, pDefs, "StartingCamera");
    127138            if (startCam !== undefined)
    128139                cmpPlayer.SetStartingCamera(startCam.Position, startCam.Rotation);
  • binaries/data/mods/public/simulation/templates/structures/athen_barracks.xml

     
    2222    <Static width="20.0" depth="20.0"/>
    2323  </Obstruction>
    2424  <ProductionQueue>
    25     <Entities datatype="tokens">
    26       units/athen_infantry_spearman_b
    27       units/athen_infantry_javelinist_b
    28       units/athen_infantry_slinger_b
    29       units/athen_cavalry_swordsman_b
    30       units/athen_cavalry_javelinist_b
    31     </Entities>
    3225    <Technologies datatype="tokens">
    3326      -unlock_champion_units
    3427      upgrade_rank_advanced_infantry
  • binaries/data/mods/public/simulation/templates/structures/athen_civil_centre.xml

     
    99    <History>The most important place in Athens, the Agora served many purposes; it was a place for public speeches and was the stage for civic life and commercial interests.</History>
    1010  </Identity>
    1111  <ProductionQueue>
    12     <Entities datatype="tokens">
    13       units/athen_infantry_spearman_b
    14       units/athen_infantry_slinger_b
    15       units/athen_cavalry_javelinist_b
    16     </Entities>
    1712    <Technologies datatype="tokens">
    1813      -phase_town_generic
    1914      phase_town_athen
  • binaries/data/mods/public/simulation/templates/structures/athen_fortress.xml

     
    1414    <Static width="24.0" depth="26.0"/>
    1515  </Obstruction>
    1616  <ProductionQueue>
    17     <Entities datatype="tokens">
    18       units/athen_mechanical_siege_oxybeles_packed
    19       units/athen_mechanical_siege_lithobolos_packed
    20     </Entities>
     17    <RequiredClasses datatype="tokens" replace="">
     18      Siege
     19    </RequiredClasses>
    2120    <Technologies datatype="tokens">
    2221      -pair_champ_02
    2322      pair_siege_attack_pack
  • binaries/data/mods/public/simulation/templates/structures/athen_gymnasion.xml

     
    3535  </Sound>
    3636  <ProductionQueue>
    3737    <BatchTimeModifier>0.7</BatchTimeModifier>
    38     <Entities datatype="tokens">
    39       units/athen_champion_infantry
    40       units/athen_champion_ranged
    41     </Entities>
     38    <TrainFromJSON>true</TrainFromJSON>
     39    <RequiredClasses datatype="tokens">Champion</RequiredClasses>
    4240    <Technologies datatype="tokens">
    4341      pair_champ_02
    4442    </Technologies>
  • binaries/data/mods/public/simulation/templates/structures/athen_prytaneion.xml

     
    3939  </Sound>
    4040  <ProductionQueue>
    4141    <BatchTimeModifier>0.7</BatchTimeModifier>
    42     <Entities datatype="tokens">
    43       units/athen_hero_themistocles
    44       units/athen_hero_pericles
    45       units/athen_hero_iphicrates
    46     </Entities>
     42    <TrainFromJSON>true</TrainFromJSON>
     43    <RequiredClasses datatype="tokens">Hero</RequiredClasses>
    4744    <Technologies datatype="tokens">
    4845      hellenes/special_long_walls
    4946      hellenes/special_iphicratean_reforms
     
    5249  <VisualActor>
    5350    <Actor>structures/athenians/prytaneion.xml</Actor>
    5451  </VisualActor>
    55 </Entity>
    56  No newline at end of file
     52</Entity>
  • binaries/data/mods/public/simulation/templates/structures/brit_barracks.xml

     
    1919    <Static width="20.0" depth="20.0"/>
    2020  </Obstruction>
    2121  <ProductionQueue>
    22     <Entities datatype="tokens">
    23       units/brit_infantry_spearman_b
    24       units/brit_infantry_javelinist_b
    25       units/brit_infantry_slinger_b
    26       units/brit_champion_infantry_barracks
    27       units/brit_cavalry_swordsman_b
    28       units/brit_cavalry_javelinist_b
    29       units/brit_champion_cavalry_barracks
    30     </Entities>
    3122    <Technologies datatype="tokens">
    3223      upgrade_rank_advanced_infantry
    3324      upgrade_rank_advanced_cavalry
  • binaries/data/mods/public/simulation/templates/structures/brit_civil_centre.xml

     
    1515  <Obstruction>
    1616    <Static width="25.0" depth="25.0"/>
    1717  </Obstruction>
    18   <ProductionQueue>
    19     <Entities datatype="tokens">
    20       units/brit_infantry_spearman_b
    21       units/brit_infantry_slinger_b
    22       units/brit_cavalry_javelinist_b
    23     </Entities>
    24   </ProductionQueue>
    2518  <VisualActor>
    2619    <Actor>structures/britons/civic_centre.xml</Actor>
    2720    <FoundationActor>structures/fndn_6x6.xml</FoundationActor>
  • binaries/data/mods/public/simulation/templates/structures/brit_fortress.xml

     
    3333    </SoundGroups>
    3434  </Sound>
    3535  <ProductionQueue>
    36     <Entities datatype="tokens">
    37       units/brit_hero_boudicca
    38       units/brit_hero_caratacos
    39       units/brit_hero_cynvelin
    40       units/brit_champion_cavalry
    41       units/brit_champion_infantry
    42       units/brit_mechanical_siege_ram
    43     </Entities>
    4436    <Technologies datatype="tokens">
    4537      pair_siege_attack_cost
    4638      pair_siege_cost_armor
  • binaries/data/mods/public/simulation/templates/structures/cart_barracks.xml

     
    2323    <Static width="22.0" depth="23.0"/>
    2424  </Obstruction>
    2525  <ProductionQueue>
    26     <Entities datatype="tokens">
    27       units/cart_infantry_spearman_b
    28       units/cart_infantry_archer_b
    29       units/cart_cavalry_javelinist_b
    30     </Entities>
    3126    <Technologies datatype="tokens">
    3227      -unlock_champion_units
    3328    </Technologies>
  • binaries/data/mods/public/simulation/templates/structures/cart_civil_centre.xml

     
    99    <SpawnEntityOnDeath>rubble/rubble_kart_cc</SpawnEntityOnDeath>
    1010  </Health>
    1111  <ProductionQueue>
    12     <Entities datatype="tokens">
    13       units/cart_infantry_spearman_b
    14       units/cart_infantry_archer_b
    15       units/cart_cavalry_javelinist_b
    16     </Entities>
    1712    <Technologies datatype="tokens">
    1813      carthaginians/special_colonisation
    1914    </Technologies>
  • binaries/data/mods/public/simulation/templates/structures/cart_fortress.xml

     
    1414    <Static width="26.0" depth="28.0"/>
    1515  </Obstruction>
    1616  <ProductionQueue>
    17     <Entities datatype="tokens">
    18       units/cart_hero_hamilcar
    19       units/cart_hero_hannibal
    20       units/cart_hero_maharbal
    21       units/cart_champion_elephant
    22       units/cart_mechanical_siege_ballista_packed
    23       units/cart_mechanical_siege_oxybeles_packed
    24     </Entities>
    2517    <Technologies datatype="tokens">
    2618      pair_siege_attack_pack
    2719      pair_siege_cost_armor
  • binaries/data/mods/public/simulation/templates/structures/celt_barracks.xml

     
    1919    <Static width="20.0" depth="20.0"/>
    2020  </Obstruction>
    2121  <ProductionQueue>
    22     <Entities datatype="tokens">
    23       units/celt_infantry_spearman_b
    24       units/celt_infantry_javelinist_b
    25       units/celt_infantry_slinger_b
    26       units/celt_cavalry_swordsman_b
    27       units/celt_cavalry_javelinist_b
    28     </Entities>
    2922    <Technologies datatype="tokens">
    3023      upgrade_rank_advanced_infantry
    3124      upgrade_rank_advanced_cavalry
  • binaries/data/mods/public/simulation/templates/structures/celt_civil_centre.xml

     
    1616    <Static width="25.0" depth="25.0"/>
    1717  </Obstruction>
    1818  <ProductionQueue>
    19     <Entities datatype="tokens">
    20       units/celt_infantry_spearman_b
    21       units/celt_infantry_javelinist_b
    22       units/celt_cavalry_javelinist_b
    23     </Entities>
    2419    <Technologies datatype="tokens">
    2520      -phase_city_generic
    2621      phase_city_pair_celts
  • binaries/data/mods/public/simulation/templates/structures/gaul_barracks.xml

     
    1919    <Static width="20.0" depth="20.0"/>
    2020  </Obstruction>
    2121  <ProductionQueue>
    22     <Entities datatype="tokens">
    23       units/gaul_infantry_spearman_b
    24       units/gaul_infantry_javelinist_b
    25       units/gaul_infantry_slinger_b
    26       units/gaul_champion_infantry_barracks
    27       units/gaul_cavalry_swordsman_b
    28       units/gaul_cavalry_javelinist_b
    29       units/gaul_champion_cavalry_barracks
    30     </Entities>
    3122    <Technologies datatype="tokens">
    3223      upgrade_rank_advanced_infantry
    3324      upgrade_rank_advanced_cavalry
  • binaries/data/mods/public/simulation/templates/structures/gaul_civil_centre.xml

     
    1515  <Obstruction>
    1616    <Static width="25.0" depth="25.0"/>
    1717  </Obstruction>
    18   <ProductionQueue>
    19     <Entities datatype="tokens">
    20       units/gaul_infantry_spearman_b
    21       units/gaul_infantry_javelinist_b
    22       units/gaul_cavalry_javelinist_b
    23     </Entities>
    24   </ProductionQueue>
    2518  <VisualActor>
    2619    <Actor>structures/gauls/civic_centre.xml</Actor>
    2720  </VisualActor>
  • binaries/data/mods/public/simulation/templates/structures/gaul_fortress.xml

     
    1717    </SoundGroups>
    1818  </Sound>
    1919  <ProductionQueue>
    20     <Entities datatype="tokens">
    21       units/gaul_hero_brennus
    22       units/gaul_hero_britomartus
    23       units/gaul_hero_vercingetorix
    24       units/gaul_champion_cavalry
    25       units/gaul_champion_infantry
    26       units/gaul_mechanical_siege_ram
    27     </Entities>
    2820    <Technologies datatype="tokens">
    2921      pair_siege_attack_cost
    3022      pair_siege_cost_armor
  • binaries/data/mods/public/simulation/templates/structures/hele_barracks.xml

     
    2424    <Static width="20.0" depth="20.0"/>
    2525  </Obstruction>
    2626  <ProductionQueue>
    27     <Entities datatype="tokens">
    28       units/hele_infantry_spearman_b
    29       units/hele_infantry_javelinist_b
    30       units/hele_infantry_archer_b
    31       units/hele_infantry_slinger_b
    32       units/hele_cavalry_swordsman_b
    33       units/hele_cavalry_javelinist_b
    34     </Entities>
    3527    <Technologies datatype="tokens">
    3628      -unlock_champion_units
    3729      upgrade_rank_advanced_infantry
  • binaries/data/mods/public/simulation/templates/structures/hele_civil_centre.xml

     
    1212    <SpecificName>Agorā́</SpecificName>
    1313    <History>The most important place in most Classical Greek poleis, the Agora served many purposes; it was a place for public speeches and was the stage for civic life and commercial interests.</History>
    1414  </Identity>
    15   <ProductionQueue>
    16     <Entities datatype="tokens">
    17       units/hele_infantry_spearman_b
    18       units/hele_infantry_javelinist_b
    19       units/hele_cavalry_javelinist_b
    20     </Entities>
    21   </ProductionQueue>
    2215  <VisualActor>
    2316    <Actor>structures/hellenes/civic_centre_new.xml</Actor>
    2417  </VisualActor>
  • binaries/data/mods/public/simulation/templates/structures/hele_fortress.xml

     
    2020    <Static width="24.0" depth="26.0"/>
    2121  </Obstruction>
    2222  <ProductionQueue>
    23     <Entities datatype="tokens">
    24       units/hele_mechanical_siege_oxybeles_packed
    25       units/hele_mechanical_siege_lithobolos_packed
    26       units/hele_mechanical_siege_tower
    27     </Entities>
     23    <RequiredClasses datatype="tokens">
     24      -Hero
     25      -Champion
     26    </RequiredClasses>
    2827    <Technologies datatype="tokens">
    2928      pair_siege_attack_pack
    3029      pair_siege_cost_armor
  • binaries/data/mods/public/simulation/templates/structures/iber_barracks.xml

     
    1212    <History>The Iberians did not have standing armies in the sense that we know of them elsewhere or of today. Citizens were expected to take up arms whenever called by necessity.</History>
    1313  </Identity>
    1414  <ProductionQueue>
    15     <Entities datatype="tokens">
    16       units/iber_infantry_spearman_b
    17       units/iber_infantry_swordsman_b
    18       units/iber_infantry_javelinist_b
    19       units/iber_infantry_slinger_b
    20       units/iber_champion_infantry_barracks
    21       units/iber_cavalry_spearman_b
    22       units/iber_cavalry_javelinist_b
    23       units/iber_champion_cavalry_barracks
    24     </Entities>
    2515    <Technologies datatype="tokens">
    2616      upgrade_rank_advanced_infantry
    2717      upgrade_rank_advanced_cavalry
  • binaries/data/mods/public/simulation/templates/structures/iber_civil_centre.xml

     
    88  <Health>
    99    <SpawnEntityOnDeath>rubble/rubble_iber_cc</SpawnEntityOnDeath>
    1010  </Health>
    11   <ProductionQueue>
    12     <Entities datatype="tokens">
    13       units/iber_infantry_swordsman_b
    14       units/iber_infantry_javelinist_b
    15       units/iber_cavalry_javelinist_b
    16     </Entities>
    17   </ProductionQueue>
    1811  <VisualActor>
    1912    <Actor>structures/iberians/civil_centre.xml</Actor>
    2013  </VisualActor>
  • binaries/data/mods/public/simulation/templates/structures/iber_fortress.xml

     
    2020    <Static width="27.0" depth="27.0"/>
    2121  </Obstruction>
    2222  <ProductionQueue>
    23     <Entities datatype="tokens">
    24       units/iber_hero_caros
    25       units/iber_hero_indibil
    26       units/iber_hero_viriato
    27       units/iber_champion_infantry
    28       units/iber_champion_cavalry
    29       units/iber_mechanical_siege_ram
    30     </Entities>
    3123    <Technologies datatype="tokens">
    3224      pair_siege_attack_cost
    3325      pair_siege_cost_armor
  • binaries/data/mods/public/simulation/templates/structures/mace_barracks.xml

     
    2222    <Static width="20.0" depth="20.0"/>
    2323  </Obstruction>
    2424  <ProductionQueue>
    25     <Entities datatype="tokens">
    26       units/mace_infantry_spearman_b
    27       units/mace_infantry_javelinist_b
    28       units/mace_infantry_archer_b
    29       units/mace_infantry_slinger_b
    30       units/mace_champion_infantry_a_barracks
    31       units/mace_cavalry_spearman_b
    32       units/mace_cavalry_javelinist_b
    33       units/mace_champion_cavalry_barracks
    34     </Entities>
    3525    <Technologies datatype="tokens">
    3626      upgrade_rank_advanced_infantry
    3727      upgrade_rank_elite_infantry
  • binaries/data/mods/public/simulation/templates/structures/mace_civil_centre.xml

     
    88    <SpecificName>Agorā́</SpecificName>
    99    <History>The most important place in most Classical Greek poleis, the Agora served many purposes; it was a place for public speeches and was the stage for civic life and commercial interests.</History>
    1010  </Identity>
    11   <ProductionQueue>
    12     <Entities datatype="tokens">
    13       units/mace_infantry_spearman_b
    14       units/mace_infantry_javelinist_b
    15       units/mace_cavalry_spearman_b
    16     </Entities>
    17   </ProductionQueue>
    1811  <VisualActor>
    1912    <Actor>structures/macedonians/civic_centre.xml</Actor>
    2013  </VisualActor>
  • binaries/data/mods/public/simulation/templates/structures/mace_fortress.xml

     
    2020    <Static width="24.0" depth="26.0"/>
    2121  </Obstruction>
    2222  <ProductionQueue>
    23     <Entities datatype="tokens">
    24       units/mace_hero_philip
    25       units/mace_hero_alexander
    26       units/mace_hero_demetrius
    27       units/mace_champion_infantry_a
    28       units/mace_champion_cavalry
    29     </Entities>
     23    <RequiredClasses datatype="tokens">
     24      -Siege
     25    </RequiredClasses>
    3026    <Technologies datatype="tokens">
    3127      successors/upgrade_mace_silvershields
    3228    </Technologies>
  • binaries/data/mods/public/simulation/templates/structures/maur_barracks.xml

     
    1313    <Static width="20.0" depth="20.0"/>
    1414  </Obstruction>
    1515  <ProductionQueue>
    16     <Entities datatype="tokens">
    17       units/maur_infantry_spearman_b
    18       units/maur_infantry_swordsman_b
    19       units/maur_infantry_archer_b
    20       units/maur_champion_infantry_barracks
    21       units/maur_champion_maiden_barracks
    22       units/maur_cavalry_swordsman_b
    23       units/maur_cavalry_javelinist_b
    24       units/maur_champion_chariot_barracks
    25     </Entities>
    2616    <Technologies datatype="tokens">
    2717      mauryans/special_archery_tradition
    2818    </Technologies>
     
    3020  <VisualActor>
    3121    <Actor>structures/mauryans/barracks.xml</Actor>
    3222  </VisualActor>
    33 </Entity>
    34  No newline at end of file
     23</Entity>
  • binaries/data/mods/public/simulation/templates/structures/maur_civil_centre.xml

     
    1515  <Obstruction>
    1616    <Static width="36.0" depth="30.0"/>
    1717  </Obstruction>
    18   <ProductionQueue>
    19     <Entities datatype="tokens">
    20       units/maur_infantry_spearman_b
    21       units/maur_infantry_archer_b
    22       units/maur_cavalry_javelinist_b
    23       units/maur_support_elephant
    24     </Entities>
    25   </ProductionQueue>
    2618  <VisualActor>
    2719    <Actor>structures/mauryans/civil_centre.xml</Actor>
    2820  </VisualActor>
  • binaries/data/mods/public/simulation/templates/structures/maur_fortress.xml

     
    77    <Tooltip>Train heroes and champion units.</Tooltip>
    88  </Identity>
    99  <ProductionQueue>
    10     <Entities datatype="tokens">
    11       units/maur_hero_chanakya
    12       units/maur_hero_maurya
    13       units/maur_hero_ashoka
    14       units/maur_champion_infantry
    15       units/maur_champion_maiden
    16       units/maur_champion_chariot
    17     </Entities>
     10    <ForbiddenClasses datatype="tokens">
     11      Elephant
     12    </ForbiddenClasses>
    1813    <Technologies datatype="tokens">
    1914      pair_champ_02
    2015    </Technologies>
  • binaries/data/mods/public/simulation/templates/structures/pers_barracks.xml

     
    88    <Icon>structures/pers_barracks.png</Icon>
    99  </Identity>
    1010  <ProductionQueue>
    11     <Entities datatype="tokens">
    12       units/pers_infantry_spearman_b
    13       units/pers_infantry_javelinist_b
    14       units/pers_infantry_archer_b
    15     </Entities>
     11    <RequiredClasses datatype="tokens" replace="">
     12      CitizenSoldier+Infantry
     13      Extra+Champion+Infantry
     14    </RequiredClasses>
    1615    <Technologies datatype="tokens">
    1716      persians/training_levy_infantry
    1817      persians/training_conscription_infantry
  • binaries/data/mods/public/simulation/templates/structures/pers_civil_centre.xml

     
    1010    <SpawnEntityOnDeath>rubble/rubble_pers_cc</SpawnEntityOnDeath>
    1111  </Health>
    1212  <ProductionQueue>
    13     <Entities datatype="tokens">
    14       units/pers_infantry_spearman_b
    15       units/pers_infantry_archer_b
    16       units/pers_cavalry_javelinist_b
    17     </Entities>
    1813    <Technologies datatype="tokens">
    1914      persians/persian_architecture
    2015    </Technologies>
  • binaries/data/mods/public/simulation/templates/structures/pers_fortress.xml

     
    77    <Tooltip>Train Champion Cavalry and Construct Siege Rams.</Tooltip>
    88  </Identity>
    99  <ProductionQueue>
    10     <Entities datatype="tokens">
    11       units/pers_champion_cavalry
    12       units/pers_mechanical_siege_ram
    13     </Entities>
     10    <RequiredClasses replace="" datatype="tokens">
     11      Champion+Cavalry
     12      Siege
     13    </RequiredClasses>
    1414    <Technologies datatype="tokens">
    1515      pair_siege_attack_cost
    1616      pair_siege_cost_armor
  • binaries/data/mods/public/simulation/templates/structures/pers_stables.xml

     
    2929    <Static width="18.0" depth="16.0"/>
    3030  </Obstruction>
    3131  <ProductionQueue>
    32     <Entities datatype="tokens">
    33       units/pers_cavalry_spearman_b
    34       units/pers_cavalry_swordsman_b
    35       units/pers_cavalry_javelinist_b
    36       units/pers_cavalry_archer_b
    37     </Entities>
     32    <RequiredClasses datatype="tokens" replace="">
     33      CitizenSoldier+Cavalry
     34      Champion+Extra+Cavalry
     35    </RequiredClasses>
    3836    <Technologies datatype="tokens">
    3937      -pair_levy_01
    4038      -training_conscription
  • binaries/data/mods/public/simulation/templates/structures/ptol_barracks.xml

     
    2222    <Static width="20.0" depth="20.0"/>
    2323  </Obstruction>
    2424  <ProductionQueue>
    25     <Entities datatype="tokens">
    26       units/ptol_infantry_spearman_b
    27       units/ptol_infantry_archer_b
    28       units/ptol_infantry_slinger_b
    29       units/ptol_cavalry_archer_b
    30     </Entities>
    3125    <Technologies datatype="tokens">
    3226      -unlock_champion_units
    3327    </Technologies>
  • binaries/data/mods/public/simulation/templates/structures/ptol_civil_centre.xml

     
    1515    <SpecificName>pr-'a</SpecificName>
    1616    <History>?</History>
    1717  </Identity>
    18   <ProductionQueue>
    19     <Entities datatype="tokens">
    20       units/ptol_infantry_spearman_b
    21       units/ptol_infantry_archer_b
    22       units/ptol_cavalry_archer_b
    23     </Entities>
    24   </ProductionQueue>
    2518  <VisualActor>
    2619    <Actor>structures/ptolemies/civic_centre.xml</Actor>
    2720  </VisualActor>
  • binaries/data/mods/public/simulation/templates/structures/ptol_fortress.xml

     
    1313    <Static width="24.0" depth="26.0"/>
    1414  </Obstruction>
    1515  <ProductionQueue>
    16     <Entities datatype="tokens">
    17       units/ptol_hero_ptolemy_I
    18       units/ptol_hero_ptolemy_IV
    19       units/ptol_hero_cleopatra
    20       units/ptol_champion_cavalry
    21       units/ptol_champion_elephant
    22       units/ptol_mechanical_siege_polybolos_packed
    23       units/ptol_mechanical_siege_lithobolos_packed
    24       units/ptol_mechanical_siege_tower
    25     </Entities>
    2616    <Technologies datatype="tokens">
    2717      pair_siege_attack_pack
    2818      pair_siege_cost_armor
  • binaries/data/mods/public/simulation/templates/structures/rome_barracks.xml

     
    2222    <Static width="24.0" depth="24.0"/>
    2323  </Obstruction>
    2424  <ProductionQueue>
    25     <Entities datatype="tokens">
    26       units/rome_infantry_swordsman_b
    27       units/rome_infantry_spearman_a
    28       units/rome_infantry_javelinist_b
    29       units/rome_champion_infantry_barracks
    30       units/rome_cavalry_spearman_b
    31       units/rome_cavalry_javelinist_b
    32       units/rome_champion_cavalry_barracks
    33     </Entities>
    3425    <Technologies datatype="tokens">
    3526      upgrade_rank_advanced_infantry
    3627      upgrade_rank_elite_infantry
  • binaries/data/mods/public/simulation/templates/structures/rome_civil_centre.xml

     
    1515  <Obstruction>
    1616    <Static width="37.0" depth="37.0"/>
    1717  </Obstruction>
    18   <ProductionQueue>
    19     <Entities datatype="tokens">
    20       units/rome_infantry_swordsman_b
    21       units/rome_infantry_javelinist_b
    22       units/rome_cavalry_spearman_b
    23     </Entities>
    24   </ProductionQueue>
    2518  <VisualActor>
    2619    <Actor>structures/romans/civic_centre.xml</Actor>
    2720    <FoundationActor>structures/fndn_8x8.xml</FoundationActor>
  • binaries/data/mods/public/simulation/templates/structures/rome_fortress.xml

     
    66    <History>Fortified auxillary camp.</History>
    77  </Identity>
    88  <ProductionQueue>
    9     <Entities datatype="tokens">
    10       units/rome_hero_marcellus
    11       units/rome_hero_maximus
    12       units/rome_hero_scipio
    13       units/rome_champion_infantry
    14       units/rome_champion_cavalry
    15       units/rome_mechanical_siege_ballista_packed
    16       units/rome_mechanical_siege_scorpio_packed
    17       units/rome_mechanical_siege_ram
    18     </Entities>
    199    <Technologies datatype="tokens">
    2010      pair_siege_attack_pack
    2111      pair_siege_cost_armor
  • binaries/data/mods/public/simulation/templates/structures/sele_barracks.xml

     
    2121    <Static width="20.0" depth="20.0"/>
    2222  </Obstruction>
    2323  <ProductionQueue>
    24     <Entities datatype="tokens">
    25       units/sele_infantry_spearman_b
    26       units/sele_infantry_javelinist_b
    27       units/sele_cavalry_javelinist_b
    28       units/sele_cavalry_archer_b
    29     </Entities>
    3024    <Technologies datatype="tokens">
    3125      -unlock_champion_units
    3226    </Technologies>
  • binaries/data/mods/public/simulation/templates/structures/sele_civil_centre.xml

     
    99    <History>The most important place in most Hellenistic cities, the Agora served many purposes; it was a place for public speeches and was the stage for civic life and commercial interests.</History>
    1010  </Identity>
    1111  <ProductionQueue>
    12     <Entities datatype="tokens">
    13       units/sele_infantry_spearman_2_b
    14       units/sele_cavalry_javelinist
    15       units/sele_hero_seleucus_victor
    16       units/sele_hero_antiochus_great
    17       units/sele_hero_antiochus_righteous
    18     </Entities>
     12    <RequiredClasses datatype="tokens">Hero</RequiredClasses>
    1913  </ProductionQueue>
    2014  <VisualActor>
    2115    <Actor>structures/macedonians/civic_centre.xml</Actor>
  • binaries/data/mods/public/simulation/templates/structures/sele_fortress.xml

     
    1414    <Static width="24.0" depth="26.0"/>
    1515  </Obstruction>
    1616  <ProductionQueue>
    17     <Entities datatype="tokens">
    18       units/sele_champion_infantry_pikeman
    19       units/sele_champion_chariot
    20       units/sele_champion_infantry_swordsman
    21       units/sele_champion_cavalry   
    22       units/sele_champion_elephant
    23       units/sele_mechanical_siege_lithobolos_packed
    24       units/sele_mechanical_siege_tower
    25     </Entities>
     17    <RequiredClasses datatype="tokens">
     18      -Hero
     19    </RequiredClasses>
    2620    <Technologies datatype="tokens">
    2721      successors/pair_unlock_champions
    2822      pair_siege_attack_pack
  • binaries/data/mods/public/simulation/templates/structures/spart_barracks.xml

     
    2222    <Static width="20.0" depth="20.0"/>
    2323  </Obstruction>
    2424  <ProductionQueue>
    25     <Entities datatype="tokens">
    26       units/spart_infantry_spearman_b
    27       units/spart_champion_infantry_sword
    28       units/spart_infantry_javelinist_b
    29       units/spart_cavalry_spearman_b
    30       units/spart_cavalry_javelinist_b
    31     </Entities>
    3225    <Technologies datatype="tokens">
    3326      -unlock_champion_units
    3427      upgrade_rank_advanced_infantry
  • binaries/data/mods/public/simulation/templates/structures/spart_civil_centre.xml

     
    88    <SpecificName>Agorā́</SpecificName>
    99    <History>The most important place in most Classical Greek poleis, the Agora served many purposes; it was a place for public speeches and was the stage for civic life and commercial interests.</History>
    1010  </Identity>
    11   <ProductionQueue>
    12     <Entities datatype="tokens">
    13       units/spart_infantry_spearman_b
    14       units/spart_infantry_javelinist_b
    15       units/spart_cavalry_javelinist_b
    16     </Entities>
    17   </ProductionQueue>
    1811  <VisualActor>
    1912    <Actor>structures/spartans/civic_centre.xml</Actor>
    2013  </VisualActor>
  • binaries/data/mods/public/simulation/templates/structures/spart_fortress.xml

     
    1414    <Static width="24.0" depth="26.0"/>
    1515  </Obstruction>
    1616  <ProductionQueue>
    17     <Entities datatype="tokens">
    18       units/spart_mechanical_siege_ram
    19       units/spart_mechanical_siege_oxybeles_packed
    20     </Entities>
     17    <RequiredClasses datatype="tokens" replace="">
     18      Siege
     19    </RequiredClasses>
    2120    <Technologies datatype="tokens">
    2221      -pair_champ_02
    2322      pair_siege_attack_cost
  • binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml

     
    8484    <Entities datatype="tokens">
    8585      units/{civ}_support_female_citizen
    8686    </Entities>
     87    <TrainFromJSON>true</TrainFromJSON>
     88    <RequiredClasses datatype="tokens">Standard</RequiredClasses>
    8789    <Technologies datatype="tokens">
    8890      phase_town_generic
    8991      phase_city_generic
  • binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml

     
    4747  </Obstruction>
    4848  <ProductionQueue>
    4949    <BatchTimeModifier>0.8</BatchTimeModifier>
     50    <TrainFromJSON>true</TrainFromJSON>
     51    <RequiredClasses datatype="tokens">CitizenSoldier Champion+Extra</RequiredClasses>
    5052    <Technologies datatype="tokens">
    5153      pair_levy_01
    5254      training_conscription
  • binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml

     
    8080  </Obstruction>
    8181  <ProductionQueue>
    8282    <BatchTimeModifier>0.8</BatchTimeModifier>
     83    <RequiredClasses datatype="tokens">Hero Champion Siege</RequiredClasses>
     84    <ForbiddenClasses datatype="tokens">Extra</ForbiddenClasses>
    8385    <Technologies datatype="tokens">
    8486      pair_champ_02
    8587    </Technologies>
  • binaries/data/mods/public/simulation/templates/template_unit_support_female_citizen.xml

     
    5353    <History>Women in the ancient world took on a variety of roles - from leadership (Celts) to servant (Greeks). Women are hard workers, the economic backbone of any civilization. In history, it was typical when all the males (capable of fighting) were killed for the females, children, and elderly to be sold as slaves.</History>
    5454    <Tooltip>Classes: Citizen Support Worker Female.
    5555Gather resources, build civic structures, and inspire nearby males to work faster. Bonused at foraging and farming.</Tooltip>
    56     <Classes datatype="tokens">Worker Female Citizen</Classes>
     56    <Classes datatype="tokens">Worker Female Citizen Standard</Classes>
    5757    <Formations disable=""/>
    5858  </Identity>
    5959  <ResourceGatherer>
  • binaries/data/mods/public/simulation/templates/units/athen_cavalry_javelinist_b.xml

     
    66    <SpecificName>Pródromos</SpecificName>
    77    <History>Prodromoi were the light scouts of Greek armies.</History>
    88    <Icon>units/hele_cavalry_javelinist.png</Icon>
     9    <Classes datatype="tokens">Standard</Classes>
    910  </Identity>
    1011  <Promotion>
    1112    <Entity>units/athen_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/athen_infantry_slinger_b.xml

     
    1515    <SpecificName>Psilós Athēnaïkós</SpecificName>
    1616    <History></History>
    1717    <Icon>units/hele_infantry_slinger.png</Icon>
     18    <Classes datatype="tokens">Standard</Classes>
    1819  </Identity>
    1920  <Promotion>
    2021    <Entity>units/athen_infantry_slinger_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/athen_infantry_spearman_b.xml

     
    2323    <SpecificName>Hoplī́tēs Athēnaïkós</SpecificName>
    2424    <History>Hoplites were the very symbol of Hellenic prestige and citizenship, armed with a spear and a large round bronze-coated shield known as an aspis. Armor was heavy, with bronze helmets and a cuirass of either bronze or linen, in addition to greaves. Hoplites fought in a tight formation called a phalanx, guarding each other with their shields while they attacked the enemy with their 2.5 meter spear or short iron sword.</History>
    2525    <Icon>units/athen_infantry_spearman.png</Icon>
     26    <Classes datatype="tokens">Standard</Classes>
    2627  </Identity>
    2728  <Promotion>
    2829    <Entity>units/athen_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/brit_cavalry_javelinist_b.xml

     
    77    <GenericName>Raiding Cavalry</GenericName>
    88    <History>The Celts were extremely proficient horsemen and created excellent tack for their mounts. This included an early form of saddle with horns at each corner, giving them a huge edge in terms or control over their counterparts. Since the cavalry was made up of rich nobles armor and fine weapons were in great supply, making them formidable opponents.</History>
    99    <Icon>units/celt_cavalry_javelinist.png</Icon>
     10    <Classes datatype="tokens">Standard</Classes>
    1011  </Identity>
    1112  <Promotion>
    1213    <Entity>units/brit_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/brit_champion_cavalry_barracks.xml

     
    22<Entity parent="units/brit_champion_cavalry">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    67</Entity>
  • binaries/data/mods/public/simulation/templates/units/brit_champion_infantry_barracks.xml

     
    22<Entity parent="units/brit_champion_infantry">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    6 </Entity>
    7  No newline at end of file
     7</Entity>
  • binaries/data/mods/public/simulation/templates/units/brit_infantry_slinger_b.xml

     
    1414    <SpecificName>Iaosae</SpecificName>
    1515    <History>Sling bullets are found in enormous numbers in Celtic sites, made of lead, though clay bullets would also have been used. Slings figure prominently in Celtic myth, and were not associated with any sense of shame. To the contrary, the great skill needed to use a sling well was highly rewarded and favored, so they found much more use in Celtic society for a ranged weapon than bows, outside of specific tribes. The god Lugos, in Irish myth Lug, is associated closely with many weapons, among them his sling. Slings were the primary weapon of Celtic hunters as well.</History>
    1616    <Icon>units/celt_infantry_slinger.png</Icon>
     17    <Classes datatype="tokens">Standard</Classes>
    1718  </Identity>
    1819  <Promotion>
    1920    <Entity>units/brit_infantry_slinger_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/brit_infantry_spearman_b.xml

     
    1717    <GenericName>Celtic Spearman</GenericName>
    1818    <History>The spear was the main weapon of the Celts, arming the bulk of their forces. The average Celt would only have to take up his long spear and body shield to be ready for battle. While armor was rare, the rabid fighting spirit of the Celts more than made up for in vigor what was lost in protection.</History>
    1919    <Icon>units/celt_infantry_spearman.png</Icon>
     20    <Classes datatype="tokens">Standard</Classes>
    2021  </Identity>
    2122  <Promotion>
    2223    <Entity>units/brit_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/cart_cavalry_javelinist_b.xml

     
    77    <SpecificName>Ḥayyāl Raḫūv Masili</SpecificName>
    88    <History>The Carthaginians possessed the greatest light cavalry of the ancient world in the Numidians. Tough and hardy like their mounts, the Numidians were famous for their ability to ride bareback and without bridles. Riders controlled their horses through a combination of voice commands, knee pressure, and a rope around the animals' necks. Used mostly for pursuing defeated opponents, the Numidians' favored weapon was a javelin that could be used for close combat if necessary.</History>
    99    <Icon>units/cart_cavalry_javelinist.png</Icon>
     10    <Classes datatype="tokens">Standard</Classes>
    1011  </Identity>
    1112  <Promotion>
    1213    <Entity>units/cart_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/cart_infantry_archer_b.xml

     
    1616    <SpecificName>Qešet</SpecificName>
    1717    <History>A mercenary archer from North Africa.</History>
    1818    <Icon>units/cart_infantry_archer.png</Icon>
     19    <Classes datatype="tokens">Standard</Classes>
    1920  </Identity>
    2021  <Promotion>
    2122    <Entity>units/cart_infantry_archer_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/cart_infantry_spearman_b.xml

     
    1616    <SpecificName>Sǝḫīr Ḥanīt</SpecificName>
    1717    <History>The core of the Carthaginian army was made up of Liby-Phoenicians, Africans with Phoenician ancestors. The wealthy residents of Carthage recruited the non-citizen Liby-Phoenicians as heavy infantry, fighting in the phalanx armed with the long spear. Armor could range from chain mail hauberks to bronze cuirasses and helmets often included the latest Hellenistic types. Although armed with a shield and a sword, Carthaginian swordsmen were woefully ill-trained compared to their Roman or Iberian counterparts in fencing.</History>
    1818    <Icon>units/cart_infantry_spearman.png</Icon>
     19    <Classes datatype="tokens">Standard</Classes>
    1920  </Identity>
    2021  <Promotion>
    2122    <Entity>units/cart_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_b.xml

     
    66    <SpecificName>Gaisaredos</SpecificName>
    77    <History>The Celts were extremely proficient horsemen and created excellent tack for their mounts. This included an early form of saddle with horns at each corner, giving them a huge edge in terms or control over their counterparts. Since the cavalry was made up of rich nobles armor and fine weapons were in great supply, making them formidable opponents.</History>
    88    <Icon>units/celt_cavalry_javelinist.png</Icon>
     9    <Classes datatype="tokens">Standard</Classes>
    910  </Identity>
    1011  <Promotion>
    1112    <Entity>units/celt_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_b.xml

     
    1515    <SpecificName>Baguada</SpecificName>
    1616    <History>Gesatae were young men who devoted themselves to war, often serving as mercenaries for other tribes. They were the last Celts to fight stark naked to show their courage, often carrying only a shield with several javelins and a regular Celtic spear. More often than not they were covered in geometric designs painted in woad, a blue dye.</History>
    1717    <Icon>units/celt_infantry_javelinist.png</Icon>
     18    <Classes datatype="tokens">Standard</Classes>
    1819  </Identity>
    1920  <Promotion>
    2021    <Entity>units/celt_infantry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_b.xml

     
    1818    <SpecificName>Gaeroa</SpecificName>
    1919    <History>The spear was the main weapon of the Celts, arming the bulk of their forces. The average Celt would only have to take up his long spear and body shield to be ready for battle. While armor was rare the rabid fighting spirit of the Celts more than made up for in vigor what was lost in protection.</History>
    2020    <Icon>units/celt_infantry_spearman.png</Icon>
     21    <Classes datatype="tokens">Standard</Classes>
    2122  </Identity>
    2223  <Promotion>
    2324    <Entity>units/celt_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/gaul_cavalry_javelinist_b.xml

     
    66    <SpecificName>Gaisaredos</SpecificName>
    77    <History>The Celts were extremely proficient horsemen and created excellent tack for their mounts. This included an early form of saddle with horns at each corner, giving them a huge edge in terms or control over their counterparts. Since the cavalry was made up of rich nobles armor and fine weapons were in great supply, making them formidable opponents.</History>
    88    <Icon>units/celt_cavalry_javelinist.png</Icon>
     9    <Classes datatype="tokens">Standard</Classes>
    910  </Identity>
    1011  <Promotion>
    1112    <Entity>units/gaul_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/gaul_champion_cavalry_barracks.xml

     
    22<Entity parent="units/gaul_champion_cavalry">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    6 </Entity>
    7  No newline at end of file
     7</Entity>
  • binaries/data/mods/public/simulation/templates/units/gaul_champion_infantry_barracks.xml

     
    22<Entity parent="units/gaul_champion_infantry">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    6 </Entity>
    7  No newline at end of file
     7</Entity>
  • binaries/data/mods/public/simulation/templates/units/gaul_infantry_javelinist_b.xml

     
    1515    <SpecificName>Baguada</SpecificName>
    1616    <History>Gesatae were young men who devoted themselves to war, often serving as mercenaries for other tribes. They were the last Celts to fight stark naked to show their courage, often carrying only a shield with several javelins and a regular Celtic spear. More often than not they were covered in geometric designs painted in woad, a blue dye.</History>
    1717    <Icon>units/celt_infantry_javelinist.png</Icon>
     18    <Classes datatype="tokens">Standard</Classes>
    1819  </Identity>
    1920  <Promotion>
    2021    <Entity>units/gaul_infantry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/gaul_infantry_spearman_b.xml

     
    1515    <SpecificName>Gaeroa</SpecificName>
    1616    <History>The spear was the main weapon of the Celts, arming the bulk of their forces. The average Celt would only have to take up his long spear and body shield to be ready for battle. While armor was rare the rabid fighting spirit of the Celts more than made up for in vigor what was lost in protection.</History>
    1717    <Icon>units/celt_infantry_spearman.png</Icon>
     18    <Classes datatype="tokens">Standard</Classes>
    1819  </Identity>
    1920  <Promotion>
    2021    <Entity>units/gaul_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_b.xml

     
    77    <SpecificName>Pródromos</SpecificName>
    88    <History>Prodromoi were the light scouts of Greek armies.</History>
    99    <Icon>units/hele_cavalry_javelinist.png</Icon>
     10    <Classes datatype="tokens">Standard</Classes>
    1011  </Identity>
    1112  <Promotion>
    1213    <Entity>units/hele_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_b.xml

     
    2424    <SpecificName>Peltastḗs Thrâx</SpecificName>
    2525    <History>Peltasts were javelinists originating in Thrace but their form of combat was widely copied by the Hellenes, Macedonians, and Persians. Equipped with a small oval or crescent shield, a peltast would charge at enemy formations whilst hurling his javelins then fall back to avoid close combat. They wore no armor and were at a significant disadvantage against heavy infantry and cavalry, relying on their speed and skill for survival. Thracians sold their services to Hellene cities as mercenaries and added a much needed ranged and skirmishing ability to Hellenic armies.</History>
    2626    <Icon>units/hele_infantry_javelinist.png</Icon>
     27    <Classes datatype="tokens">Standard</Classes>
    2728  </Identity>
    2829  <Promotion>
    2930    <Entity>units/hele_infantry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_b.xml

     
    2727    <SpecificName>Hoplī́tēs Hellēnikós</SpecificName>
    2828    <History>Hoplites were the very symbol of Hellenic prestige and citizenship, armed with a spear and a large round bronze-coated shield known as an aspis. Armor was heavy, with bronze helmets and a cuirass of either bronze or linen, in addition to greaves. Hoplites fought in a tight formation called a phalanx, guarding each other with their shields while they attacked the enemy with their 2.5 meter spear or short iron sword.</History>
    2929    <Icon>units/hele_infantry_spearman.png</Icon>
     30    <Classes datatype="tokens">Standard</Classes>
    3031  </Identity>
    3132  <Promotion>
    3233    <Entity>units/hele_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/iber_cavalry_javelinist_b.xml

     
    66    <SpecificName>Kantabriako Zaldun</SpecificName>
    77    <History></History>
    88    <Icon>units/iber_cavalry_javelinist.png</Icon>
     9    <Classes datatype="tokens">Standard</Classes>
    910  </Identity>
    1011  <Promotion>
    1112    <Entity>units/iber_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/iber_champion_cavalry_barracks.xml

     
    22<Entity parent="units/iber_champion_cavalry">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    6 </Entity>
    7  No newline at end of file
     7</Entity>
  • binaries/data/mods/public/simulation/templates/units/iber_champion_infantry_barracks.xml

     
    22<Entity parent="units/iber_champion_infantry">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    6 </Entity>
    7  No newline at end of file
     7</Entity>
  • binaries/data/mods/public/simulation/templates/units/iber_infantry_javelinist_b.xml

     
    1111    <SpecificName>Lusitano Ezpatari</SpecificName>
    1212    <History>Iberians, especially the Lusitanians, were good at ranged combat and ambushing enemy columns. They throw heavy iron javelins and sometimes even add burning pitch to them, making them good as a cheap siege weapon.</History>
    1313    <Icon>units/iber_infantry_javelinist.png</Icon>
     14    <Classes datatype="tokens">Standard</Classes>
    1415  </Identity>
    1516  <Promotion>
    1617    <Entity>units/iber_infantry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/iber_infantry_swordsman_b.xml

     
    1111    <SpecificName>Ezpatari</SpecificName>
    1212    <Icon>units/iber_infantry_swordsman.png</Icon>
    1313    <History>The Iberians were master sword-smiths and the falcata was their greatest creation. Wielded by superb swordsmen equipped with light armor and a buckler known as a caetra, they caused untold carnage. Thanks to this Iberian infantry were fast and agile unlike many of their opponents and could bite hard when they attacked. Their skill with sword and buckler were legendary, allowing them to go toe-to-toe with heavy infantry.</History>
     14    <Classes datatype="tokens">Standard</Classes>
    1415  </Identity>
    1516  <Promotion>
    1617    <Entity>units/iber_infantry_swordsman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/mace_cavalry_spearman_b.xml

     
    77    <SpecificName>Xystophoros Thessalikos</SpecificName>
    88    <History>The best cavalry in Greece, besides the Macedonian hetairoi. Thessalians led an agrarian life and raised horses in the large pasture lands of Thessaly. They were widely regarded as the best cavalry in all of Hellas due to the speed and tenacity of their horses. They were used effectively in the Macedonian armies as light cavalry and held the important left flank of the battle line, staving off enemy advances long enough for the heavy cavalry on the right flank to make the killer blow.</History>
    99    <Icon>units/mace_cavalry_spearman.png</Icon>
     10    <Classes datatype="tokens">Standard</Classes>
    1011  </Identity>
    1112  <Promotion>
    1213    <Entity>units/mace_cavalry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/mace_champion_cavalry_barracks.xml

     
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
    55    <SelectionGroupName>units/mace_champion_cavalry</SelectionGroupName>
     6    <Classes datatype="tokens">Extra</Classes>
    67  </Identity>
    78</Entity>
  • binaries/data/mods/public/simulation/templates/units/mace_champion_infantry_a_barracks.xml

     
    22<Entity parent="units/mace_champion_infantry_a">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    67</Entity>
  • binaries/data/mods/public/simulation/templates/units/mace_infantry_javelinist_b.xml

     
    2424    <SpecificName>Peltastes Agrianikos</SpecificName>
    2525    <History>Peltasts were javelinists originating in Thrace but their form of combat was widely copied by the Hellenes, Macedonians, and Persians. Equipped with a small oval or crescent shield, a peltast would charge at enemy formations whilst hurling his javelins then fall back to avoid close combat. They wore no armor and were at a significant disadvantage against heavy infantry and cavalry, relying on their speed and skill for survival. Agrianians are a Thracian tribe who sold their services to the Macedonians as mercenaries and added a much needed ranged and skirmishing ability to Macedonian armies.</History>
    2626    <Icon>units/mace_infantry_javelinist.png</Icon>
     27    <Classes datatype="tokens">Standard</Classes>
    2728  </Identity>
    2829  <Promotion>
    2930    <Entity>units/mace_infantry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/mace_infantry_spearman_b.xml

     
    1414    <SpecificName>Pezétairos</SpecificName>
    1515    <History>'Foot Companions', these were the elite troops from the Macedonian phalanx, whom carried their Sarissas with both hands, the white shields being attached to their armor. The Sarissa and the new tactics they used were developed by Philip II under Theban influence. If properly protected by cavalry on both sides, the Pezhetairoi were virtually invincible to any kind of enemy unit. They were always deployed in deep formations of 16+.</History>
    1616    <Icon>units/hele_champion_infantry_mace.png</Icon>
     17    <Classes datatype="tokens">Standard</Classes>
    1718  </Identity>
    1819  <Promotion>
    1920    <Entity>units/mace_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/maur_cavalry_javelinist_b.xml

     
    77    <SpecificName>Ashwarohi</SpecificName>
    88    <History/>
    99    <Icon>units/maur_cavalry_javelinist.png</Icon>
     10    <Classes datatype="tokens">Standard</Classes>
    1011  </Identity>
    1112  <Promotion>
    1213    <Entity>units/maur_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/maur_champion_chariot_barracks.xml

     
    22<Entity parent="units/maur_champion_chariot">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    6 </Entity>
    7  No newline at end of file
     7</Entity>
  • binaries/data/mods/public/simulation/templates/units/maur_champion_infantry_barracks.xml

     
    22<Entity parent="units/maur_champion_infantry">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    6 </Entity>
    7  No newline at end of file
     7</Entity>
  • binaries/data/mods/public/simulation/templates/units/maur_champion_maiden_barracks.xml

     
    22<Entity parent="units/maur_champion_maiden">
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
     5    <Classes datatype="tokens">Extra</Classes>
    56  </Identity>
    6 </Entity>
    7  No newline at end of file
     7</Entity>
  • binaries/data/mods/public/simulation/templates/units/maur_infantry_archer_b.xml

     
    1414    <SpecificName>Dhanurdhar</SpecificName>
    1515    <Icon>units/maur_infantry_archer.png</Icon>
    1616    <History>Longbowman.</History>
     17    <Classes datatype="tokens">Standard</Classes>
    1718  </Identity>
    1819  <Promotion>
    1920    <Entity>units/maur_infantry_archer_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/maur_infantry_spearman_b.xml

     
    2424    <SpecificName>Kauntika</SpecificName>
    2525    <Icon>units/maur_infantry_spearman.png</Icon>
    2626    <History>Bamboo Spearman.</History>
     27    <Classes datatype="tokens">Standard</Classes>
    2728  </Identity>
    2829  <Promotion>
    2930    <Entity>units/maur_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/maur_support_elephant.xml

     
    3030    <Icon>units/maur_support_elephant.png</Icon>
    3131    <History>Support Elephant.</History>
    3232    <Tooltip>Mobile dropsite. Can also assist in constructing buildings.</Tooltip>
     33    <Classes datatype="tokens">Standard</Classes>
    3334    <Formations disable=""/>
    3435  </Identity>
    3536  <Loot>
  • binaries/data/mods/public/simulation/templates/units/pers_cavalry_javelinist_b.xml

     
    77    <SpecificName>Mada Asabara</SpecificName>
    88    <History>Just as the archers were the rock of the Persian infantry, the Persian cavalry was formed around the light cavalryman, or Asabari. Armed with javelins for long-ranged combat or close-quarter fighting, Asabari were also equipped with swords and axes. Since they were recruited from the upper classes many wore armor and helmets and their horses could also be fitted with light armor.</History>
    99    <Icon>units/pers_cavalry_javelinist.png</Icon>
     10    <Classes datatype="tokens">Standard</Classes>
    1011  </Identity>
    1112  <Promotion>
    1213    <Entity>units/pers_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/pers_infantry_archer_b.xml

     
    1414    <SpecificName>Sugda Vaçabara</SpecificName>
    1515    <Icon>units/pers_infantry_archer.png</Icon>
    1616    <History>Archers were the core of the Persian infantry, often going into battle with spearmen equipped with spara, whom they heavily outnumbered. Although powerful, the Persian recurved bow was cursed with light arrows that had trouble piercing the armor of heavily armed opponents. But the huge numbers loosed in each volley were more than enough to alarm even the most armored enemy.</History>
     17    <Classes datatype="tokens">Standard</Classes>
    1718  </Identity>
    1819  <Promotion>
    1920    <Entity>units/pers_infantry_archer_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/pers_infantry_spearman_b.xml

     
    2020    <SpecificName>Sparabara</SpecificName>
    2121    <Icon>units/pers_infantry_spearman.png</Icon>
    2222    <History>Median and Persian shieldbearers comprised the main infantry regiment of the Persians during this period, especially in the reign of Xerxes. First under the Medes and later the Achaemenid Persians these soldiers were the bread and butter infantry for hand-to-hand engagement. Within the Satabam, the basic tactical unit of the Achamenid army, the shieldbearers formed the first two ranks, protecting the arhcers and also serving as a way to keep the enemy pinned down until the cavalry could act. While well known for tenacity the shieldbearers were not equipped to last long in an extended melee with heavy infantry, like hoplites. </History>
     23    <Classes datatype="tokens">Standard</Classes>
    2324  </Identity>
    2425  <Promotion>
    2526    <Entity>units/pers_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/ptol_cavalry_archer_b.xml

     
    22<Entity parent="template_unit_cavalry_ranged_archer">
    33  <Identity>
    44    <Civ>ptol</Civ>
    5     <Classes datatype="tokens">Camel</Classes>
     5    <Classes datatype="tokens">Camel Standard</Classes>
    66    <SelectionGroupName>units/ptol_cavalry_archer_b</SelectionGroupName>
    77    <GenericName>Nabataean Camel Archer</GenericName>
    88    <SpecificName>Mutsābiq Gamal Nabatu</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/ptol_infantry_archer_b.xml

     
    2121  </Health>
    2222  <Identity>
    2323    <Civ>ptol</Civ>
    24     <Classes datatype="tokens">Mercenary</Classes>
     24    <Classes datatype="tokens">Mercenary Standard</Classes>
    2525    <SelectionGroupName>units/ptol_infantry_archer_b</SelectionGroupName>
    2626    <GenericName>Nubian Mercenary Archer</GenericName>
    2727    <SpecificName>Kousít Misthophóros Toxóti̱s</SpecificName>
  • binaries/data/mods/public/simulation/templates/units/ptol_infantry_spearman_b.xml

     
    1616    <SpecificName>Makhimos Phalangites</SpecificName>
    1717    <History>When pressed hard by the fellow successor states, the Ptolemies of Egypt began to arm and train the Egyptian people in "Macedonian fashion." These levies of indigenous Egyptians were crucial in turning back the Seleucid tide at the Battle of Raphia, cementing nationalist pride and threatening the rule of the Ptolemies over their own kingdom.</History>
    1818    <Icon>units/ptol_infantry_spearman.png</Icon>
     19    <Classes datatype="tokens">Standard</Classes>
    1920  </Identity>
    2021  <Promotion>
    2122    <Entity>units/ptol_infantry_spearman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/rome_cavalry_javelinist_b.xml

     
    77    <SpecificName>Eques Socius</SpecificName>
    88    <History>Rome's Italian allies frequently supplied Rome's armies with light cavalry, an arm in which Rome was often deficient. After the Social War concluded, all Italy became Roman citizens and thus could enroll into Roman army units. Upon the Marian Reforms, the role of the Italian allied cavalry was given to auxiliary units of Thracians, Numidians, Gauls and Germans.</History>
    99    <Icon>units/hele_cavalry_javelinist.png</Icon>
     10    <Classes datatype="tokens">Standard</Classes>
    1011    <RequiredTechnology>phase_town</RequiredTechnology>
    1112  </Identity>
    1213  <Promotion>
  • binaries/data/mods/public/simulation/templates/units/rome_champion_cavalry_barracks.xml

     
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
    55    <SelectionGroupName>units/rome_champion_cavalry</SelectionGroupName>
     6    <Classes datatype="tokens">Extra</Classes>
    67  </Identity>
    7 </Entity>
    8  No newline at end of file
     8</Entity>
  • binaries/data/mods/public/simulation/templates/units/rome_champion_infantry_barracks.xml

     
    33  <Identity>
    44    <RequiredTechnology>unlock_champion_units</RequiredTechnology>
    55    <SelectionGroupName>units/rome_champion_infantry</SelectionGroupName>
     6    <Classes datatype="tokens">Extra</Classes>
    67  </Identity>
    7 </Entity>
    8  No newline at end of file
     8</Entity>
  • binaries/data/mods/public/simulation/templates/units/rome_infantry_javelinist_b.xml

     
    1515    <SpecificName>Veles</SpecificName>
    1616    <Icon>units/rome_infantry_javelinist.png</Icon>
    1717    <History>The Velites (sing. Veles) were the light skirmish infantry of the Polybian legion. They were the younger men who could not afford hastatus equipment or boys too young to serve otherwise. They usually numbered 1200 men in squads of twenty assigned to the maniples of the Hastati, Principes, and Triarii. Their job was to harry the enemy lines before the heavy infantry engaged and to support the cavalry. </History>
     18    <Classes datatype="tokens">Standard</Classes>
    1819  </Identity>
    1920  <Promotion>
    2021    <Entity>units/rome_infantry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/rome_infantry_swordsman_b.xml

     
    2828    <SpecificName>Hastatus</SpecificName>
    2929    <Icon>units/rome_infantry_swordsman.png</Icon>
    3030    <History>The hastati were the first line of heavy infantry in the early Republican Roman army. They used pila and gladii as their main weapons, throwing the former into the enemy formation and then closing with the sword. For defense they used a large shield called a scutum and wore the best armor they could afford. Hastati were recruited from the young men of Rome, a small part of the 700,000 troops Rome could bring to bear against its opponents.</History>
     31    <Classes datatype="tokens">Standard</Classes>
    3132  </Identity>
    3233  <Promotion>
    3334    <Entity>units/rome_infantry_swordsman_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/sele_cavalry_javelinist_b.xml

     
    77    <SpecificName>Hippeus Medikos</SpecificName>
    88    <History>.</History>
    99    <Icon>units/pers_cavalry_javelinist.png</Icon>
     10    <Classes datatype="tokens">Standard</Classes>
    1011    <RequiredTechnology>phase_village</RequiredTechnology>
    1112  </Identity>
    1213  <Promotion>
  • binaries/data/mods/public/simulation/templates/units/sele_infantry_spearman_2_b.xml

     
    1515    <SpecificName>Thureophóros Politès</SpecificName>
    1616    <History>The cities at the heart of the Seleucid realm, Syria, fielded their own citizen militia infantry, usually armed as thureophoroi, or medium infantry. In 148 BC at the Battle of Azotos against the Jewish Maccabees, the Seleucid army was called the 'Power of the Cities', due to the high proportion of citizen militia mobilized from the coastal cities of Syria. The thureophoroi (singular: thureophoros) was a type of infantry soldier, common in the 3rd to 1st century BCE, who carried a large oval shield called a thureos which had a type of metal strip boss and a central spine. They were armed with a long thrusting spear, javelins and a sword. They also usually wore an iron or bronze Macedonian helmet. The thureos was probably originally an adapted form of a Celtic shield. Thracian and Illyrian infantry probably adopted the shield before the Greeks. However it has been suggested that the thureos was brought to Greece after Pyrrhus of Epirus' campaigns in Italy, as his Oscan allies and Roman enemies used the scutum. Thureophoroi were a 3rd century development on the Peltast and wore no body armor, but did wear sturdy leather boots for quick movement. Thureophoroi could skirmish, as well as fight in a phalanx when necessary. They were often stationed on the flanks of the traditional pike phalanx as a flexible link between the heavier pikemen and the cavalry wings.</History>
    1717    <Icon>units/sele_infantry_spearman_2.png</Icon>
     18    <Classes datatype="tokens">Standard</Classes>
    1819  </Identity>
    1920  <Promotion>
    2021    <Entity>units/sele_infantry_spearman_2_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/spart_cavalry_javelinist_b.xml

     
    77    <SpecificName>Pródromos Perioïkós</SpecificName>
    88    <History>Spartan scout cavalry, supplied by the Perioikoi, or middle-class of Spartan society. Good for hunting and harassing the enemy. The best such cavalry in Greece come from the pastoral territories of Thessaly. Spartan cavalry, though, was no to good.</History>
    99    <Icon>units/spart_cavalry_javelinist.png</Icon>
     10    <Classes datatype="tokens">Standard</Classes>
    1011  </Identity>
    1112  <Promotion>
    1213    <Entity>units/spart_cavalry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/spart_infantry_javelinist_b.xml

     
    1717    <SpecificName>Akontistes Heilotes</SpecificName>
    1818    <History>Helots were the subject class of Spartan society and toiled tirelessly for their full-blooded Spartan masters. In times of need, Helots were pressed into service to serve as squires and battlefield skirmishers if necessary. The loyalty and performance of these troops was often suspect, but good performance on the battlefield sometimes meant freedom could be earned for the Helot warrior and his family.</History>
    1919    <Icon>units/spart_infantry_javelinist.png</Icon>
     20    <Classes datatype="tokens">Standard</Classes>
    2021  </Identity>
    2122  <Promotion>
    2223    <Entity>units/spart_infantry_javelinist_a</Entity>
  • binaries/data/mods/public/simulation/templates/units/spart_infantry_spearman_b.xml

     
    2222    <SpecificName>Hoplī́tēs Perioïkós</SpecificName>
    2323    <History>The basic unit of the Spartan army made up of middle-class men ("Perioikoi"). The Hoplite formed the core of any Greek army with the unique Phalanx formation ready to hold all potential attacks.</History>
    2424    <Icon>units/spart_infantry_spearman.png</Icon>
     25    <Classes datatype="tokens">Standard</Classes>
    2526  </Identity>
    2627  <Promotion>
    2728    <Entity>units/spart_infantry_spearman_a</Entity>