Index: ps/trunk/binaries/data/mods/_test.sim/simulation/templates/special/filter/foundation.xml =================================================================== --- ps/trunk/binaries/data/mods/_test.sim/simulation/templates/special/filter/foundation.xml +++ ps/trunk/binaries/data/mods/_test.sim/simulation/templates/special/filter/foundation.xml @@ -2,10 +2,7 @@ - - - 0 - + 1 @@ -23,6 +20,10 @@ + + + 0 + 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 @@ -304,9 +304,6 @@ if (template.Cost.Population) ret.cost.population = getEntityValue("Cost/Population"); - if (template.Cost.PopulationBonus) - ret.cost.populationBonus = getEntityValue("Cost/PopulationBonus"); - if (template.Cost.BuildTime) ret.cost.time = getEntityValue("Cost/BuildTime"); } @@ -407,6 +404,11 @@ "time": getEntityValue("Pack/Time"), }; + if (template.Population && template.Population.Bonus) + ret.population = { + "bonus": getEntityValue("Population/Bonus") + }; + if (template.Health) ret.health = Math.round(getEntityValue("Health/Max")); 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 @@ -24,7 +24,7 @@ function getCostTypes() { - return g_ResourceData.GetCodes().concat(["population", "populationBonus", "time"]); + return g_ResourceData.GetCodes().concat(["population", "time"]); } function resourceIcon(resource) @@ -663,8 +663,7 @@ let costs = []; for (let type of getCostTypes()) - // Population bonus is shown in the tooltip - if (type != "populationBonus" && totalCosts[type]) + if (totalCosts[type]) costs.push(sprintf(translate("%(component)s %(cost)s"), { "component": resourceIcon(type), "cost": totalCosts[type] @@ -857,13 +856,13 @@ */ function getPopulationBonusTooltip(template) { - let popBonus = ""; - if (template.cost && template.cost.populationBonus) - popBonus = sprintf(translate("%(label)s %(populationBonus)s"), { - "label": headerFont(translate("Population Bonus:")), - "populationBonus": template.cost.populationBonus - }); - return popBonus; + if (!template.population || !template.population.bonus) + return ""; + + return sprintf(translate("%(label)s %(bonus)s"), { + "label": headerFont(translate("Population Bonus:")), + "bonus": template.population.bonus + }); } /** Index: ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json =================================================================== --- ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json +++ ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json @@ -144,6 +144,7 @@ { "nick": "Link Mauve", "name": "Emmanuel Gil Peyrot" }, { "nick": "LittleDev" }, { "nick": "livingaftermidnight", "name": "Will Dull" }, + { "nick": "lonehawk", "name": "Vignesh Krishnan" }, { "nick": "Louhike" }, { "nick": "lsdh" }, { "nick": "Ludovic", "name": "Ludovic Rousseau" }, Index: ps/trunk/binaries/data/mods/public/gui/session/selection_details.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/session/selection_details.js +++ ps/trunk/binaries/data/mods/public/gui/session/selection_details.js @@ -321,6 +321,7 @@ getGatherTooltip, getSpeedTooltip, getGarrisonTooltip, + getPopulationBonusTooltip, getProjectilesTooltip, getResourceTrickleTooltip, getLootTooltip Index: ps/trunk/binaries/data/mods/public/l10n/public-gui-other.pot =================================================================== --- ps/trunk/binaries/data/mods/public/l10n/public-gui-other.pot +++ ps/trunk/binaries/data/mods/public/l10n/public-gui-other.pot @@ -1056,7 +1056,7 @@ #: gui/common/tooltips.js:862 #, javascript-format -msgid "%(label)s %(populationBonus)s" +msgid "%(label)s %(bonus)s" msgstr "" #: gui/common/tooltips.js:863 @@ -4299,4 +4299,3 @@ msgctxt "withinSentence" msgid "Tree" msgstr "" - Index: ps/trunk/binaries/data/mods/public/maps/random/fortress.js =================================================================== --- ps/trunk/binaries/data/mods/public/maps/random/fortress.js +++ ps/trunk/binaries/data/mods/public/maps/random/fortress.js @@ -109,7 +109,7 @@ // Fortress // To take into account houses that offer a lower population bonus - if (Engine.GetTemplate("structures/" + civ + "/house").Cost.PopulationBonus <= 5) + if (Engine.GetTemplate("structures/" + civ + "/house").Population.Bonus <= 5) { var wall = ["gate", "tower", "long", "cornerIn", "long", "barracks", "tower", "long", "tower", "house", "long", 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 @@ -194,7 +194,7 @@ "isRepairable": function() { return this.get("Repairable") !== undefined; }, - "getPopulationBonus": function() { return +this.get("Cost/PopulationBonus"); }, + "getPopulationBonus": function() { return +this.get("Population/Bonus"); }, "resistanceStrengths": function() { let resistanceTypes = this.get("Resistance"); Index: ps/trunk/binaries/data/mods/public/simulation/ai/petra/researchManager.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/ai/petra/researchManager.js +++ ps/trunk/binaries/data/mods/public/simulation/ai/petra/researchManager.js @@ -46,7 +46,7 @@ if (!tech[1]._template.modifications) continue; // TODO may-be loop on all modifs and check if the effect if positive ? - if (tech[1]._template.modifications[0].value !== "Cost/PopulationBonus") + if (tech[1]._template.modifications[0].value !== "Population/Bonus") continue; queues.minorTech.addPlan(new PETRA.ResearchPlan(gameState, tech[0])); break; Index: ps/trunk/binaries/data/mods/public/simulation/components/AIInterface.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/AIInterface.js +++ ps/trunk/binaries/data/mods/public/simulation/components/AIInterface.js @@ -256,7 +256,7 @@ let newValue = ApplyValueModificationsToTemplate(valName, oldValue, msg.player, template); // Apply the same roundings as in the components if (valName === "Player/MaxPopulation" || valName === "Cost/Population" || - valName === "Cost/PopulationBonus") + valName === "Population/Bonus") newValue = Math.round(newValue); // TODO in some cases, we can have two opposite changes which bring us to the old value, // and we should keep it. But how to distinguish it ? @@ -305,7 +305,7 @@ let newValue = ApplyValueModificationsToEntity(valName, oldValue, ent); // Apply the same roundings as in the components if (valName === "Player/MaxPopulation" || valName === "Cost/Population" || - valName === "Cost/PopulationBonus") + valName === "Population/Bonus") newValue = Math.round(newValue); // TODO in some cases, we can have two opposite changes which bring us to the old value, // and we should keep it. But how to distinguish it ? Index: ps/trunk/binaries/data/mods/public/simulation/components/Cost.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/Cost.js +++ ps/trunk/binaries/data/mods/public/simulation/components/Cost.js @@ -4,7 +4,6 @@ "Specifies the construction/training costs of this entity." + "" + "1" + - "15" + "20.0" + "" + "50" + @@ -16,9 +15,6 @@ "" + "" + "" + - "" + - "" + - "" + "" + "" + "" + @@ -29,7 +25,6 @@ Cost.prototype.Init = function() { this.populationCost = +this.template.Population; - this.populationBonus = +this.template.PopulationBonus; }; Cost.prototype.GetPopCost = function() @@ -37,10 +32,6 @@ return this.populationCost; }; -Cost.prototype.GetPopBonus = function() -{ - return this.populationBonus; -}; Cost.prototype.GetBuildTime = function() { @@ -69,28 +60,13 @@ return costs; }; -Cost.prototype.OnOwnershipChanged = function(msg) -{ - if (msg.from != INVALID_PLAYER) - { - let cmpPlayer = QueryPlayerIDInterface(msg.from); - if (cmpPlayer) - cmpPlayer.AddPopulationBonuses(-this.GetPopBonus()); - } - if (msg.to != INVALID_PLAYER) - { - let cmpPlayer = QueryPlayerIDInterface(msg.to); - if (cmpPlayer) - cmpPlayer.AddPopulationBonuses(this.GetPopBonus()); - } -}; Cost.prototype.OnValueModification = function(msg) { if (msg.component != "Cost") return; - // foundations shouldn't give a pop bonus and a pop cost + // Foundations shouldn't have a pop cost. var cmpFoundation = Engine.QueryInterface(this.entity, IID_Foundation); if (cmpFoundation) return; @@ -100,18 +76,11 @@ var popCostDifference = newPopCost - this.populationCost; this.populationCost = newPopCost; - // update the population bonuses - var newPopBonus = Math.round(ApplyValueModificationsToEntity("Cost/PopulationBonus", +this.template.PopulationBonus, this.entity)); - var popDifference = newPopBonus - this.populationBonus; - this.populationBonus = newPopBonus; - var cmpPlayer = QueryOwnerInterface(this.entity); if (!cmpPlayer) return; if (popCostDifference) cmpPlayer.AddPopulation(popCostDifference); - if (popDifference) - cmpPlayer.AddPopulationBonuses(popDifference); }; Engine.RegisterComponentType(IID_Cost, "Cost", Cost); 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 @@ -304,6 +304,12 @@ "progress": cmpPack.GetProgress() }; + let cmpPopulation = Engine.QueryInterface(ent, IID_Population); + if (cmpPopulation) + ret.population = { + "bonus": cmpPopulation.GetPopBonus() + }; + let cmpUpgrade = Engine.QueryInterface(ent, IID_Upgrade); if (cmpUpgrade) ret.upgrade = { @@ -1190,7 +1196,6 @@ * 'stone': ..., * 'metal': ..., * 'population': ..., - * 'populationBonus': ..., * } * } * @@ -1342,7 +1347,7 @@ let result = { "pieces": [], - "cost": { "population": 0, "populationBonus": 0, "time": 0 } + "cost": { "population": 0, "time": 0 } }; for (let res of Resources.GetCodes()) result.cost[res] = 0; @@ -1619,7 +1624,7 @@ // copied over, so we need to fetch it from the template instead). // TODO: We should really use a Cost object or at least some utility functions for this, this is mindless // boilerplate that's probably duplicated in tons of places. - for (let res of Resources.GetCodes().concat(["population", "populationBonus", "time"])) + for (let res of Resources.GetCodes().concat(["population", "time"])) result.cost[res] += tplData.cost[res]; } Index: ps/trunk/binaries/data/mods/public/simulation/components/Population.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/Population.js +++ ps/trunk/binaries/data/mods/public/simulation/components/Population.js @@ -0,0 +1,67 @@ +function Population() {} + +Population.prototype.Schema = + "Specifies the Population cap increase generated by this entity." + + "" + + "15" + + "" + + "" + + "" + + ""; + +Population.prototype.Init = function() +{ + this.bonus = +this.template.Bonus; +}; + +/** + * @return {number} - The population space provided by this entity. + */ +Population.prototype.GetPopBonus = function() +{ + return this.bonus; +}; + +Population.prototype.RecalculateValues = function() +{ + this.bonus = Math.round(ApplyValueModificationsToEntity("Population/Bonus", +this.template.Bonus, this.entity)); +}; + +Population.prototype.OnOwnershipChanged = function(msg) +{ + if (msg.from != INVALID_PLAYER) + { + let cmpPlayer = QueryPlayerIDInterface(msg.from); + if (cmpPlayer) + cmpPlayer.AddPopulationBonuses(-this.bonus); + } + if (msg.to != INVALID_PLAYER) + { + this.RecalculateValues(); + let cmpPlayer = QueryPlayerIDInterface(msg.to); + if (cmpPlayer) + cmpPlayer.AddPopulationBonuses(this.bonus); + } +}; + +Population.prototype.OnValueModification = function(msg) +{ + if (msg.component != "Population") + return; + + // Foundations shouldn't give a pop bonus. + if (Engine.QueryInterface(this.entity, IID_Foundation)) + return; + + let oldPopBonus = this.bonus; + this.RecalculateValues(); + let popDifference = this.bonus - oldPopBonus; + + if (!popDifference) + return; + let cmpPlayer = QueryOwnerInterface(this.entity); + if (cmpPlayer) + cmpPlayer.AddPopulationBonuses(popDifference); +}; + +Engine.RegisterComponentType(IID_Population, "Population", Population); Index: ps/trunk/binaries/data/mods/public/simulation/components/interfaces/Population.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/interfaces/Population.js +++ ps/trunk/binaries/data/mods/public/simulation/components/interfaces/Population.js @@ -0,0 +1 @@ +Engine.RegisterInterface("Population"); Index: ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Foundation.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Foundation.js +++ ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Foundation.js @@ -6,6 +6,7 @@ Engine.LoadComponentScript("interfaces/Foundation.js"); Engine.LoadComponentScript("interfaces/Health.js"); Engine.LoadComponentScript("interfaces/ModifiersManager.js"); +Engine.LoadComponentScript("interfaces/Population.js"); Engine.LoadComponentScript("interfaces/StatisticsTracker.js"); Engine.LoadComponentScript("interfaces/TerritoryDecay.js"); Engine.LoadComponentScript("interfaces/Trigger.js"); Index: ps/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js +++ ps/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js @@ -20,6 +20,7 @@ Engine.LoadComponentScript("interfaces/Loot.js"); Engine.LoadComponentScript("interfaces/Market.js"); Engine.LoadComponentScript("interfaces/Pack.js"); +Engine.LoadComponentScript("interfaces/Population.js"); Engine.LoadComponentScript("interfaces/ProductionQueue.js"); Engine.LoadComponentScript("interfaces/Promotion.js"); Engine.LoadComponentScript("interfaces/Repairable.js"); Index: ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Population.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Population.js +++ ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Population.js @@ -0,0 +1,111 @@ +Engine.LoadHelperScript("Player.js"); +Engine.LoadComponentScript("interfaces/Foundation.js"); +Engine.LoadComponentScript("interfaces/Player.js"); +Engine.LoadComponentScript("interfaces/Population.js"); +Engine.LoadComponentScript("Population.js"); + +const player = 1; +const entity = 11; +let entPopBonus = 5; + +Engine.RegisterGlobal("ApplyValueModificationsToEntity", + (valueName, currentValue, entity) => currentValue +); + +AddMock(SYSTEM_ENTITY, IID_PlayerManager, { + "GetPlayerByID": () => player +}); + +let cmpPopulation = ConstructComponent(entity, "Population", { + "Bonus": entPopBonus +}); + +// Test ownership change adds bonus. +let cmpPlayer = AddMock(player, IID_Player, { + "AddPopulationBonuses": bonus => TS_ASSERT_EQUALS(bonus, entPopBonus) +}); +let spy = new Spy(cmpPlayer, "AddPopulationBonuses"); +cmpPopulation.OnOwnershipChanged({ "from": INVALID_PLAYER, "to": player }); +TS_ASSERT_EQUALS(spy._called, 1); + +// Test ownership change removes bonus. +cmpPlayer = AddMock(player, IID_Player, { + "AddPopulationBonuses": bonus => TS_ASSERT_EQUALS(bonus, -entPopBonus) +}); +spy = new Spy(cmpPlayer, "AddPopulationBonuses"); +cmpPopulation.OnOwnershipChanged({ "from": player, "to": INVALID_PLAYER }); +TS_ASSERT_EQUALS(spy._called, 1); + + +// Test value modifications. +// Test no change. +Engine.RegisterGlobal("ApplyValueModificationsToEntity", + (valueName, currentValue, entity) => currentValue +); + +cmpPlayer = AddMock(player, IID_Player, { + "AddPopulationBonuses": () => TS_ASSERT(false) +}); +cmpPopulation.OnValueModification({ "component": "bogus" }); +cmpPopulation.OnValueModification({ "component": "Population" }); + +// Test changes. +AddMock(entity, IID_Ownership, { + "GetOwner": () => player +}); +let difference = 3; +Engine.RegisterGlobal("ApplyValueModificationsToEntity", + (valueName, currentValue, entity) => currentValue + difference +); + +cmpPlayer = AddMock(player, IID_Player, { + "AddPopulationBonuses": bonus => TS_ASSERT_EQUALS(bonus, difference) +}); +spy = new Spy(cmpPlayer, "AddPopulationBonuses"); + +// Foundations don't count yet. +AddMock(entity, IID_Foundation, {}); +cmpPopulation.OnValueModification({ "component": "Population" }); +TS_ASSERT_EQUALS(spy._called, 0); +DeleteMock(entity, IID_Foundation); + +cmpPopulation.OnValueModification({ "component": "Population" }); +TS_ASSERT_EQUALS(spy._called, 1); + +// Reset to no bonus. +cmpPlayer = AddMock(player, IID_Player, { + "AddPopulationBonuses": bonus => TS_ASSERT_EQUALS(bonus, -3) +}); +difference = 0 +Engine.RegisterGlobal("ApplyValueModificationsToEntity", + (valueName, currentValue, entity) => currentValue + difference +); +spy = new Spy(cmpPlayer, "AddPopulationBonuses"); +cmpPopulation.OnValueModification({ "component": "Population" }); +TS_ASSERT_EQUALS(spy._called, 1); + +// Test negative change. +difference = -2; +Engine.RegisterGlobal("ApplyValueModificationsToEntity", + (valueName, currentValue, entity) => currentValue + difference +); + +cmpPlayer = AddMock(player, IID_Player, { + "AddPopulationBonuses": bonus => TS_ASSERT_EQUALS(bonus, difference) +}); +spy = new Spy(cmpPlayer, "AddPopulationBonuses"); + +cmpPopulation.OnValueModification({ "component": "Population" }); +TS_ASSERT_EQUALS(spy._called, 1); + +// Test newly created entities also get affected by modifications. +difference = 3; +Engine.RegisterGlobal("ApplyValueModificationsToEntity", + (valueName, currentValue, entity) => currentValue + difference +); +cmpPlayer = AddMock(player, IID_Player, { + "AddPopulationBonuses": bonus => TS_ASSERT_EQUALS(bonus, entPopBonus + difference) +}); +spy = new Spy(cmpPlayer, "AddPopulationBonuses"); +cmpPopulation.OnOwnershipChanged({ "from": INVALID_PLAYER, "to": player }); +TS_ASSERT_EQUALS(spy._called, 1); Index: ps/trunk/binaries/data/mods/public/simulation/data/technologies/pop_house_01.json =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/data/technologies/pop_house_01.json +++ ps/trunk/binaries/data/mods/public/simulation/data/technologies/pop_house_01.json @@ -17,7 +17,7 @@ "researchTime": 40, "tooltip": "Houses +20% population cap bonus.", "modifications": [ - { "value": "Cost/PopulationBonus", "multiply": 1.2 } + { "value": "Population/Bonus", "multiply": 1.2 } ], "affects": ["House"], "soundComplete": "interface/alarm/alarm_upgradearmory.xml" Index: ps/trunk/binaries/data/mods/public/simulation/data/technologies/pop_house_02.json =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/data/technologies/pop_house_02.json +++ ps/trunk/binaries/data/mods/public/simulation/data/technologies/pop_house_02.json @@ -12,7 +12,7 @@ "researchTime": 40, "tooltip": "Houses +20% population cap bonus.", "modifications": [ - { "value": "Cost/PopulationBonus", "multiply": 1.2 } + { "value": "Population/Bonus", "multiply": 1.2 } ], "affects": ["House"], "soundComplete": "interface/alarm/alarm_upgradearmory.xml" Index: ps/trunk/binaries/data/mods/public/simulation/templates/special/filter/foundation.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/special/filter/foundation.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/special/filter/foundation.xml @@ -3,10 +3,7 @@ - - - 0 - + @@ -25,6 +22,10 @@ + + + 0 + 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 @@ -2,7 +2,6 @@ 0 - 0 0 0 Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/barracks.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/barracks.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/barracks.xml @@ -1,7 +1,6 @@ - 4 300 0 @@ -22,6 +21,9 @@ 60 0 + + 4 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/dock.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/dock.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/dock.xml @@ -1,8 +1,5 @@ - - 2 - 8.0 @@ -14,6 +11,9 @@ brit Counos + + 2 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/farmstead.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/farmstead.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/farmstead.xml @@ -1,8 +1,5 @@ - - 2 - @@ -16,6 +13,9 @@ + + 2 + structures/britons/farmstead.xml structures/fndn_3x3.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/forge.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/forge.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/forge.xml @@ -1,12 +1,12 @@ - - 2 - brit Gobanion + + 2 + structures/britons/blacksmith.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/fortress.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/fortress.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/fortress.xml @@ -1,8 +1,5 @@ - - 12 - 18.0 @@ -17,6 +14,9 @@ + + 12 + units/{civ}/champion_infantry Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/market.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/market.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/market.xml @@ -1,8 +1,5 @@ - - 5 - 8.0 @@ -17,6 +14,9 @@ + + 5 + structures/britons/market.xml structures/fndn_6x6.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/storehouse.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/storehouse.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/brit/storehouse.xml @@ -1,8 +1,5 @@ - - 2 - @@ -10,6 +7,9 @@ brit Capanon + + 2 + 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 @@ -1,7 +1,6 @@ - 15 75 225 @@ -19,6 +18,9 @@ 45 + + 15 + structures/carthaginians/apartment.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/cart/super_dock.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/cart/super_dock.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/cart/super_dock.xml @@ -13,7 +13,6 @@ 10 - 10 500 300 @@ -52,6 +51,9 @@ + + 10 + true 0.0 Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/celt_hut.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/celt_hut.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/celt_hut.xml @@ -1,7 +1,6 @@ - 2 0 50 @@ -23,6 +22,9 @@ + + 2 + 7.0 Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/celt_longhouse.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/celt_longhouse.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/celt_longhouse.xml @@ -1,7 +1,6 @@ - 10 300 0 @@ -23,6 +22,9 @@ + + 10 + structures/celts/longhouse.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/barracks.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/barracks.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/barracks.xml @@ -1,7 +1,6 @@ - 4 300 0 @@ -25,6 +24,9 @@ + + 4 + structures/celts/barracks.xml structures/fndn_6x6.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/dock.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/dock.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/dock.xml @@ -1,8 +1,5 @@ - - 2 - 8.0 @@ -17,6 +14,9 @@ + + 2 + structures/celts/dock.xml structures/fndn_celt_dock.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/farmstead.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/farmstead.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/farmstead.xml @@ -1,8 +1,5 @@ - - 2 - @@ -13,6 +10,9 @@ + + 2 + structures/gauls/farmstead.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/forge.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/forge.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/forge.xml @@ -1,12 +1,12 @@ - - 2 - gaul Gobanion + + 2 + structures/gauls/blacksmith.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/fortress.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/fortress.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/fortress.xml @@ -1,12 +1,12 @@ - - 12 - gaul Dunon + + 12 + units/{civ}/champion_infantry Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/market.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/market.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/market.xml @@ -1,8 +1,5 @@ - - 5 - 8.0 @@ -17,6 +14,9 @@ + + 5 + structures/gauls/market.xml structures/fndn_6x6.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/storehouse.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/storehouse.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/gaul/storehouse.xml @@ -1,8 +1,5 @@ - - 2 - @@ -13,6 +10,9 @@ + + 2 + structures/gauls/storehouse.xml 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 @@ -1,7 +1,6 @@ - 10 200 100 @@ -32,6 +31,9 @@ + + 10 + 0.7 Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/hellenic_propylaea.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/hellenic_propylaea.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/hellenic_propylaea.xml @@ -1,7 +1,6 @@ - 10 200 0 @@ -29,6 +28,9 @@ + + 10 + false Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/hellenic_stoa.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/hellenic_stoa.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/hellenic_stoa.xml @@ -4,7 +4,6 @@ Stoa - 10 110 0 @@ -32,6 +31,9 @@ + + 10 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/iber/defense_tower.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/iber/defense_tower.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/iber/defense_tower.xml @@ -9,7 +9,6 @@ 2 - 5 200 50 @@ -38,6 +37,9 @@ + + 5 + 17.0 Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/iber/fortress.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/iber/fortress.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/iber/fortress.xml @@ -1,7 +1,6 @@ - 15 1.5 1200 @@ -20,6 +19,9 @@ + + 15 + units/{civ}/champion_infantry 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 @@ -7,7 +7,6 @@ TempleOfAmun - 10 300 500 @@ -38,6 +37,9 @@ + + 10 + units/{civ}/champion_infantry_amun Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/maur/palace.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/maur/palace.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/maur/palace.xml @@ -2,7 +2,6 @@ 200 - 10 200 200 @@ -30,6 +29,9 @@ + + 10 + 0.7 Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/apadana.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/apadana.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/apadana.xml @@ -5,7 +5,6 @@ 300 - 10 300 200 @@ -38,6 +37,9 @@ + + 10 + 0.8 Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/apartment_block.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/apartment_block.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/apartment_block.xml @@ -1,8 +1,5 @@ - - 15 - 10.0 @@ -17,6 +14,9 @@ + + 15 + 25 Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/house_b.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/house_b.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/house_b.xml @@ -1,8 +1,5 @@ - - 10 - 10.0 @@ -17,6 +14,9 @@ + + 10 + props/structures/persians/alt_building_05.xml Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/inn.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/inn.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/inn.xml @@ -1,8 +1,5 @@ - - 15 - 10.0 @@ -17,6 +14,9 @@ + + 15 + 26 Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/tacara.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/tacara.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/pers/tacara.xml @@ -2,7 +2,6 @@ 300 - 10 200 400 @@ -34,6 +33,9 @@ + + 10 + 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 @@ -47,7 +47,6 @@ 3.0 - 5 250 500 @@ -82,6 +81,9 @@ + + 5 + 0.7 Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure.xml @@ -13,7 +13,6 @@ 0 - 0 10 0 Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml @@ -52,7 +52,6 @@ 5.0 - 20 500 500 @@ -92,6 +91,9 @@ + + 20 + 0.8 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 @@ -5,7 +5,6 @@ 4.0 - 5 30 75 @@ -40,6 +39,9 @@ + + 5 + units/{civ}/support_female_citizen_house Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_house_big.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_house_big.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_house_big.xml @@ -1,7 +1,6 @@ - 10 50 150 @@ -23,6 +22,9 @@ + + 10 + 20 40000 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 @@ -4,7 +4,6 @@ Stoa - 10 150 100 @@ -42,6 +41,9 @@ + + 10 + 0.7 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 @@ -4,7 +4,6 @@ structures/temple_heal - 5 200 300 @@ -40,6 +39,9 @@ + + 5 + 0.8 Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml @@ -6,7 +6,6 @@ Dock - 5 150 200 @@ -38,6 +37,9 @@ + + 5 + true 0.0 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 @@ -45,7 +45,6 @@ 10.0 - 10 500 1000 @@ -80,6 +79,9 @@ + + 10 + 0.8 Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_rotarymill.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_rotarymill.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_special_rotarymill.xml @@ -5,7 +5,6 @@ 100 - 2 200 100 @@ -32,6 +31,9 @@ + + 2 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit.xml @@ -3,7 +3,6 @@ 1 - 0 1 0