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 +