Index: ps/trunk/binaries/data/mods/public/globalscripts/Templates.js
===================================================================
--- ps/trunk/binaries/data/mods/public/globalscripts/Templates.js
+++ ps/trunk/binaries/data/mods/public/globalscripts/Templates.js
@@ -441,7 +441,7 @@
};
ret.icon = template.Identity.Icon;
ret.tooltip = template.Identity.Tooltip;
- ret.requiredTechnology = template.Identity.RequiredTechnology;
+ ret.requirements = template.Identity.Requirements;
ret.visibleIdentityClasses = GetVisibleIdentityClasses(template.Identity);
ret.nativeCiv = template.Identity.Civ;
}
@@ -476,8 +476,8 @@
"entity": upgrade.Entity,
"tooltip": upgrade.Tooltip,
"cost": cost,
- "icon": upgrade.Icon || undefined,
- "requiredTechnology": upgrade.RequiredTechnology || undefined
+ "icon": upgrade.Icon,
+ "requirements": upgrade.Requirements
});
}
}
Index: ps/trunk/binaries/data/mods/public/gui/common/tooltips.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/common/tooltips.js
+++ ps/trunk/binaries/data/mods/public/gui/common/tooltips.js
@@ -956,14 +956,17 @@
return "";
}
-function getRequiredTechnologyTooltip(technologyEnabled, requiredTechnology, civ)
+function getRequirementsTooltip(enabled, requirements, civ)
{
- if (technologyEnabled)
+ if (enabled)
return "";
- return sprintf(translate("Requires %(technology)s"), {
- "technology": getEntityNames(GetTechnologyData(requiredTechnology, civ))
- });
+ // Simple requirements (one tech) can be translated on the fly.
+ if ("Techs" in requirements && !requirements.Techs.includes(" "))
+ return sprintf(translate("Requires %(technology)s"), {
+ "technology": getEntityNames(GetTechnologyData(requirements.Techs, civ))
+ });
+ return translate(requirements.Tooltip);
}
/**
Index: ps/trunk/binaries/data/mods/public/gui/reference/common/TemplateLoader.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/common/TemplateLoader.js
+++ ps/trunk/binaries/data/mods/public/gui/reference/common/TemplateLoader.js
@@ -293,8 +293,8 @@
if (parentTemplate.Upgrade[upgrade].Entity)
return [inheritedVariance[0], TemplateVariant.upgrade, upgrade.toLowerCase()];
- if (template.Identity.RequiredTechnology)
- return [inheritedVariance[0], TemplateVariant.unlockedByTechnology, template.Identity.RequiredTechnology];
+ if (template.Identity.Requirements?.Techs)
+ return [inheritedVariance[0], TemplateVariant.unlockedByTechnology, template.Identity.Requirements?.Techs];
if (parentTemplate.Cost)
for (let res in parentTemplate.Cost.Resources)
Index: ps/trunk/binaries/data/mods/public/gui/reference/common/TemplateParser.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/common/TemplateParser.js
+++ ps/trunk/binaries/data/mods/public/gui/reference/common/TemplateParser.js
@@ -71,12 +71,12 @@
// Set the minimum phase that this entity is available.
// For gaia objects, this is meaningless.
- if (!parsed.requiredTechnology)
+ if (!parsed.requirements)
parsed.phase = this.phaseList[0];
- else if (this.TemplateLoader.isPhaseTech(parsed.requiredTechnology))
- parsed.phase = this.getActualPhase(parsed.requiredTechnology);
+ else if (this.TemplateLoader.isPhaseTech(parsed.requirements.Techs))
+ parsed.phase = this.getActualPhase(parsed.requirements.Techs);
else
- parsed.phase = this.getPhaseOfTechnology(parsed.requiredTechnology, civCode);
+ parsed.phase = this.getPhaseOfTechnology(parsed.requirements.Techs, civCode);
if (template.Identity.Rank)
parsed.promotion = {
@@ -256,14 +256,14 @@
data.cost = upgrade.cost;
data.icon = upgrade.icon || data.icon;
data.tooltip = upgrade.tooltip || data.tooltip;
- data.requiredTechnology = upgrade.requiredTechnology || data.requiredTechnology;
+ data.requirements = upgrade.requirements || data.requirements;
- if (!data.requiredTechnology)
+ if (!data.requirements)
data.phase = this.phaseList[0];
- else if (this.TemplateLoader.isPhaseTech(data.requiredTechnology))
- data.phase = this.getActualPhase(data.requiredTechnology);
+ else if (this.TemplateLoader.isPhaseTech(data.requirements.Techs))
+ data.phase = this.getActualPhase(data.requirements.Techs);
else
- data.phase = this.getPhaseOfTechnology(data.requiredTechnology, civCode);
+ data.phase = this.getPhaseOfTechnology(data.requirements.Techs, civCode);
newUpgrades.push(data);
}
Index: ps/trunk/binaries/data/mods/public/gui/session/diplomacy/playercontrols/SpyRequestButton.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/diplomacy/playercontrols/SpyRequestButton.js
+++ ps/trunk/binaries/data/mods/public/gui/session/diplomacy/playercontrols/SpyRequestButton.js
@@ -65,15 +65,15 @@
let tooltip = translate(this.Tooltip);
- if (template.requiredTechnology &&
- !Engine.GuiInterfaceCall("IsTechnologyResearched", {
- "tech": template.requiredTechnology,
+ if (template.requirements &&
+ !Engine.GuiInterfaceCall("AreRequirementsMet", {
+ "requirements": template.requirements,
"player": g_ViewedPlayer
}))
{
- tooltip += "\n" + getRequiredTechnologyTooltip(
+ tooltip += "\n" + getRequirementsTooltip(
false,
- template.requiredTechnology,
+ template.requirements,
GetSimState().players[g_ViewedPlayer].civ);
this.diplomacySpyRequest.enabled = false;
Index: ps/trunk/binaries/data/mods/public/gui/session/selection_panels.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/selection_panels.js
+++ ps/trunk/binaries/data/mods/public/gui/session/selection_panels.js
@@ -166,8 +166,8 @@
if (!template)
return false;
- let technologyEnabled = Engine.GuiInterfaceCall("IsTechnologyResearched", {
- "tech": template.requiredTechnology,
+ const requirementsMet = Engine.GuiInterfaceCall("AreRequirementsMet", {
+ "requirements": template.requirements,
"player": data.player
});
@@ -203,13 +203,13 @@
tooltips.push(
formatLimitString(limits.entLimit, limits.entCount, limits.entLimitChangers),
formatMatchLimitString(limits.matchLimit, limits.matchCount, limits.type),
- getRequiredTechnologyTooltip(technologyEnabled, template.requiredTechnology, GetSimState().players[data.player].civ),
+ getRequirementsTooltip(requirementsMet, template.requirements, GetSimState().players[data.player].civ),
getNeededResourcesTooltip(neededResources));
data.button.tooltip = tooltips.filter(tip => tip).join("\n");
let modifier = "";
- if (!technologyEnabled || limits.canBeAddedCount == 0)
+ if (!requirementsMet || limits.canBeAddedCount == 0)
{
data.button.enabled = false;
modifier += "color:0 0 0 127:grayscale:";
@@ -990,8 +990,8 @@
if (!template)
return false;
- let technologyEnabled = Engine.GuiInterfaceCall("IsTechnologyResearched", {
- "tech": template.requiredTechnology,
+ const requirementsMet = Engine.GuiInterfaceCall("AreRequirementsMet", {
+ "requirements": template.requirements,
"player": data.player
});
@@ -1048,13 +1048,13 @@
tooltips.push(showTemplateViewerOnRightClickTooltip());
tooltips.push(
formatBatchTrainingString(buildingsCountToTrainFullBatch, fullBatchSize, remainderBatch),
- getRequiredTechnologyTooltip(technologyEnabled, template.requiredTechnology, GetSimState().players[data.player].civ),
+ getRequirementsTooltip(requirementsMet, template.requirements, GetSimState().players[data.player].civ),
getNeededResourcesTooltip(neededResources));
data.button.tooltip = tooltips.filter(tip => tip).join("\n");
let modifier = "";
- if (!technologyEnabled || limits.canBeAddedCount == 0)
+ if (!requirementsMet || limits.canBeAddedCount == 0)
{
data.button.enabled = false;
modifier = "color:0 0 0 127:grayscale:";
@@ -1106,11 +1106,9 @@
let progressOverlay = Engine.GetGUIObjectByName("unitUpgradeProgressSlider[" + data.i + "]");
progressOverlay.hidden = true;
- let technologyEnabled = true;
-
- if (data.item.requiredTechnology)
- technologyEnabled = Engine.GuiInterfaceCall("IsTechnologyResearched", {
- "tech": data.item.requiredTechnology,
+ const requirementsMet = !data.item.requirements ||
+ Engine.GuiInterfaceCall("AreRequirementsMet", {
+ "requirements": data.item.requirements,
"player": data.player
});
@@ -1167,7 +1165,7 @@
getEntityCostTooltip(data.item, undefined, undefined, data.unitEntStates.length),
formatLimitString(limits.entLimit, limits.entCount, limits.entLimitChangers),
formatMatchLimitString(limits.matchLimit, limits.matchCount, limits.type),
- getRequiredTechnologyTooltip(technologyEnabled, data.item.requiredTechnology, GetSimState().players[data.player].civ),
+ getRequirementsTooltip(requirementsMet, data.item.requirements, GetSimState().players[data.player].civ),
getNeededResourcesTooltip(neededResources),
showTemplateViewerOnRightClickTooltip());
@@ -1179,7 +1177,7 @@
upgradableEntStates.map(state => state.id));
};
- if (!technologyEnabled || limits.canBeAddedCount == 0 &&
+ if (!requirementsMet || limits.canBeAddedCount == 0 &&
!upgradableEntStates.some(state => hasSameRestrictionCategory(data.item.entity, state.template)))
{
data.button.enabled = false;
Index: ps/trunk/binaries/data/mods/public/simulation/ai/common-api/entity.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/ai/common-api/entity.js
+++ ps/trunk/binaries/data/mods/public/simulation/ai/common-api/entity.js
@@ -73,29 +73,13 @@
return this._classes && MatchesClassList(this._classes, array);
},
- "requiredTech": function() { return this.get("Identity/RequiredTechnology"); },
-
- "available": function(gameState) {
- let techRequired = this.requiredTech();
- if (!techRequired)
- return true;
- return gameState.isResearched(techRequired);
+ "requirements": function() {
+ return this.get("Identity/Requirements");
},
- // specifically
- "phase": function() {
- let techRequired = this.requiredTech();
- if (!techRequired)
- return 0;
- if (techRequired == "phase_village")
- return 1;
- if (techRequired == "phase_town")
- return 2;
- if (techRequired == "phase_city")
- return 3;
- if (techRequired.startsWith("phase_"))
- return 4;
- return 0;
+ "available": function(gameState) {
+ const requirements = this.requirements();
+ return !requirements || Sim.RequirementsHelper.AreRequirementsMet(requirements, PlayerID);
},
"cost": function(productionQueue) {
Index: ps/trunk/binaries/data/mods/public/simulation/ai/petra/headquarters.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/ai/petra/headquarters.js
+++ ps/trunk/binaries/data/mods/public/simulation/ai/petra/headquarters.js
@@ -1897,7 +1897,7 @@
if (!template.available(gameState))
{
- this.buildManager.setUnbuildable(gameState, type, 30, "tech");
+ this.buildManager.setUnbuildable(gameState, type, 30, "requirements");
return false;
}
Index: ps/trunk/binaries/data/mods/public/simulation/ai/petra/queueplanBuilding.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/ai/petra/queueplanBuilding.js
+++ ps/trunk/binaries/data/mods/public/simulation/ai/petra/queueplanBuilding.js
@@ -25,7 +25,7 @@
if (!this.isGo(gameState))
return false;
- if (this.template.requiredTech() && !gameState.isResearched(this.template.requiredTech()))
+ if (!this.template.available(gameState))
return false;
return gameState.ai.HQ.buildManager.hasBuilder(this.type);
Index: ps/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
@@ -661,16 +661,10 @@
return GetTemplateDataHelper(template, owner, aurasTemplate, Resources);
};
-GuiInterface.prototype.IsTechnologyResearched = function(player, data)
+GuiInterface.prototype.AreRequirementsMet = function(player, data)
{
- if (!data.tech)
- return true;
-
- let cmpTechnologyManager = QueryPlayerIDInterface(data.player !== undefined ? data.player : player, IID_TechnologyManager);
- if (!cmpTechnologyManager)
- return false;
-
- return cmpTechnologyManager.IsTechnologyResearched(data.tech);
+ return !data.requirements || RequirementsHelper.AreRequirementsMet(data.requirements,
+ data.player !== undefined ? data.player : player);
};
/**
@@ -2076,7 +2070,7 @@
"GetMultipleEntityStates": 1,
"GetAverageRangeForBuildings": 1,
"GetTemplateData": 1,
- "IsTechnologyResearched": 1,
+ "AreRequirementsMet": 1,
"CheckTechnologyRequirements": 1,
"GetStartedResearch": 1,
"GetBattleState": 1,
Index: ps/trunk/binaries/data/mods/public/simulation/components/Identity.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/Identity.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/Identity.js
@@ -76,9 +76,7 @@
"" +
"" +
"" +
- "" +
- "" +
- "" +
+ RequirementsHelper.BuildSchema() +
"" +
"" +
"" +
Index: ps/trunk/binaries/data/mods/public/simulation/components/TechnologyManager.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/TechnologyManager.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/TechnologyManager.js
@@ -276,8 +276,8 @@
var cmpTempManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
var template = cmpTempManager.GetTemplate(templateName);
- if (template.Identity && template.Identity.RequiredTechnology)
- return this.IsTechnologyResearched(template.Identity.RequiredTechnology);
+ if (template.Identity?.Requirements)
+ return RequirementsHelper.AreRequirementsMet(template.Identity.Requirements, Engine.QueryInterface(this.entity, IID_Player).GetPlayerID());
// If there is no required technology then this entity can be produced
return true;
};
Index: ps/trunk/binaries/data/mods/public/simulation/components/Upgrade.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/Upgrade.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/Upgrade.js
@@ -40,12 +40,7 @@
"" +
"" +
"" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
+ RequirementsHelper.BuildSchema() +
"" +
"" +
"" +
@@ -153,7 +148,7 @@
"icon": choice.Icon || undefined,
"cost": hasCost ? cost : undefined,
"tooltip": choice.Tooltip || undefined,
- "requiredTechnology": this.GetRequiredTechnology(option),
+ "requirements": this.GetRequirements(option),
});
}
@@ -189,14 +184,14 @@
return "CheckPlacementRestrictions" in this.template[this.upgradeTemplates[template]];
};
-Upgrade.prototype.GetRequiredTechnology = function(templateArg)
+Upgrade.prototype.GetRequirements = function(templateArg)
{
let choice = this.upgradeTemplates[templateArg] || templateArg;
- if (this.template[choice].RequiredTechnology)
- return this.template[choice].RequiredTechnology;
+ if (this.template[choice].Requirements)
+ return this.template[choice].Requirements;
- if (!("RequiredTechnology" in this.template[choice]))
+ if (!("Requirements" in this.template[choice]))
return undefined;
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
@@ -207,7 +202,7 @@
entType = entType.replace(/\{civ\}/g, cmpIdentity.GetCiv());
let template = cmpTemplateManager.GetTemplate(entType);
- return template.Identity.RequiredTechnology || undefined;
+ return template.Identity.Requirements || undefined;
};
Upgrade.prototype.GetResourceCosts = function(template)
Index: ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Identity.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Identity.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Identity.js
@@ -1,3 +1,4 @@
+Engine.LoadHelperScript("Requirements.js");
Engine.LoadComponentScript("Identity.js");
let cmpIdentity = ConstructComponent(5, "Identity", {
@@ -32,7 +33,9 @@
"Classes": { "_string": "CitizenSoldier Human Organic" },
"VisibleClasses": { "_string": "Javelineer" },
"Icon": "units/iber_infantry_javelineer.png",
- "RequiredTechnology": "phase_town"
+ "Requirements": {
+ "Techs": "phase_town"
+ }
});
TS_ASSERT_EQUALS(cmpIdentity.GetCiv(), "iber");
Index: ps/trunk/binaries/data/mods/public/simulation/components/tests/test_UpgradeModification.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/components/tests/test_UpgradeModification.js
+++ ps/trunk/binaries/data/mods/public/simulation/components/tests/test_UpgradeModification.js
@@ -1,4 +1,5 @@
Engine.LoadHelperScript("Player.js");
+Engine.LoadHelperScript("Requirements.js");
Engine.LoadHelperScript("ValueModification.js");
Resources = {
"BuildSchema": type => {
Index: ps/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
+++ ps/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
@@ -783,10 +783,7 @@
continue;
}
- let cmpTechnologyManager = QueryOwnerInterface(ent, IID_TechnologyManager);
- let requiredTechnology = cmpUpgrade.GetRequiredTechnology(cmd.template);
-
- if (requiredTechnology && (!cmpTechnologyManager || !cmpTechnologyManager.IsTechnologyResearched(requiredTechnology)))
+ if (!RequirementsHelper.AreRequirementsMet(cmpUpgrade.GetRequirements(cmd.template), player))
{
if (g_DebugCommands)
warn("Invalid command: upgrading is not possible for this player or requires unresearched technology: " + uneval(cmd));
Index: ps/trunk/binaries/data/mods/public/simulation/helpers/Requirements.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/helpers/Requirements.js
+++ ps/trunk/binaries/data/mods/public/simulation/helpers/Requirements.js
@@ -0,0 +1,164 @@
+function RequirementsHelper() {}
+
+RequirementsHelper.prototype.DEFAULT_RECURSION_DEPTH = 1;
+
+RequirementsHelper.prototype.EntityRequirementsSchema =
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "";
+
+RequirementsHelper.prototype.TechnologyRequirementsSchema =
+ "" +
+ "" +
+ "";
+
+/**
+ * @param {number} recursionDepth - How deep we recurse.
+ * @return {string} - A RelaxRNG schema for requirements.
+ */
+RequirementsHelper.prototype.RequirementsSchema = function(recursionDepth)
+{
+ return "" +
+ "" +
+ this.ChoicesSchema(--recursionDepth) +
+ "";
+};
+
+/**
+ * @param {number} recursionDepth - How deep we recurse.
+ * @return {string} - A RelaxRNG schema for chosing requirements.
+ */
+RequirementsHelper.prototype.ChoicesSchema = function(recursionDepth)
+{
+ const allAnySchema = recursionDepth > 0 ? "" +
+ "" +
+ this.RequirementsSchema(recursionDepth) +
+ "" +
+ "" +
+ this.RequirementsSchema(recursionDepth) +
+ "" : "";
+
+ return "" +
+ "" +
+ allAnySchema +
+ this.EntityRequirementsSchema +
+ this.TechnologyRequirementsSchema +
+ "";
+};
+
+/**
+ * @param {number} recursionDepth - How deeply recursive we build the schema.
+ * @return {string} - A RelaxRNG schema for requirements.
+ */
+RequirementsHelper.prototype.BuildSchema = function(recursionDepth = this.DEFAULT_RECURSION_DEPTH)
+{
+ return "" +
+ "" +
+ "" +
+ this.ChoicesSchema(recursionDepth) +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "";
+};
+
+/**
+ * @param {Object} template - The requirements template as defined above.
+ * @param {number} playerID -
+ * @return {boolean} -
+ */
+RequirementsHelper.prototype.AreRequirementsMet = function(template, playerID)
+{
+ if (!template || !Object.keys(template).length)
+ return true;
+
+ const cmpTechManager = QueryPlayerIDInterface(playerID, IID_TechnologyManager);
+ return this.AllRequirementsMet(template, cmpTechManager);
+};
+
+/**
+ * @param {Object} template - The requirements template for "all".
+ * @param {component} cmpTechManager -
+ * @return {boolean} -
+ */
+RequirementsHelper.prototype.AllRequirementsMet = function(template, cmpTechManager)
+{
+ for (const requirementType in template)
+ {
+ const requirement = template[requirementType];
+ if (requirementType === "All" && !this.AllRequirementsMet(requirement, cmpTechManager))
+ return false;
+ if (requirementType === "Any" && !this.AnyRequirementsMet(requirement, cmpTechManager))
+ return false;
+ if (requirementType === "Entities")
+ {
+ for (const className in requirement)
+ {
+ const entReq = requirement[className];
+ if ("Count" in entReq && (!(className in cmpTechManager.classCounts) || cmpTechManager.classCounts[className] < entReq.Count))
+ return false;
+ if ("Variants" in entReq && (!(className in cmpTechManager.typeCountsByClass) || Object.keys(cmpTechManager.typeCountsByClass[className]).length < entReq.Variants))
+ return false;
+ }
+ }
+ if (requirementType === "Techs")
+ for (const tech of requirement.split(" "))
+ if (tech[0] === "!" ? cmpTechManager.IsTechnologyResearched(tech.substring(1)) :
+ !cmpTechManager.IsTechnologyResearched(tech))
+ return false;
+ }
+ return true;
+};
+
+/**
+ * @param {Object} template - The requirements template for "any".
+ * @param {component} cmpTechManager -
+ * @return {boolean} -
+ */
+RequirementsHelper.prototype.AnyRequirementsMet = function(template, cmpTechManager)
+{
+ for (const requirementType in template)
+ {
+ const requirement = template[requirementType];
+ if (requirementType === "All" && this.AllRequirementsMet(requirement, cmpTechManager))
+ return true;
+ if (requirementType === "Any" && this.AnyRequirementsMet(requirement, cmpTechManager))
+ return true;
+ if (requirementType === "Entities")
+ {
+ for (const className in requirement)
+ {
+ const entReq = requirement[className];
+ if ("Count" in entReq && className in cmpTechManager.classCounts && cmpTechManager.classCounts[className] >= entReq.Count)
+ return true;
+ if ("Variants" in entReq && className in cmpTechManager.typeCountsByClass && Object.keys(cmpTechManager.typeCountsByClass[className]).length >= entReq.Variants)
+ return true;
+ }
+ }
+ if (requirementType === "Techs")
+ for (const tech of requirement.split(" "))
+ if (tech[0] === "!" ? !cmpTechManager.IsTechnologyResearched(tech.substring(1)) :
+ cmpTechManager.IsTechnologyResearched(tech))
+ return true;
+ }
+ return false;
+};
+
+Engine.RegisterGlobal("RequirementsHelper", new RequirementsHelper());
Index: ps/trunk/binaries/data/mods/public/simulation/helpers/tests/test_Requirements.js
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/helpers/tests/test_Requirements.js
+++ ps/trunk/binaries/data/mods/public/simulation/helpers/tests/test_Requirements.js
@@ -0,0 +1,718 @@
+Engine.LoadComponentScript("interfaces/PlayerManager.js");
+Engine.LoadComponentScript("interfaces/TechnologyManager.js");
+Engine.LoadHelperScript("Player.js");
+Engine.LoadHelperScript("Requirements.js");
+
+const playerID = 1;
+const playerEnt = 11;
+
+AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
+ "GetPlayerByID": () => playerEnt
+});
+
+// First test no requirements.
+let template = {
+};
+
+const met = () => TS_ASSERT(RequirementsHelper.AreRequirementsMet(template, playerID));
+const notMet = () => TS_ASSERT(!RequirementsHelper.AreRequirementsMet(template, playerID));
+
+met();
+
+// Simple requirements are assumed to be additive.
+template = {
+ "Techs": "phase_city"
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => false
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_town"
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_town" || tech === "phase_city"
+});
+met();
+
+template = {
+ "Techs": "cartography phase_city"
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => false
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_town"
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_town" || tech === "phase_city"
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "cartography" || tech === "phase_town"
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "cartography" || tech === "phase_city"
+});
+met();
+
+
+// Additive requirements (all should to be met).
+// Entity requirements.
+template = {
+ "All": {
+ "Entities": {
+ "class_1": {
+ "Count": 1
+ }
+ }
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {},
+ "typeCountsByClass": {}
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 0
+ },
+ "typeCountsByClass": {}
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_2": 1
+ },
+ "typeCountsByClass": {}
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 1
+ },
+ "typeCountsByClass": {}
+});
+met();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 1
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 1
+ }
+ }
+});
+met();
+
+
+template = {
+ "All": {
+ "Entities": {
+ "class_1": {
+ "Variants": 2
+ }
+ }
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 1,
+ "template_2": 1
+ }
+ }
+});
+met();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 1
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 1
+ }
+ }
+});
+notMet();
+
+template = {
+ "All": {
+ "Entities": {
+ "class_1": {
+ "Count": 1,
+ "Variants": 2
+ }
+ }
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 1
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 1
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 1,
+ "template_2": 1
+ }
+ }
+});
+met();
+
+template = {
+ "All": {
+ "Entities": {
+ "class_1": {
+ "Count": 3,
+ "Variants": 2
+ }
+ }
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 1,
+ "template_2": 1
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2,
+ "template_2": 1
+ }
+ }
+});
+met();
+
+
+// Technology requirements.
+template = {
+ "All": {
+ "Techs": "phase_town"
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => false
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_town"
+});
+met();
+
+template = {
+ "All": {
+ "Techs": "phase_city"
+ }
+};
+notMet();
+
+template = {
+ "All": {
+ "Techs": "phase_town phase_city"
+ }
+};
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_town" || tech === "phase_city"
+});
+met();
+
+template = {
+ "All": {
+ "Techs": "!phase_city"
+ }
+};
+notMet();
+
+template = {
+ "All": {
+ "Techs": "!phase_town phase_city"
+ }
+};
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_city"
+});
+met();
+
+
+// Combination of Entity and Technology requirements.
+template = {
+ "All": {
+ "Entities": {
+ "class_1": {
+ "Count": 3,
+ "Variants": 2
+ }
+ },
+ "Techs": "phase_town"
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "IsTechnologyResearched": (tech) => false,
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2,
+ "template_2": 1
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_town",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2,
+ "template_2": 1
+ }
+ }
+});
+met();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_city",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2,
+ "template_2": 1
+ }
+ }
+});
+notMet();
+
+
+// Choice requirements (at least one needs to be met).
+// Entity requirements.
+template = {
+ "Any": {
+ "Entities": {
+ "class_1": {
+ "Count": 1,
+ }
+ },
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 0
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 1
+ }
+});
+met();
+
+template = {
+ "Any": {
+ "Entities": {
+ "class_1": {
+ "Count": 5,
+ "Variants": 2
+ }
+ },
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 3,
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2,
+ "template_2": 1
+ }
+ }
+});
+met();
+
+
+// Technology requirements.
+template = {
+ "Any": {
+ "Techs": "phase_town"
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_city"
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_town"
+});
+met();
+
+template = {
+ "Any": {
+ "Techs": "phase_town phase_city"
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_city"
+});
+met();
+
+template = {
+ "Any": {
+ "Techs": "!phase_town"
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_town"
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_city"
+});
+met();
+
+template = {
+ "Any": {
+ "Techs": "!phase_town phase_city"
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "IsTechnologyResearched": (tech) => tech === "phase_town" || tech === "phase_city"
+});
+met();
+
+
+// Combinational requirements of entities and technologies.
+template = {
+ "Any": {
+ "Entities": {
+ "class_1": {
+ "Count": 3,
+ "Variants": 2
+ }
+ },
+ "Techs": "!phase_town"
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_town",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 3
+ }
+ }
+});
+met();
+
+
+// Nested requirements.
+template = {
+ "All": {
+ "All": {
+ "Techs": "!phase_town"
+ },
+ "Any": {
+ "Entities": {
+ "class_1": {
+ "Count": 3,
+ "Variants": 2
+ }
+ },
+ "Techs": "phase_city"
+ }
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_town",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 3
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_town" || tech === "phase_city",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 3
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_city",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2
+ }
+ }
+});
+met();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "IsTechnologyResearched": (tech) => false,
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 1,
+ "template_2": 1
+ }
+ }
+});
+met();
+
+
+template = {
+ "Any": {
+ "All": {
+ "Techs": "!phase_town"
+ },
+ "Any": {
+ "Entities": {
+ "class_1": {
+ "Count": 3,
+ "Variants": 2
+ }
+ },
+ "Techs": "phase_city"
+ }
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_town",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 3
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_town" || tech === "phase_city",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 3
+ }
+ }
+});
+met();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_city",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2
+ }
+ }
+});
+met();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "IsTechnologyResearched": (tech) => false,
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 1,
+ "template_2": 1
+ }
+ }
+});
+met();
+
+
+// Two levels deep nested.
+template = {
+ "All": {
+ "Any": {
+ "All": {
+ "Techs": "cartography phase_imperial",
+ },
+ "Entities": {
+ "class_1": {
+ "Count": 3,
+ "Variants": 2
+ }
+ },
+ "Techs": "phase_city"
+ },
+ "Techs": "!phase_town"
+ }
+};
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_town",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_city",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2
+ }
+ }
+});
+met();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "IsTechnologyResearched": (tech) => tech === "phase_imperial",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2
+ }
+ }
+});
+notMet();
+
+AddMock(playerEnt, IID_TechnologyManager, {
+ "classCounts": {
+ "class_1": 2
+ },
+ "IsTechnologyResearched": (tech) => tech === "cartography" || tech === "phase_imperial",
+ "typeCountsByClass": {
+ "class_1": {
+ "template_1": 2
+ }
+ }
+});
+met();
Index: ps/trunk/binaries/data/mods/public/simulation/templates/gaia/fauna_pig_trainable.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/gaia/fauna_pig_trainable.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/gaia/fauna_pig_trainable.xml
@@ -1,9 +1,11 @@
-
- phase_town
+
+ phase_town
+
+
false
Index: ps/trunk/binaries/data/mods/public/simulation/templates/special/spy.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/special/spy.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/special/spy.xml
@@ -15,8 +15,10 @@
Spy
Spy
technologies/spy_trader.png
- unlock_spies
true
+
+ unlock_spies
+
false
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/athen/gymnasium.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/athen/gymnasium.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/athen/gymnasium.xml
@@ -25,7 +25,9 @@
ConquestCritical CivSpecific
Gymnasium -City Town
structures/gymnasium.png
- phase_town
+
+ phase_town
+
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/crannog.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/crannog.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/crannog.xml
@@ -16,7 +16,9 @@
CivSpecific
Naval
structures/crannog.png
- phase_town
+
+ phase_town
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/cart/apartment.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/cart/apartment.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/cart/apartment.xml
@@ -25,7 +25,9 @@
CivSpecific
-Village Town
structures/apartment.png
- phase_town
+
+ phase_town
+
10
@@ -37,11 +39,11 @@
10
+
+ 2
+
structures/carthaginians/fndn_house.xml
structures/carthaginians/apartment.xml
-
- 2
-
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/cart/wallset_short.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/cart/wallset_short.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/cart/wallset_short.xml
@@ -3,8 +3,10 @@
cart
Low Wall
- phase_village
structures/palisade_wall.png
+
+ phase_village
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/assembly.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/assembly.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/assembly.xml
@@ -30,7 +30,9 @@
ConquestCritical CivSpecific
City Council
structures/tholos.png
- phase_city
+
+ phase_city
+
80
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/tavern.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/tavern.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/tavern.xml
@@ -21,7 +21,9 @@
Taberna
-Village Town
structures/embassy_celtic.png
- phase_town
+
+ phase_town
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/academy.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/academy.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/academy.xml
@@ -30,7 +30,9 @@
Train Champions and research their technologies.
-Village City Academy
structures/embassy_italic.png
- phase_city
+
+ phase_city
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/civil_centre.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/civil_centre.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/civil_centre.xml
@@ -31,13 +31,15 @@
structures/{civ}/civil_centre_court
This greatly increases the health, capture resistance, and garrison capacity of this specific Civic Center. Unlock training of Heroes here and reduce its research and batch training times by half.
- phase_city
300
300
upgrading
+
+ phase_city
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/civil_centre_court.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/civil_centre_court.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/civil_centre_court.xml
@@ -18,8 +18,10 @@
Cháotíng
Defensive ImperialCourt City
CivCentre CivSpecific
- phase_city
structures/military_settlement.png
+
+ phase_city
+
30
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/defense_tower.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/defense_tower.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/defense_tower.xml
@@ -11,24 +11,26 @@
han
Fángyù Tǎ
+
+
+
+
+ 22.0
+
structures/{civ}/defense_tower_great
This tower has greater range, greater attack, greater health, and is twice as difficult to capture.
- phase_city
200
upgrading
+
+ phase_city
+
-
-
-
-
- 22.0
-
structures/han/tower_large.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/laozigate.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/laozigate.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/laozigate.xml
@@ -23,7 +23,9 @@
CivSpecific
LaoziGate Town
structures/paifang.png
- phase_town
+
+ phase_town
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/ministry.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/ministry.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/ministry.xml
@@ -38,8 +38,10 @@
CivSpecific
ImperialMinistry Town
Train the Nine Ministers. Territory root. Research a powerful suite of Administrative technologies.
- phase_town
structures/imperial_ministry.png
+
+ phase_town
+
200
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/wallset_palisade.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/wallset_palisade.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/han/wallset_palisade.xml
@@ -6,7 +6,9 @@
Wall off an area. Build in own or neutral territory.
-Wall Palisade
structures/palisade_wall.png
- phase_village
+
+ phase_village
+
0.95
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/iber/monument.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/iber/monument.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/iber/monument.xml
@@ -33,7 +33,9 @@
CivSpecific
Monument Town
structures/iberian_bull.png
- phase_town
+
+ phase_town
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/kush/pyramid_large.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/kush/pyramid_large.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/kush/pyramid_large.xml
@@ -27,8 +27,10 @@
mr ʿȝ
-ConquestCritical CivSpecific
City Pyramid
- phase_city
structures/kush_pyramid_big.png
+
+ phase_city
+
90
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/kush/pyramid_small.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/kush/pyramid_small.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/kush/pyramid_small.xml
@@ -24,8 +24,10 @@
mr
-ConquestCritical CivSpecific
Village Pyramid
- phase_village
structures/kush_pyramid_small.png
+
+ phase_village
+
30
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/kush/temple_amun.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/kush/temple_amun.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/kush/temple_amun.xml
@@ -30,7 +30,9 @@
CivSpecific
-Town City TempleOfAmun
structures/temple_epic.png
- phase_city
+
+ phase_city
+
2
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/maur/elephant_stable.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/maur/elephant_stable.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/maur/elephant_stable.xml
@@ -3,9 +3,11 @@
maur
Vāraṇaśālā
- phase_town
CivSpecific
-City Town
+
+ phase_town
+
structures/mauryas/stable_elephant.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/maur/tower_double.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/maur/tower_double.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/maur/tower_double.xml
@@ -18,7 +18,9 @@
Higher health tower with ramparts for up to 16 archers. Visibly garrisoned archers recieve a range and armor bonus. Only archers can garrison. Needs the murder holes tech to protect its foot.
maur
Udarka
- phase_city
+
+ phase_city
+
40
@@ -29,52 +31,84 @@
- 212.50
+ 2
+ 12.5
+ 0
- 212.52
+ 2
+ 12.5
+ 2
- 212.5-2
+ 2
+ 12.5
+ -2
- 012.52
+ 0
+ 12.5
+ 2
- 012.5-2
+ 0
+ 12.5
+ -2
- -212.50
+ -2
+ 12.5
+ 0
- -212.52
+ -2
+ 12.5
+ 2
- -212.5-2
+ -2
+ 12.5
+ -2
- 2.118.00
+ 2.1
+ 18.0
+ 0
- 2.118.02.1
+ 2.1
+ 18.0
+ 2.1
- 2.118.0-2.1
+ 2.1
+ 18.0
+ -2.1
- 018.02.1
+ 0
+ 18.0
+ 2.1
- 018.0-2.1
+ 0
+ 18.0
+ -2.1
- -2.118.00
+ -2.1
+ 18.0
+ 0
- -2.118.02.1
+ -2.1
+ 18.0
+ 2.1
- -2.118.0-2.1
+ -2.1
+ 18.0
+ -2.1
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/merc_camp_egyptian.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/merc_camp_egyptian.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/merc_camp_egyptian.xml
@@ -30,7 +30,9 @@
MercenaryCamp
Capture this structure to train mercenaries from Hellenistic Egypt.
structures/military_settlement.png
- phase_town
+
+ phase_town
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/ice_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/ice_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/ice_house.xml
@@ -1,72 +1,74 @@
-
-
-
- own
- Yakhchal
-
-
- 60
-
- 100
- 100
-
-
-
-
- 12.0
-
-
-
- 800
- decay|rubble/rubble_stone_3x3
-
-
- pers
- Ice House
- Yakhchāl
- -City Village IceHouse
-
- CivSpecific
-
- phase_village
- structures/yakhchal.png
-
-
- 20
- 20
-
-
-
-
-
-
-
- subterranean_aqueducts
-
-
-
-
- 1.0
-
- 2000
-
-
-
-
- interface/complete/building/complete_farmstead.xml
- attack/destruction/building_collapse_large.xml
-
-
-
- false
- 20
- 30000
-
-
- 20
-
-
- structures/persians/ice_house.xml
- structures/fndn_4x4.xml
-
-
+
+
+
+ own
+ Yakhchal
+
+
+ 60
+
+ 100
+ 100
+
+
+
+
+ 12.0
+
+
+
+ 800
+ decay|rubble/rubble_stone_3x3
+
+
+ pers
+ Ice House
+ Yakhchāl
+ -City Village IceHouse
+
+ CivSpecific
+
+ structures/yakhchal.png
+
+ phase_village
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+
+ subterranean_aqueducts
+
+
+
+
+ 1.0
+
+ 2000
+
+
+
+
+ interface/complete/building/complete_farmstead.xml
+ attack/destruction/building_collapse_large.xml
+
+
+
+ false
+ 20
+ 30000
+
+
+ 20
+
+
+ structures/persians/ice_house.xml
+ structures/fndn_4x4.xml
+
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/ptol/mercenary_camp.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/ptol/mercenary_camp.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/ptol/mercenary_camp.xml
@@ -29,7 +29,9 @@
MercenaryCamp
Cheap Barracks-like structure that is buildable in neutral territory, but casts no territory influence. Train Mercenaries.
structures/mercenary_camp.png
- phase_town
+
+ phase_town
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
@@ -75,7 +75,9 @@
ConquestCritical CivSpecific
City ArmyCamp
structures/roman_camp.png
- phase_city
+
+ phase_city
+
100
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/temple_mars.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/temple_mars.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/temple_mars.xml
@@ -12,7 +12,9 @@
Temple of Mars
Aedēs Mārtiālis
-Town City TempleOfMars
- phase_city
+
+ phase_city
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/wallset_siege.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/wallset_siege.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome/wallset_siege.xml
@@ -8,7 +8,9 @@
CivSpecific
SiegeWall
structures/siege_wall.png
- phase_city
+
+ phase_city
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/wallset_palisade.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/structures/wallset_palisade.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/wallset_palisade.xml
@@ -5,7 +5,9 @@
Wall off an area. Build in own or neutral territory.
-Wall Palisade
structures/palisade_wall.png
- phase_village
+
+ phase_village
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre_military_colony.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre_military_colony.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre_military_colony.xml
@@ -28,7 +28,9 @@
template_structure_civic_civil_centre_military_colony
Colony
structures/military_settlement.png
- phase_town
+
+ phase_town
+
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml
@@ -27,7 +27,9 @@
template_structure_civic_house
Village House
structures/house.png
- phase_village
+
+ phase_village
+
15
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_stoa.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_stoa.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_stoa.xml
@@ -29,7 +29,9 @@
-ConquestCritical
Town Stoa
structures/stoa.png
- phase_town
+
+ phase_town
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
@@ -31,7 +31,9 @@
Train Healers and research healing technologies.
Town Temple
structures/temple.png
- phase_town
+
+ phase_town
+
60
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_artillery.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_artillery.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_artillery.xml
@@ -55,7 +55,9 @@
template_structure_defensive_tower_artillery
ArtilleryTower
structures/tower_artillery.png
- phase_city
+
+ phase_city
+
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_bolt.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_bolt.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_bolt.xml
@@ -52,7 +52,9 @@
template_structure_defensive_tower_bolt
BoltTower
structures/tower_bolt.png
- phase_city
+
+ phase_city
+
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_sentry.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_sentry.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_sentry.xml
@@ -34,7 +34,9 @@
Garrison Infantry for additional arrows. Needs the “Murder Holes” technology to protect its foot.
SentryTower
structures/sentry_tower.png
- phase_village
+
+ phase_village
+
20
@@ -57,13 +59,15 @@
structures/{civ}/defense_tower
Reinforce with stone and upgrade to a defense tower.
- phase_town
50
100
upgrading
+
+ phase_town
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_stone.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_stone.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower_stone.xml
@@ -32,7 +32,9 @@
Garrison Infantry for additional arrows. Needs the “Murder Holes” technology to protect its foot.
StoneTower
structures/defense_tower.png
- phase_town
+
+ phase_town
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_wall.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_wall.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_wall.xml
@@ -14,7 +14,9 @@
Wall off your town for a stout defense.
Wall
structures/wall.png
- phase_town
+
+ phase_town
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml
@@ -29,7 +29,9 @@
DropsiteFood
Village Farmstead
structures/farmstead.png
- phase_village
+
+ phase_village
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml
@@ -27,7 +27,9 @@
Barter
Trade Town Market
structures/market.png
- phase_town
+
+ phase_town
+
60
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_storehouse.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_storehouse.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_economic_storehouse.xml
@@ -27,7 +27,9 @@
DropsiteWood DropsiteMetal DropsiteStone
Village Storehouse
structures/storehouse.png
- phase_village
+
+ phase_village
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_arsenal.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_arsenal.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_arsenal.xml
@@ -27,7 +27,9 @@
Train Champion Infantry Crossbowmen, construct Siege Engines, and research Siege Engine technologies.
City Arsenal
structures/siege_workshop.png
- phase_city
+
+ phase_city
+
60
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
@@ -28,7 +28,9 @@
Train Infantry and research Infantry technologies.
Village Barracks
structures/barracks.png
- phase_village
+
+ phase_village
+
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_elephant_stable.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_elephant_stable.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_elephant_stable.xml
@@ -27,8 +27,10 @@
template_structure_military_elephant_stable
Train Elephants and research Elephant technologies.
City ElephantStable
- phase_city
structures/stable_elephant.png
+
+ phase_city
+
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_embassy.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_embassy.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_embassy.xml
@@ -22,7 +22,9 @@
Embassy
template_structure_military_embassy
Town Embassy
- phase_town
+
+ phase_town
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_forge.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_forge.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_forge.xml
@@ -25,7 +25,9 @@
-ConquestCritical
Town Forge
structures/blacksmith.png
- phase_town
+
+ phase_town
+
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
@@ -68,7 +68,9 @@
GarrisonFortress
Defensive Fortress
structures/fortress.png
- phase_city
+
+ phase_city
+
60
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_range.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_range.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_range.xml
@@ -24,7 +24,9 @@
Train Ranged Infantry and research technologies.
Village Range
structures/range.png
- phase_village
+
+ phase_village
+
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_stable.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_stable.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_stable.xml
@@ -28,7 +28,9 @@
Train Cavalry and research Cavalry technologies.
Village Stable
structures/stable_01.png
- phase_village
+
+ phase_village
+
40
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
@@ -31,7 +31,9 @@
Raise Domestic Animals for immediate slaughter, or garrison them instead to gain a free trickle of food.
Economic Village Corral
structures/corral.png
- phase_village
+
+ phase_village
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special.xml
@@ -18,7 +18,9 @@
Special Structure
City
- phase_city
+
+ phase_city
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_wonder.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_wonder.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_wonder.xml
@@ -40,7 +40,9 @@
ConquestCritical
City Wonder
structures/wonder.png
- phase_city
+
+ phase_city
+
200
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion.xml
@@ -13,7 +13,9 @@
Human
Soldier Champion
Champion Unit
- phase_city
+
+ phase_city
+
8
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry.xml
@@ -19,7 +19,9 @@
FastMoving
Cavalry
Champion Cavalry
- unlock_champion_cavalry
+
+ unlock_champion_cavalry
+
200
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_fauna_herd_domestic_cattle.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_fauna_herd_domestic_cattle.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_fauna_herd_domestic_cattle.xml
@@ -1,7 +1,9 @@
- phase_city
+
+ phase_city
+
2000
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero.xml
@@ -25,7 +25,9 @@
Soldier Hero
Hero
technologies/laurel_wreath.png
- phase_city
+
+ phase_city
+
400
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_bireme.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_bireme.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_bireme.xml
@@ -50,7 +50,9 @@
Light Warship
Garrison units for transport and to increase firepower. Deals triple damage against Ships.
Ranged Warship Bireme
- phase_town
+
+ phase_town
+
80
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_fire.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_fire.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_fire.xml
@@ -40,7 +40,9 @@
Fire Ship
Unrepairable. Gradually loses health. Can only attack Ships.
Melee Warship Fireship
- phase_town
+
+ phase_town
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_merchant.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_merchant.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_merchant.xml
@@ -19,7 +19,9 @@
Trade between docks. Garrison a Trader aboard for additional profit (+20% for each garrisoned). Gather profitable aquatic treasures.
-ConquestCritical
Trader Bribable
- phase_town
+
+ phase_town
+
20
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_quinquereme.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_quinquereme.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_quinquereme.xml
@@ -54,7 +54,9 @@
Heavy Warship
Garrison units for transport and to increase firepower.
Ranged Warship Quinquereme
- phase_city
+
+ phase_city
+
200
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_trireme.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_trireme.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_ship_trireme.xml
@@ -50,7 +50,9 @@
Medium Warship
Garrison units for transport and to increase firepower. Deals triple damage against Ships.
Ranged Warship Trireme
- phase_town
+
+ phase_town
+
140
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_siege.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_siege.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_siege.xml
@@ -15,7 +15,9 @@
-Organic
Siege
Siege
- phase_city
+
+ phase_city
+
pitch-roll
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml
@@ -27,8 +27,10 @@
Healer
template_unit_support_healer
Basic
- phase_town
Heal units.
+
+ phase_town
+
8
Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_wallset.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/template_wallset.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/template_wallset.xml
@@ -10,8 +10,10 @@
Wall off an area.
Wall
structures/wall.png
- phase_town
true
+
+ phase_town
+
false
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/cavalry_swordsman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/cavalry_swordsman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/cavalry_swordsman_b.xml
@@ -10,7 +10,9 @@
Greek Cavalry
Hippeús
units/athen/cavalry_swordsman.png
- phase_town
+
+ phase_town
+
units/athen/cavalry_swordsman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/champion_marine.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/champion_marine.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/champion_marine.xml
@@ -4,7 +4,9 @@
Athenian Marine
Epibátēs Athēnaîos
units/athen/champion_marine.png
- iphicratean_reforms
+
+ iphicratean_reforms
+
units/athenians/infantry_swordsman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/infantry_javelineer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/infantry_javelineer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/infantry_javelineer_b.xml
@@ -5,7 +5,9 @@
Thracian Peltast
Peltastḗs Thrâx
units/athen/infantry_javelinist.png
- phase_town
+
+ phase_town
+
units/athen/infantry_javelineer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/infantry_marine_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/infantry_marine_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/infantry_marine_archer_b.xml
@@ -5,7 +5,9 @@
Cretan Mercenary Archer
Toxótēs Krētikós
units/mace/infantry_archer.png
- iphicratean_reforms
+
+ iphicratean_reforms
+
units/athen/infantry_marine_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/athen/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/cavalry_swordsman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/cavalry_swordsman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/cavalry_swordsman_b.xml
@@ -6,7 +6,9 @@
Eporedos
Celtic Cavalry
units/brit/cavalry_swordsman.png
- phase_town
+
+ phase_town
+
units/brit/cavalry_swordsman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/champion_chariot.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/champion_chariot.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/champion_chariot.xml
@@ -11,7 +11,9 @@
units/brit/champion_chariot
Chariot
units/brit/champion_chariot.png
- unlock_champion_chariots
+
+ unlock_champion_chariots
+
units/britons/chariot_javelinist_c_m.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/champion_infantry_swordsman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/champion_infantry_swordsman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/champion_infantry_swordsman.xml
@@ -5,7 +5,9 @@
Brythonic Champion
Argos
units/brit/champion_infantry.png
- unlock_champion_infantry
+
+ unlock_champion_infantry
+
units/britons/infantry_swordsman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/infantry_javelineer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/infantry_javelineer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/infantry_javelineer_b.xml
@@ -12,7 +12,9 @@
units/brit/infantry_javelineer_b
Adretos
units/brit/infantry_javelinist.png
- phase_town
+
+ phase_town
+
units/brit/infantry_javelineer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/brit/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/cavalry_spearman_ital_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/cavalry_spearman_ital_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/cavalry_spearman_ital_b.xml
@@ -6,7 +6,9 @@
Ḥayyāl Romaḥ Raḫūv
units/cart/cavalry_spearman_ital_b
units/cart/cavalry_spearman.png
- phase_town
+
+ phase_town
+
units/cart/cavalry_spearman_ital_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/cavalry_swordsman_gaul_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/cavalry_swordsman_gaul_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/cavalry_swordsman_gaul_b.xml
@@ -6,7 +6,9 @@
Ḥayyāl Ḥerev Raḫūv
units/cart/cavalry_swordsman_gaul_b
units/cart/cavalry_swordsman_2.png
- phase_town
+
+ phase_town
+
units/cart/cavalry_swordsman_gaul_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/cavalry_swordsman_iber_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/cavalry_swordsman_iber_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/cavalry_swordsman_iber_b.xml
@@ -11,7 +11,9 @@
Ḥayyāl Ḥerev Raḫūv
units/cart/cavalry_swordsman_iber_b
units/cart/cavalry_swordsman.png
- phase_town
+
+ phase_town
+
units/cart/cavalry_swordsman_iber_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_b.xml
@@ -14,7 +14,9 @@
Sǝḫīr Kidōn
units/cart/infantry_javelineer_iber_b
units/cart/infantry_javelinist.png
- phase_town
+
+ phase_town
+
units/cart/infantry_javelineer_iber_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_slinger_iber_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_slinger_iber_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_slinger_iber_b.xml
@@ -14,7 +14,9 @@
Qallāʿ Ibušimi
units/cart/infantry_slinger_iber_b
units/cart/infantry_slinger.png
- phase_town
+
+ phase_town
+
units/cart/infantry_slinger_iber_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_swordsman_gaul_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_swordsman_gaul_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_swordsman_gaul_b.xml
@@ -14,7 +14,9 @@
Seḫīr Ḥerev
units/cart/infantry_swordsman_gaul_b
units/cart/infantry_swordsman.png
- phase_town
+
+ phase_town
+
units/cart/infantry_swordsman_gaul_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_swordsman_ital_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_swordsman_ital_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/infantry_swordsman_ital_b.xml
@@ -14,7 +14,9 @@
Seḫīr Romaḥ
units/cart/infantry_swordsman_ital_b
units/cart/infantry_swordsman_2.png
- phase_town
+
+ phase_town
+
units/cart/infantry_swordsman_ital_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/ship_merchant.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/ship_merchant.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/ship_merchant.xml
@@ -9,7 +9,9 @@
Seḥer
Trade between docks. Garrison a Trader aboard for additional profit (+20% for each garrisoned). Gather profitable aquatic treasures. Carthaginians have +25% sea trading bonus.
units/cart/ship_merchant.png
- phase_village
+
+ phase_village
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/cart/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/cavalry_swordsman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/cavalry_swordsman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/cavalry_swordsman_b.xml
@@ -5,7 +5,9 @@
units/gaul/cavalry_swordsman_b
Eporedos
units/gaul/cavalry_swordsman.png
- phase_town
+
+ phase_town
+
units/gaul/cavalry_swordsman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/champion_fanatic.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/champion_fanatic.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/champion_fanatic.xml
@@ -12,7 +12,9 @@
Naked Fanatic
Bariogaisatos
units/gaul/champion_fanatic.png
- phase_town
+
+ phase_town
+
12
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/champion_infantry_swordsman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/champion_infantry_swordsman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/champion_infantry_swordsman.xml
@@ -4,7 +4,9 @@
gaul
Soliduros
units/gaul/champion_infantry.png
- unlock_champion_infantry
+
+ unlock_champion_infantry
+
units/gauls/infantry_swordsman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/infantry_slinger_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/infantry_slinger_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/infantry_slinger_b.xml
@@ -10,7 +10,9 @@
units/gaul/infantry_slinger_b
Talmoris
units/gaul/infantry_slinger.png
- phase_town
+
+ phase_town
+
units/gaul/infantry_slinger_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/gaul/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/cavalry_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/cavalry_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/cavalry_archer_b.xml
@@ -5,7 +5,9 @@
units/han/cavalry_archer_b
Gōng Qíbīng
units/han/cavalry_archer.png
- phase_town
+
+ phase_town
+
units/han/cavalry_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/cavalry_crossbowman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/cavalry_crossbowman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/cavalry_crossbowman_b.xml
@@ -5,7 +5,9 @@
units/han/cavalry_crossbowman_b
Han Cavalry Crossbowman
units/han/cavalry_crossbowman.png
- phase_town
+
+ phase_town
+
units/han/cavalry_crossbowman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/cavalry_spearman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/cavalry_spearman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/cavalry_spearman_b.xml
@@ -5,7 +5,9 @@
units/han/cavalry_spearman_b
Máo Qíbīng
units/han/cavalry_spearman.png
- phase_town
+
+ phase_town
+
units/han/cavalry_spearman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_cavalry_spearman_academy.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_cavalry_spearman_academy.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_cavalry_spearman_academy.xml
@@ -5,7 +5,9 @@
Wu Wei Yin Cao Cao Guard
units/han/champion_cavalry
units/han/champion_cavalry_spearman.png
- phase_city
+
+ phase_city
+
units/han/cavalry_spearman_c_m.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_chariot_academy.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_chariot_academy.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_chariot_academy.xml
@@ -9,8 +9,10 @@
Han War Chariot
Zhanche
Chariot
- phase_city
units/han/chariot.png
+
+ phase_city
+
units/han/chariot_archer_m.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_infantry_archer_academy.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_infantry_archer_academy.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_infantry_archer_academy.xml
@@ -6,7 +6,9 @@
Yǔ Lín
units/han/champion_infantry_archer
units/han/champion_infantry_archer.png
- phase_city
+
+ phase_city
+
units/han/infantry_archer_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_infantry_crossbowman_academy.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_infantry_crossbowman_academy.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_infantry_crossbowman_academy.xml
@@ -4,7 +4,9 @@
han
Juezhang
units/han/champion_infantry_crossbowman.png
- phase_city
+
+ phase_city
+
units/han/infantry_crossbowman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_infantry_spearman_academy.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_infantry_spearman_academy.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/champion_infantry_spearman_academy.xml
@@ -5,8 +5,10 @@
Palace Guard Spearman
Hǔ Bēn
units/han/champion_infantry_spearman
- phase_city
units/han/champion_infantry_swordsman.png
+
+ phase_city
+
units/han/infantry_spearman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/infantry_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/infantry_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/infantry_archer_b.xml
@@ -10,7 +10,9 @@
units/han/infantry_archer_b
Shè Shǒu
units/han/infantry_archer.png
- phase_town
+
+ phase_town
+
units/han/infantry_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/infantry_pikeman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/infantry_pikeman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/infantry_pikeman_b.xml
@@ -20,14 +20,13 @@
Halberdier
Jǐ Bīng
units/han/infantry_halberdman.png
- phase_town
+
+ phase_town
+
units/han/infantry_pikeman_a
-
- units/han/infantry_halberdman_b.xml
-
@@ -41,4 +40,7 @@
special/formations/anti_cavalry
+
+ units/han/infantry_halberdman_b.xml
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/infantry_swordsman_special_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/infantry_swordsman_special_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/infantry_swordsman_special_b.xml
@@ -1,21 +1,23 @@
-
-
-
-
- -structures/wallset_palisade
-
-
-
- han
- units/han/infantry_swordsman_b
- Dāo Bīng
- units/han/infantry_swordsman.png
- phase_town
-
-
- units/han/infantry_swordsman_special_a
-
-
- units/han/infantry_swordsman_b.xml
-
-
+
+
+
+
+ -structures/wallset_palisade
+
+
+
+ han
+ units/han/infantry_swordsman_b
+ Dāo Bīng
+ units/han/infantry_swordsman.png
+
+ phase_town
+
+
+
+ units/han/infantry_swordsman_special_a
+
+
+ units/han/infantry_swordsman_b.xml
+
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/han/support_minister.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/han/support_minister.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/han/support_minister.xml
@@ -44,7 +44,9 @@
Organic Human
Minister
units/han/minister.png
- phase_town
+
+ phase_town
+
150
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/cavalry_spearman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/cavalry_spearman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/cavalry_spearman_b.xml
@@ -5,7 +5,9 @@
units/iber/cavalry_spearman_b
Lantzari
units/iber/cavalry_spearman.png
- phase_town
+
+ phase_town
+
units/iber/cavalry_spearman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/champion_infantry_swordsman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/champion_infantry_swordsman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/champion_infantry_swordsman.xml
@@ -9,7 +9,9 @@
iber
Leial Ezpatari
units/iber/champion_infantry.png
- unlock_champion_infantry
+
+ unlock_champion_infantry
+
units/iberians/infantry_swordsman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/infantry_slinger_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/infantry_slinger_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/infantry_slinger_b.xml
@@ -10,7 +10,9 @@
units/iber/infantry_slinger_b
Habailari
units/iber/infantry_slinger.png
- phase_town
+
+ phase_town
+
units/iber/infantry_slinger_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/infantry_spearman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/infantry_spearman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/infantry_spearman_b.xml
@@ -10,7 +10,9 @@
units/iber/infantry_spearman_b
Ezkutari
units/iber/infantry_spearman.png
- phase_town
+
+ phase_town
+
units/iber/infantry_spearman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/iber/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/cavalry_javelineer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/cavalry_javelineer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/cavalry_javelineer_b.xml
@@ -6,8 +6,10 @@
units/kush/cavalry_javelineer_b
iry hr ssmwtt
Napatan Light Cavalry
- phase_village
units/kush/cavalry_javelinist.png
+
+ phase_village
+
units/kush/cavalry_javelineer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/cavalry_javelineer_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/cavalry_javelineer_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/cavalry_javelineer_merc_b.xml
@@ -18,7 +18,9 @@
nhw Bulahau gml
Camel
units/kush/camel_javelinist.png
- phase_town
+
+ phase_town
+
units/kush/cavalry_javelineer_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/cavalry_spearman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/cavalry_spearman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/cavalry_spearman_b.xml
@@ -7,7 +7,9 @@
Meroitic Heavy Cavalry
Htr
units/kush/cavalry_spearman.png
- phase_town
+
+ phase_town
+
units/kush/cavalry_spearman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/champion_infantry_archer.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/champion_infantry_archer.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/champion_infantry_archer.xml
@@ -6,7 +6,9 @@
Noble Archer
Hry pdty
units/kush/champion_archer.png
- unlock_champion_infantry
+
+ unlock_champion_infantry
+
units/kushites/infantry_archer_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_archer_b.xml
@@ -14,8 +14,10 @@
units/kush/infantry_archer_b
Nubian Archer
Pdty Nhsyw
- phase_village
units/kush/infantry_archer.png
+
+ phase_village
+
units/kush/infantry_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_javelineer_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_javelineer_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_javelineer_merc_b.xml
@@ -15,7 +15,9 @@
Noba Skirmisher
nhw ʿhȝw Noba
units/kush/infantry_javelinist.png
- phase_town
+
+ phase_town
+
units/kush/infantry_javelineer_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_maceman_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_maceman_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_maceman_merc_b.xml
@@ -15,7 +15,9 @@
Noba Maceman
nhw Noba
units/kush/infantry_maceman.png
- phase_town
+
+ phase_town
+
units/kush/infantry_maceman_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_pikeman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_pikeman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_pikeman_b.xml
@@ -15,7 +15,9 @@
Meroitic Pikeman
siȝwrd
units/kush/infantry_pikeman.png
- phase_town
+
+ phase_town
+
units/kush/infantry_pikeman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_spearman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_spearman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_spearman_b.xml
@@ -14,8 +14,10 @@
units/kush/infantry_spearman_b
Nubian Spearman
iry-rdwy Nhsyw
- phase_village
units/kush/infantry_spearman.png
+
+ phase_village
+
units/kush/infantry_spearman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_swordsman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_swordsman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/infantry_swordsman_b.xml
@@ -15,7 +15,9 @@
Meroitic Swordsman
knw hps
units/kush/infantry_swordsman.png
- phase_town
+
+ phase_town
+
units/kush/infantry_swordsman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/kush/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/cavalry_javelineer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/cavalry_javelineer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/cavalry_javelineer_b.xml
@@ -7,7 +7,9 @@
Odrysian Skirmish Cavalry
Hippakontistḕs Odrysós
units/mace/cavalry_javelinist.png
- phase_town
+
+ phase_town
+
units/mace/cavalry_javelineer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/champion_infantry_spearman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/champion_infantry_spearman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/champion_infantry_spearman.xml
@@ -7,7 +7,9 @@
Hypaspistḗs
units/mace/champion_infantry_spearman
units/mace/hypaspist.png
- unlock_champion_infantry
+
+ unlock_champion_infantry
+
units/mace/champion_infantry_spearman_02
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/champion_infantry_swordsman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/champion_infantry_swordsman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/champion_infantry_swordsman.xml
@@ -11,7 +11,9 @@
Thracian Black Cloak
Rhomphaiaphoros
units/thrac/champion_infantry_swordsman.png
- unlock_champion_infantry
+
+ unlock_champion_infantry
+
units/macedonians/infantry_swordsman_c_thracian.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/infantry_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/infantry_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/infantry_archer_b.xml
@@ -7,7 +7,9 @@
Cretan Mercenary Archer
Toxótēs Krētikós
units/mace/infantry_archer.png
- phase_town
+
+ phase_town
+
units/mace/infantry_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/infantry_slinger_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/infantry_slinger_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/infantry_slinger_b.xml
@@ -7,7 +7,9 @@
Rhodian Slinger
Sphendonḗtēs Rhódios
units/mace/infantry_slinger.png
- phase_town
+
+ phase_town
+
units/mace/infantry_slinger_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/mace/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/cavalry_swordsman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/cavalry_swordsman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/cavalry_swordsman_b.xml
@@ -6,7 +6,9 @@
Indian Raiding Cavalry
Aśvārohagaṇaḥ
units/maur/cavalry_swordsman.png
- phase_town
+
+ phase_town
+
units/maur/cavalry_swordsman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/champion_chariot.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/champion_chariot.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/champion_chariot.xml
@@ -11,7 +11,9 @@
units/maur/champion_chariot
Chariot
units/maur/champion_chariot.png
- unlock_champion_chariots
+
+ unlock_champion_chariots
+
units/mauryas/chariot_archer_c_m.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/champion_infantry_maceman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/champion_infantry_maceman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/champion_infantry_maceman.xml
@@ -6,7 +6,9 @@
Yōddha
units/maur/champion_infantry
units/maur/champion_maceman.png
- unlock_champion_infantry
+
+ unlock_champion_infantry
+
units/mauryas/infantry_maceman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/elephant_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/elephant_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/elephant_archer_b.xml
@@ -6,7 +6,9 @@
Vachii Gaja
units/maur/elephant_archer_b
units/maur/elephant_archer.png
- phase_town
+
+ phase_town
+
units/maur/elephant_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/hero_chandragupta_infantry.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/hero_chandragupta_infantry.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/hero_chandragupta_infantry.xml
@@ -10,12 +10,14 @@
units/maur/hero_chandragupta
This gives Chandragupta Maurya his War Elephant.
- phase_city
200
200
+
+ phase_city
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/infantry_swordsman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/infantry_swordsman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/infantry_swordsman_b.xml
@@ -17,7 +17,9 @@
Indian Swordsman
Khadagdhari
units/maur/infantry_swordsman.png
- phase_town
+
+ phase_town
+
units/maur/infantry_swordsman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/maur/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_archer_b.xml
@@ -7,7 +7,9 @@
Parthian Horse Archer
Asabāra Parθava
units/pers/cavalry_archer.png
- phase_town
+
+ phase_town
+
units/pers/cavalry_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_a_trireme.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_a_trireme.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_a_trireme.xml
@@ -1,7 +1,9 @@
- equine_transports
+
+ equine_transports
+
units/pers/cavalry_axeman_e_trireme
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_b.xml
@@ -7,7 +7,9 @@
Hyrcanian Cavalry
Asabāra Varkaniya
units/pers/cavalry_axeman.png
- phase_town
+
+ phase_town
+
units/pers/cavalry_axeman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_b_trireme.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_b_trireme.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_b_trireme.xml
@@ -1,7 +1,9 @@
- equine_transports
+
+ equine_transports
+
units/pers/cavalry_axeman_a_trireme
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_e_trireme.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_e_trireme.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_axeman_e_trireme.xml
@@ -1,6 +1,8 @@
- equine_transports
+
+ equine_transports
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_javelineer_a_trireme.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_javelineer_a_trireme.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_javelineer_a_trireme.xml
@@ -1,7 +1,9 @@
- equine_transports
+
+ equine_transports
+
units/pers/cavalry_javelineer_e_trireme
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_javelineer_b_trireme.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_javelineer_b_trireme.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_javelineer_b_trireme.xml
@@ -1,7 +1,9 @@
- equine_transports
+
+ equine_transports
+
units/pers/cavalry_javelineer_a_trireme
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_javelineer_e_trireme.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_javelineer_e_trireme.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_javelineer_e_trireme.xml
@@ -1,6 +1,8 @@
- equine_transports
+
+ equine_transports
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_spearman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_spearman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/cavalry_spearman_b.xml
@@ -7,7 +7,9 @@
Cappadocian Cavalry
Asabāra Katpatuka
units/pers/cavalry_spearman.png
- phase_town
+
+ phase_town
+
units/pers/cavalry_spearman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/champion_chariot.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/champion_chariot.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/champion_chariot.xml
@@ -11,7 +11,9 @@
Raθa Bābiruviya
Chariot
units/pers/chariot_archer.png
- unlock_champion_chariots
+
+ unlock_champion_chariots
+
units/persians/chariot_archer_e_m.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/infantry_javelineer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/infantry_javelineer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/infantry_javelineer_b.xml
@@ -7,7 +7,9 @@
Lydian Auxiliary
Pastiš Spardiya
units/pers/infantry_javelinist.png
- phase_town
+
+ phase_town
+
units/pers/infantry_javelineer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/pers/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/cavalry_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/cavalry_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/cavalry_archer_b.xml
@@ -17,7 +17,9 @@
Nabataean Camel Archer
Mutsābiq Gamal Nabatu
units/ptol/camel_archer.png
- phase_village
+
+ phase_village
+
units/ptol/cavalry_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/cavalry_javelineer_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/cavalry_javelineer_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/cavalry_javelineer_merc_b.xml
@@ -6,7 +6,9 @@
Tarantine Settler Cavalry
Hippeús Tarantînos
units/hele/tarentine_cavalry_e.png
- phase_town
+
+ phase_town
+
units/ptol/cavalry_javelineer_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/cavalry_spearman_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/cavalry_spearman_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/cavalry_spearman_merc_b.xml
@@ -6,7 +6,9 @@
Macedonian Settler Cavalry
Hippeús Makedonikós
units/ptol/cavalry_spearman.png
- phase_town
+
+ phase_town
+
units/ptol/cavalry_spearman_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/champion_infantry_pikeman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/champion_infantry_pikeman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/champion_infantry_pikeman.xml
@@ -6,7 +6,9 @@
Royal Guard Infantry
Phalangitès Agema
units/ptol/champion_infantry.png
- unlock_champion_infantry
+
+ unlock_champion_infantry
+
units/ptolemies/infantry_pikeman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_archer_b.xml
@@ -12,7 +12,9 @@
Cretan Mercenary Archer
Toxótēs Krētikós
units/mace/infantry_archer.png
- phase_town
+
+ phase_town
+
units/ptol/infantry_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_javelineer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_javelineer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_javelineer_b.xml
@@ -12,7 +12,9 @@
Mercenary Thureos Skirmisher
Thureophóros Akrobolistḗs
units/ptol/infantry_javelinist_merc.png
- phase_town
+
+ phase_town
+
units/ptol/infantry_javelineer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_slinger_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_slinger_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_slinger_b.xml
@@ -12,7 +12,9 @@
Judean Slinger
Hebraikós Sphendonḗtēs
units/ptol/infantry_slinger.png
- phase_village
+
+ phase_village
+
units/ptol/infantry_slinger_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_spearman_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_spearman_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_spearman_merc_b.xml
@@ -12,7 +12,9 @@
Mercenary Thureos Spearman
Thureophóros Misthophóros
units/ptol/infantry_spearman_2.png
- phase_town
+
+ phase_town
+
units/ptol/infantry_spearman_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_swordsman_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_swordsman_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/infantry_swordsman_merc_b.xml
@@ -12,7 +12,9 @@
Gallikós Mistophorós
units/ptol/infantry_swordsman_merc_b
units/cart/infantry_swordsman.png
- phase_town
+
+ phase_town
+
units/ptol/infantry_swordsman_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/ptol/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_b.xml
@@ -7,7 +7,9 @@
Eques Socius
units/rome/cavalry_javelineer_b
units/rome/cavalry_javelinist.png
- phase_town
+
+ phase_town
+
units/rome/cavalry_javelineer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/champion_infantry_spear_gladiator.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/champion_infantry_spear_gladiator.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/champion_infantry_spear_gladiator.xml
@@ -21,7 +21,9 @@
Hoplomachus
Elite
units/rome/champion_infantry_gladiator_spear.png
- phase_town
+
+ phase_town
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/champion_infantry_sword_gladiator.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/champion_infantry_sword_gladiator.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/champion_infantry_sword_gladiator.xml
@@ -21,7 +21,9 @@
Murmillo
Elite
units/rome/champion_infantry_gladiator_sword.png
- phase_town
+
+ phase_town
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/champion_infantry_swordsman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/champion_infantry_swordsman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/champion_infantry_swordsman.xml
@@ -13,7 +13,9 @@
Extrāōrdinārius
units/rome/champion_infantry_swordsman
units/rome/champion_infantry.png
- unlock_champion_infantry
+
+ unlock_champion_infantry
+
units/romans/infantry_swordsman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/infantry_spearman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/infantry_spearman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/infantry_spearman_b.xml
@@ -19,7 +19,9 @@
Veteran Spearman
Triārius
units/rome/infantry_spearman.png
- phase_town
+
+ phase_town
+
units/rome/infantry_spearman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/cavalry_archer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/cavalry_archer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/cavalry_archer_b.xml
@@ -7,7 +7,9 @@
Dahae Horse Archer
Hippotoxotès Dahae
units/pers/cavalry_archer.png
- phase_town
+
+ phase_town
+
units/sele/cavalry_archer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/cavalry_spearman_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/cavalry_spearman_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/cavalry_spearman_merc_b.xml
@@ -7,7 +7,9 @@
Companion Cavalry
Hippos Hetairike
units/sele/cavalry_spearman_merc.png
- phase_town
+
+ phase_town
+
units/sele/cavalry_spearman_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/champion_chariot.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/champion_chariot.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/champion_chariot.xml
@@ -11,7 +11,9 @@
Drepanèphoros
Chariot
units/sele/champion_chariot.png
- unlock_champion_chariots
+
+ unlock_champion_chariots
+
units/seleucids/chariot_archer_c_m.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/champion_infantry_pikeman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/champion_infantry_pikeman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/champion_infantry_pikeman.xml
@@ -6,7 +6,9 @@
Silver Shield
Argyraspis
units/sele/champion_pikeman.png
- traditional_army_sele
+
+ traditional_army_sele
+
units/seleucids/infantry_pikeman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/champion_infantry_swordsman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/champion_infantry_swordsman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/champion_infantry_swordsman.xml
@@ -6,7 +6,9 @@
Romanized Heavy Swordsman
Thorakitès Rhomaïkós
units/sele/champion_swordsman.png
- reformed_army_sele
+
+ reformed_army_sele
+
units/seleucids/infantry_swordsman_c.xml
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/infantry_archer_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/infantry_archer_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/infantry_archer_merc_b.xml
@@ -7,7 +7,9 @@
Syrian Archer
Toxótēs Syrías
units/sele/infantry_archer.png
- phase_town
+
+ phase_town
+
units/sele/infantry_archer_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/infantry_javelineer_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/infantry_javelineer_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/infantry_javelineer_b.xml
@@ -7,7 +7,9 @@
Arab Javelineer
Pezakontistès Aravikós
units/sele/infantry_javelinist.png
- phase_village
+
+ phase_village
+
units/sele/infantry_javelineer_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/infantry_swordsman_merc_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/infantry_swordsman_merc_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/infantry_swordsman_merc_b.xml
@@ -12,7 +12,9 @@
Thracian Mercenary Swordsman
Rhomphaiaphoros Thrakikós
units/sele/infantry_swordsman.png
- phase_town
+
+ phase_town
+
units/sele/infantry_swordsman_merc_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/sele/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/spart/cavalry_spearman_b.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/spart/cavalry_spearman_b.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/spart/cavalry_spearman_b.xml
@@ -7,7 +7,9 @@
Greek Allied Cavalry
Hippeús Symmakhikós
units/spart/cavalry_spearman.png
- phase_town
+
+ phase_town
+
units/spart/cavalry_spearman_a
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_swordsman.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_swordsman.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_swordsman.xml
@@ -18,7 +18,9 @@
Ékdromos Skirítēs
Elite
units/spart/champion_infantry_sword.png
- phase_town
+
+ phase_town
+
3
Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/spart/support_female_citizen_house.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/simulation/templates/units/spart/support_female_citizen_house.xml
+++ ps/trunk/binaries/data/mods/public/simulation/templates/units/spart/support_female_citizen_house.xml
@@ -4,6 +4,8 @@
30
- unlock_females_house
+
+ unlock_females_house
+