Ticket #2877: limit-v2.diff
File limit-v2.diff, 29.4 KB (added by , 10 years ago) |
---|
-
binaries/data/mods/public/simulation/components/BuildRestrictions.js
32 32 "</oneOrMore>" + 33 33 "</list>" + 34 34 "</element>" + 35 "<element name='Category' a:help='Specifies the category of this building, for satisfying special constraints. Choices include: CivilCentre, House, DefenseTower, Farmstead, Market, Barracks, Dock, Fortress, Field, Temple, Wall, Fence, Storehouse, Stoa, Resource, Special, Wonder, Apadana, Embassy, Monument'>" +35 "<element name='Category' a:help='Specifies the category of this building, for satisfying special constraints. Choices include: CivilCentre, Colony, House, DefenseTower, Farmstead, Market, Barracks, Dock, Fortress, Field, Temple, Wall, Fence, Storehouse, Stoa, Resource, Special, Wonder, Apadana, Embassy, Monument'>" + 36 36 "<text/>" + 37 37 "</element>" + 38 38 "<optional>" + -
binaries/data/mods/public/simulation/components/Builder.js
7 7 "<Entities datatype='tokens'>" + 8 8 "\n structures/{civ}_barracks\n structures/{civ}_civil_centre\n structures/celt_sb1\n " + 9 9 "</Entities>" + 10 "<ConditionalEntities>" + 11 "<Colony>" + 12 "<Template>structures/sele_military_colony</Template>" + 13 "<Condition>Greater</Condition>" + 14 "<Category>CivilCentre</Category>" + 15 "<Number>0</Number>" + 16 "</Colony>" + 17 "</ConditionalEntities>" + 10 18 "</a:example>" + 11 19 "<element name='Rate' a:help='Construction speed multiplier (1.0 is normal speed, higher values are faster)'>" + 12 20 "<ref name='positiveDecimal'/>" + … … 16 24 "<value>tokens</value>" + 17 25 "</attribute>" + 18 26 "<text/>" + 19 "</element>"; 27 "</element>" + 28 "<optional>" + 29 "<element name='ConditionalEntities' a:help='entity template name that this unit can build under some condition'>" + 30 "<zeroOrMore>" + 31 "<element a:help='Name of this condition'>" + 32 "<anyName />" + 33 "<interleave>" + 34 "<element name='Template' a:help='Specifies the template name'><text/></element>" + 35 "<element name='Condition' a:help='Specifies the condition (can be Smaller or Greater)'><text/></element>" + 36 "<element name='Category' a:help='Specifies a category of building/unit for the condition. See BuildRestrictions/TrainingRestrictions for possible categories'><text/></element>" + 37 "<element name='Number' a:help='Numerical value for the condition'><data type='integer'/></element>" + 38 "</interleave>" + 39 "</element>" + 40 "</zeroOrMore>" + 41 "</element>" + 42 "</optional>"; 20 43 21 44 Builder.prototype.Init = function() 22 45 { 46 this.conditional = []; 47 if (this.template.ConditionalEntities) 48 { 49 for (var condition in this.template.ConditionalEntities) 50 { 51 let cond = this.template.ConditionalEntities[condition]; 52 this.conditional.push( {"template": cond.Template, "condition": cond.Condition, "category": cond.Category, "number": cond.Number, "added": false} ); 53 } 54 } 23 55 }; 24 56 25 57 Builder.prototype.Serialize = null; // we have no dynamic state to save … … 35 67 if (cmpIdentity) 36 68 string = string.replace(/\{civ\}/g, cmpIdentity.GetCiv()); 37 69 entities = string.split(/\s+/); 38 39 // Remove disabled entities40 var cmpPlayer = QueryOwnerInterface(this.entity, IID_Player)41 var disabledEntities = cmpPlayer.GetDisabledTemplates();42 43 for (var i = entities.length - 1; i >= 0; --i)44 if (disabledEntities[entities[i]])45 entities.splice(i, 1);46 70 } 71 72 // Add the possible conditional entities 73 if (this.conditional.length) 74 { 75 var cmpPlayerEntityLimits = QueryOwnerInterface(this.entity, IID_EntityLimits); 76 var cmpIdentity = Engine.QueryInterface(this.entity, IID_Identity); 77 if (cmpPlayerEntityLimits && cmpIdentity) 78 { 79 for (let cond of this.conditional) 80 { 81 if (!cond.added) // Add it in EntityLimits counts 82 { 83 cmpPlayerEntityLimits.AddConditionalCategory(cond.category); 84 cond.added = true; 85 } 86 let count = cmpPlayerEntityLimits.GetCounts(); 87 if ((cond.condition == "Smaller" && count[cond.category] < cond.number) || 88 (cond.condition == "Greater" && count[cond.category] > cond.number)) 89 entities.push( cond.template.replace(/\{civ\}/g, cmpIdentity.GetCiv()) ); 90 } 91 } 92 } 93 94 if (!entities.length) 95 return entities; 96 97 // Remove disabled entities 98 var cmpPlayer = QueryOwnerInterface(this.entity, IID_Player) 99 var disabledEntities = cmpPlayer.GetDisabledTemplates(); 100 101 for (var i = entities.length - 1; i >= 0; --i) 102 if (disabledEntities[entities[i]]) 103 entities.splice(i, 1); 104 47 105 return entities; 48 106 }; 49 107 -
binaries/data/mods/public/simulation/components/EntityLimits.js
13 13 "</Limits>" + 14 14 "<LimitChangers>" + 15 15 "<Monument>" + 16 "<Civ Centre>2</CivCentre>" +16 "<CivilCentre>2</CivilCentre>" + 17 17 "</Monument>" + 18 18 "</LimitChangers>" + 19 "<LimitRemovers>" + 20 "<CivilCentre>town_phase</CivilCentre>" + 21 "</LimitRemovers>" + 19 22 "</a:example>" + 20 23 "<element name='Limits'>" + 21 24 "<zeroOrMore>" + … … 37 40 "</zeroOrMore>" + 38 41 "</element>" + 39 42 "</zeroOrMore>" + 43 "</element>" + 44 "<element name='LimitRemovers'>" + 45 "<zeroOrMore>" + 46 "<element a:help='Specifies a category of building/unit on which to apply this limit. See BuildRestrictions/TrainingRestrictions for possible categories'>" + 47 "<anyName />" + 48 "<text/>" + 49 "</element>" + 50 "</zeroOrMore>" + 40 51 "</element>"; 41 52 42 53 … … 52 63 this.limit = {}; 53 64 this.count = {}; 54 65 this.changers = {}; 66 this.removers = {}; 67 this.conditional = new Set(); 55 68 for (var category in this.template.Limits) 56 69 { 57 70 this.limit[category] = +this.template.Limits[category]; 58 71 this.count[category] = 0; 59 if (!(category in this.template.LimitChangers)) 60 continue; 61 this.changers[category] = {}; 62 for (var c in this.template.LimitChangers[category]) 63 this.changers[category][c] = +this.template.LimitChangers[category][c]; 72 if (category in this.template.LimitChangers) 73 { 74 this.changers[category] = {}; 75 for (var c in this.template.LimitChangers[category]) 76 this.changers[category][c] = +this.template.LimitChangers[category][c]; 77 } 78 if (category in this.template.LimitRemovers) 79 this.removers[category] = this.template.LimitRemovers[category]; 64 80 } 65 81 }; 66 82 83 EntityLimits.prototype.AddConditionalCategory = function(category) 84 { 85 if (this.count[category] === undefined) 86 { 87 // category not yet registred in this.count, add it. 88 var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); 89 var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); 90 var entities = cmpRangeManager.GetEntitiesByPlayer(cmpPlayer.GetPlayerID()); 91 var count = 0; 92 for (let entity of entities) 93 { 94 var cmpBuildRestrictions = Engine.QueryInterface(entity, IID_BuildRestrictions); 95 if (cmpBuildRestrictions && cmpBuildRestrictions.GetCategory() == category) 96 { 97 count++; 98 continue; 99 } 100 var cmpTrainingRestrictions = Engine.QueryInterface(entity, IID_TrainingRestrictions); 101 if (cmpTrainingRestrictions && cmpTrainingRestrictions.GetCategory() == category) 102 count++; 103 } 104 this.count[category] = count; 105 } 106 107 this.conditional.add(category); 108 }; 109 67 110 EntityLimits.prototype.ChangeLimit = function(category, value) 68 111 { 69 112 this.limit[category] += value; … … 71 114 72 115 EntityLimits.prototype.ChangeCount = function(category, value) 73 116 { 74 if (this.count[category] !== undefined) 75 this.count[category] += value; 117 // Categories without limits may not have been initialised, but should be kept for possible conditional limits 118 if (this.count[category] === undefined) 119 this.count[category] = 0; 120 121 this.count[category] += value; 122 123 if (this.conditional.has(category)) 124 { 125 var cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); 126 var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); 127 cmpGuiInterface.PushNotification({"type": "resetselectionpannel", "players": [cmpPlayer.GetPlayerID()]}); 128 } 76 129 }; 77 130 78 131 EntityLimits.prototype.GetLimits = function() … … 161 214 if (cmpTrainingRestrictions) 162 215 category = cmpTrainingRestrictions.GetCategory(); 163 216 if (category) 164 this.ChangeCount(category, modifier);217 this.ChangeCount(category, modifier); 165 218 166 219 // Update entity limits 167 220 var cmpIdentity = Engine.QueryInterface(msg.entity, IID_Identity); … … 178 231 this.ChangeLimit(category, modifier * this.changers[category][c]); 179 232 }; 180 233 234 EntityLimits.prototype.RemoveLimits = function(tech) 235 { 236 for (var category in this.removers) 237 if (this.removers[category] === tech) 238 this.limit[category] = undefined; 239 }; 240 181 241 Engine.RegisterComponentType(IID_EntityLimits, "EntityLimits", EntityLimits); -
binaries/data/mods/public/simulation/components/TechnologyManager.js
346 346 var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); 347 347 var ents = cmpRangeManager.GetEntitiesByPlayer(playerID); 348 348 349 // Change the EntityLimit if any 350 var cmpPlayerEntityLimits = QueryPlayerIDInterface(playerID, IID_EntityLimits); 351 if (cmpPlayerEntityLimits) 352 cmpPlayerEntityLimits.RemoveLimits(tech); 353 349 354 // Call the related trigger event 350 355 var cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger); 351 356 cmpTrigger.CallEvent("ResearchFinished", {"player": playerID, "tech": tech}); -
binaries/data/mods/public/simulation/templates/special/player.xml
15 15 </BattleDetection> 16 16 <EntityLimits> 17 17 <Limits> 18 <CivilCentre>1</CivilCentre> 19 <Colony>0</Colony> 18 20 <DefenseTower>30</DefenseTower> 19 21 <Fortress>10</Fortress> 20 22 <Wonder>1</Wonder> … … 41 43 <PtolemyIV>4</PtolemyIV> 42 44 </Juggernaut> 43 45 </LimitChangers> 46 <LimitRemovers> 47 <CivilCentre>phase_town</CivilCentre> 48 <Colony>phase_town</Colony> 49 </LimitRemovers> 44 50 </EntityLimits> 45 51 <Player/> 46 52 <StatisticsTracker/> -
binaries/data/mods/public/simulation/templates/structures/ptol_military_colony.xml
3 3 <Attack disable=""/> 4 4 <BuildRestrictions> 5 5 <Territory>own neutral</Territory> 6 <Category>Colony</Category> 6 7 <Distance> 7 8 <FromClass>Colony</FromClass> 8 9 <MinDistance>120</MinDistance> … … 27 28 <Identity> 28 29 <Civ>ptol</Civ> 29 30 <GenericName>Military Colony</GenericName> 30 31 <SpecificName>Klēroukhia</SpecificName> 31 32 <Classes datatype="tokens">Town Colony</Classes> 32 33 <History>The Ptolemaic kings invited Greeks, Macedonians, Galatians (Gauls), Cretans, and Thracians alike to settle within Egypt in military colonies called cleruchies (klēroukhia). Under this arrangement, the settlers were given a plot of land, or a kleros, and in return were required to serve in the great king's army when called to duty. This created a upper-middle class of military settlers who owed their livelihoods and fortunes to the Ptolemaic kings and helped grow the available manpower for the imperial Ptolemaic army. A side effect of this system was that it drained the Greek homeland of military-aged men, a contributing factor to Greece's eventual conquest by Rome.</History> 33 34 <Tooltip>This is the Ptolemaic expansion building, similar to Civic Centers for other factions. It is weaker and carries a smaller territory influence, but is cheaper and built faster. … … 42 43 <ProductionQueue> 43 44 <Entities datatype="tokens"> 44 45 units/ptol_infantry_spearman_2_b 45 46 units/ptol_infantry_swordsman_b 46 47 units/ptol_cavalry_spearman_b 47 48 units/ptol_cavalry_javelinist_b 48 49 </Entities> -
binaries/data/mods/public/simulation/templates/structures/sele_military_colony.xml
3 3 <Attack disable=""/> 4 4 <BuildRestrictions> 5 5 <Territory>own neutral</Territory> 6 <Category>Colony</Category> 6 7 <Distance> 7 8 <FromClass>Colony</FromClass> 8 9 <MinDistance>120</MinDistance> … … 27 28 <Identity> 28 29 <Civ>sele</Civ> 29 30 <GenericName>Military Colony</GenericName> 30 31 <SpecificName>Klēroukhia</SpecificName> 31 32 <Classes datatype="tokens">Town Colony</Classes> 32 33 <History>The Seleucid kings invited Greeks, Macedonians, Galatians (Gauls), Cretans, and Thracians alike to settle in within the vast territories of the empire. They settled in military colonies called cleruchies (klēroukhia). Under this arrangement, the settlers were given a plot of land, or a kleros, and in return were required to serve in the great king's army when called to duty. This created a upper-middle class of military settlers who owed their livelihoods and fortunes to the Syrian kings and helped grow the available manpower for the imperial Seleucid army. A side effect of this system was that it drained the Greek homeland of military-aged men, a contributing factor to Greece's eventual conquest by Rome.</History> 33 34 <Tooltip>This is the Seleucid expansion building, similar to Civic Centers for other factions. It is weaker and carries a smaller territory influence, but is cheaper and built faster. … … 34 35 - Train settler-soldiers of various nationalities. 35 36 - Min. distance from other Military Colonies: 120 meters.</Tooltip> 36 37 <Icon>structures/military_settlement.png</Icon> 37 <RequiredTechnology>phase_town</RequiredTechnology>38 38 </Identity> 39 39 <Obstruction> 40 40 <Static width="23.0" depth="23.0"/> … … 41 41 </Obstruction> 42 42 <ProductionQueue> 43 43 <Entities datatype="tokens"> 44 45 44 units/sele_infantry_swordsman_b 45 units/sele_infantry_archer_b 46 46 units/sele_cavalry_spearman_b 47 47 </Entities> 48 48 <Technologies datatype="tokens"> -
binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
70 70 </Classes> 71 71 <VisibleClasses datatype="tokens">CivilCentre</VisibleClasses> 72 72 <Icon>structures/civic_centre.png</Icon> 73 <RequiredTechnology>phase_town</RequiredTechnology>74 73 </Identity> 75 74 <Loot> 76 75 <xp>200</xp> -
binaries/data/mods/public/simulation/templates/units/ptol_infantry_archer_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/ptol_military_colony7 6 structures/ptol_lighthouse 8 7 structures/ptol_library 9 8 structures/ptol_wonder 10 9 </Entities> 10 <ConditionalEntities> 11 <CivilCentre> 12 <Template>structures/ptol_civil_centre</Template> 13 <Condition>Smaller</Condition> 14 <Category>CivilCentre</Category> 15 <Number>1</Number> 16 </CivilCentre> 17 <Colony> 18 <Template>structures/ptol_military_colony</Template> 19 <Condition>Greater</Condition> 20 <Category>CivilCentre</Category> 21 <Number>0</Number> 22 </Colony> 23 </ConditionalEntities> 11 24 </Builder> 12 25 <Cost> 13 26 <BuildTime>7</BuildTime> -
binaries/data/mods/public/simulation/templates/units/ptol_infantry_javelinist_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/ptol_military_colony7 6 structures/ptol_lighthouse 8 7 structures/ptol_library 9 8 structures/ptol_wonder 10 9 </Entities> 10 <ConditionalEntities> 11 <CivilCentre> 12 <Template>structures/ptol_civil_centre</Template> 13 <Condition>Smaller</Condition> 14 <Category>CivilCentre</Category> 15 <Number>1</Number> 16 </CivilCentre> 17 <Colony> 18 <Template>structures/ptol_military_colony</Template> 19 <Condition>Greater</Condition> 20 <Category>CivilCentre</Category> 21 <Number>0</Number> 22 </Colony> 23 </ConditionalEntities> 11 24 </Builder> 12 25 <Identity> 13 26 <Civ>ptol</Civ> -
binaries/data/mods/public/simulation/templates/units/ptol_infantry_slinger_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/ptol_military_colony7 6 structures/ptol_lighthouse 8 7 structures/ptol_library 9 8 structures/ptol_wonder 10 9 </Entities> 10 <ConditionalEntities> 11 <CivilCentre> 12 <Template>structures/ptol_civil_centre</Template> 13 <Condition>Smaller</Condition> 14 <Category>CivilCentre</Category> 15 <Number>1</Number> 16 </CivilCentre> 17 <Colony> 18 <Template>structures/ptol_military_colony</Template> 19 <Condition>Greater</Condition> 20 <Category>CivilCentre</Category> 21 <Number>0</Number> 22 </Colony> 23 </ConditionalEntities> 11 24 </Builder> 12 25 <Identity> 13 26 <Civ>ptol</Civ> -
binaries/data/mods/public/simulation/templates/units/ptol_infantry_spearman_2_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/ptol_military_colony7 6 structures/ptol_lighthouse 8 7 structures/ptol_library 9 8 structures/ptol_wonder 10 9 </Entities> 10 <ConditionalEntities> 11 <CivilCentre> 12 <Template>structures/ptol_civil_centre</Template> 13 <Condition>Smaller</Condition> 14 <Category>CivilCentre</Category> 15 <Number>1</Number> 16 </CivilCentre> 17 <Colony> 18 <Template>structures/ptol_military_colony</Template> 19 <Condition>Greater</Condition> 20 <Category>CivilCentre</Category> 21 <Number>0</Number> 22 </Colony> 23 </ConditionalEntities> 11 24 </Builder> 12 25 <Cost> 13 26 <Resources> -
binaries/data/mods/public/simulation/templates/units/ptol_infantry_spearman_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/ptol_military_colony7 6 structures/ptol_lighthouse 8 7 structures/ptol_library 9 8 structures/ptol_wonder 10 9 </Entities> 10 <ConditionalEntities> 11 <CivilCentre> 12 <Template>structures/ptol_civil_centre</Template> 13 <Condition>Smaller</Condition> 14 <Category>CivilCentre</Category> 15 <Number>1</Number> 16 </CivilCentre> 17 <Colony> 18 <Template>structures/ptol_military_colony</Template> 19 <Condition>Greater</Condition> 20 <Category>CivilCentre</Category> 21 <Number>0</Number> 22 </Colony> 23 </ConditionalEntities> 11 24 </Builder> 12 25 <Identity> 13 26 <Civ>ptol</Civ> -
binaries/data/mods/public/simulation/templates/units/ptol_infantry_swordsman_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/ptol_military_colony7 6 structures/ptol_lighthouse 8 7 structures/ptol_library 9 8 structures/ptol_wonder 10 9 </Entities> 10 <ConditionalEntities> 11 <CivilCentre> 12 <Template>structures/ptol_civil_centre</Template> 13 <Condition>Smaller</Condition> 14 <Category>CivilCentre</Category> 15 <Number>1</Number> 16 </CivilCentre> 17 <Colony> 18 <Template>structures/ptol_military_colony</Template> 19 <Condition>Greater</Condition> 20 <Category>CivilCentre</Category> 21 <Number>0</Number> 22 </Colony> 23 </ConditionalEntities> 11 24 </Builder> 12 25 <Cost> 13 26 <Resources> -
binaries/data/mods/public/simulation/templates/units/ptol_support_female_citizen.xml
4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 6 </Entities> 7 <ConditionalEntities> 8 <CivilCentre> 9 <Template>structures/ptol_civil_centre</Template> 10 <Condition>Smaller</Condition> 11 <Category>CivilCentre</Category> 12 <Number>1</Number> 13 </CivilCentre> 14 </ConditionalEntities> 7 15 </Builder> 8 16 <Identity> 9 17 <Civ>ptol</Civ> -
binaries/data/mods/public/simulation/templates/units/sele_infantry_archer_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/sele_military_colony7 6 structures/sele_library 8 7 structures/sele_wonder 9 8 </Entities> 9 <ConditionalEntities> 10 <CivilCentre> 11 <Template>structures/sele_civil_centre</Template> 12 <Condition>Smaller</Condition> 13 <Category>CivilCentre</Category> 14 <Number>1</Number> 15 </CivilCentre> 16 <Colony> 17 <Template>structures/sele_military_colony</Template> 18 <Condition>Greater</Condition> 19 <Category>CivilCentre</Category> 20 <Number>0</Number> 21 </Colony> 22 </ConditionalEntities> 10 23 </Builder> 11 24 <Identity> 12 25 <Civ>sele</Civ> -
binaries/data/mods/public/simulation/templates/units/sele_infantry_javelinist_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/sele_military_colony7 6 structures/sele_library 8 7 structures/sele_wonder 9 8 </Entities> 9 <ConditionalEntities> 10 <CivilCentre> 11 <Template>structures/sele_civil_centre</Template> 12 <Condition>Smaller</Condition> 13 <Category>CivilCentre</Category> 14 <Number>1</Number> 15 </CivilCentre> 16 <Colony> 17 <Template>structures/sele_military_colony</Template> 18 <Condition>Greater</Condition> 19 <Category>CivilCentre</Category> 20 <Number>0</Number> 21 </Colony> 22 </ConditionalEntities> 10 23 </Builder> 11 24 <Identity> 12 25 <Civ>sele</Civ> -
binaries/data/mods/public/simulation/templates/units/sele_infantry_spearman_2_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/sele_military_colony7 6 structures/sele_library 8 7 structures/sele_wonder 9 8 </Entities> 9 <ConditionalEntities> 10 <CivilCentre> 11 <Template>structures/sele_civil_centre</Template> 12 <Condition>Smaller</Condition> 13 <Category>CivilCentre</Category> 14 <Number>1</Number> 15 </CivilCentre> 16 <Colony> 17 <Template>structures/sele_military_colony</Template> 18 <Condition>Greater</Condition> 19 <Category>CivilCentre</Category> 20 <Number>0</Number> 21 </Colony> 22 </ConditionalEntities> 10 23 </Builder> 11 24 <Identity> 12 25 <Civ>sele</Civ> -
binaries/data/mods/public/simulation/templates/units/sele_infantry_spearman_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/sele_military_colony7 6 structures/sele_library 8 7 structures/sele_wonder 9 8 </Entities> 9 <ConditionalEntities> 10 <CivilCentre> 11 <Template>structures/sele_civil_centre</Template> 12 <Condition>Smaller</Condition> 13 <Category>CivilCentre</Category> 14 <Number>1</Number> 15 </CivilCentre> 16 <Colony> 17 <Template>structures/sele_military_colony</Template> 18 <Condition>Greater</Condition> 19 <Category>CivilCentre</Category> 20 <Number>0</Number> 21 </Colony> 22 </ConditionalEntities> 10 23 </Builder> 11 24 <Identity> 12 25 <Civ>sele</Civ> -
binaries/data/mods/public/simulation/templates/units/sele_infantry_swordsman_b.xml
3 3 <Builder> 4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 structures/sele_military_colony7 6 structures/sele_library 8 7 structures/sele_wonder 9 8 </Entities> 9 <ConditionalEntities> 10 <CivilCentre> 11 <Template>structures/sele_civil_centre</Template> 12 <Condition>Smaller</Condition> 13 <Category>CivilCentre</Category> 14 <Number>1</Number> 15 </CivilCentre> 16 <Colony> 17 <Template>structures/sele_military_colony</Template> 18 <Condition>Greater</Condition> 19 <Category>CivilCentre</Category> 20 <Number>0</Number> 21 </Colony> 22 </ConditionalEntities> 10 23 </Builder> 11 24 <Identity> 12 25 <Civ>sele</Civ> -
binaries/data/mods/public/simulation/templates/units/sele_support_female_citizen.xml
4 4 <Entities datatype="tokens"> 5 5 -structures/{civ}_civil_centre 6 6 </Entities> 7 <ConditionalEntities> 8 <CivilCentre> 9 <Template>structures/sele_civil_centre</Template> 10 <Condition>Smaller</Condition> 11 <Category>CivilCentre</Category> 12 <Number>1</Number> 13 </CivilCentre> 14 </ConditionalEntities> 7 15 </Builder> 8 16 <Identity> 9 17 <Civ>sele</Civ>