Clean up market classes:
template_structure_economic_market.xml → Market template_structure_military_dock.xml → Dock <Market/TradeType> node → Trade requirement for bartering: BarterMarket → Barter Change Petra accordingly Also changing: Renamed the Gates class to Gate, LongWall to WallLong (cf. WallTower), and StoneWall to Wall, to match their template file names. Adjusted AI code, technologies, and templates accordingly. Entity build restrictions: renamed Apadana to Palace; replaced UniqueStructure with IshtarGate and TempleOfVesta. added Council to the (unbuildable) spart_gerousia.xml, since it's functionally identical to athen_prytaneion.xml. Introduced the following classes: Council, IshtarGate, Library, TempleOfVesta, and Theater, to match their build restrictions. WallMedium and WallShort, to complement the already existing WallLong and WallTower classes. Stoa, TempleOfMars, and TriumphalArch, for completeness. Made the ArmyCamp, Colony, Gate, Lighthouse, Naval, Palace, Palisade, SiegeWall, and StoneWall classes visible. Deleted the now unused Apadana, Kennel, SpecialBuilding classes. Removed the Village class from outposts and palisades, because those are not supposed to count towards the phase technology requirements. Slightly rephrased the phase technology requirements tooltips. Corrected the <GenericName> of the various palisade files. Updated Structure tooltips from D2578 that have not already been committed elsewhere. Patch By: Nescio Differenital Revision: D2892 This was SVN commit r23865.
This commit is contained in:
parent
e428678b7e
commit
2ef3fd7a77
@ -1064,7 +1064,7 @@ PETRA.AttackPlan.prototype.checkTargetObstruction = function(gameState, target,
|
||||
if (!struct.position() || !struct.get("Obstruction") || struct.hasClass("Field"))
|
||||
continue;
|
||||
// we consider that we can reach the target, but nonetheless check that we did not cross any enemy gate
|
||||
if (dist < radius + 10 && !struct.hasClass("Gates"))
|
||||
if (dist < radius + 10 && !struct.hasClass("Gate"))
|
||||
continue;
|
||||
// Check that we are really blocked by this structure, i.e. advancing by 1+0.8(clearance)m
|
||||
// in the target direction would bring us inside its obstruction.
|
||||
@ -1436,15 +1436,15 @@ PETRA.AttackPlan.prototype.update = function(gameState, events)
|
||||
let targetClassesUnit;
|
||||
let targetClassesSiege;
|
||||
if (this.type == "Rush")
|
||||
targetClassesUnit = { "attack": ["Unit", "Structure"], "avoid": ["Palisade", "StoneWall", "Tower", "Fortress"], "vetoEntities": veto };
|
||||
targetClassesUnit = { "attack": ["Unit", "Structure"], "avoid": ["Palisade", "Wall", "Tower", "Fortress"], "vetoEntities": veto };
|
||||
else
|
||||
{
|
||||
if (this.target.hasClass("Fortress"))
|
||||
targetClassesUnit = { "attack": ["Unit", "Structure"], "avoid": ["Palisade", "StoneWall"], "vetoEntities": veto };
|
||||
else if (this.target.hasClass("Palisade") || this.target.hasClass("StoneWall"))
|
||||
targetClassesUnit = { "attack": ["Unit", "Structure"], "avoid": ["Palisade", "Wall"], "vetoEntities": veto };
|
||||
else if (this.target.hasClass("Palisade") || this.target.hasClass("Wall"))
|
||||
targetClassesUnit = { "attack": ["Unit", "Structure"], "avoid": ["Fortress"], "vetoEntities": veto };
|
||||
else
|
||||
targetClassesUnit = { "attack": ["Unit", "Structure"], "avoid": ["Palisade", "StoneWall", "Fortress"], "vetoEntities": veto };
|
||||
targetClassesUnit = { "attack": ["Unit", "Structure"], "avoid": ["Palisade", "Wall", "Fortress"], "vetoEntities": veto };
|
||||
}
|
||||
if (this.target.hasClass("Structure"))
|
||||
targetClassesSiege = { "attack": ["Structure"], "avoid": [], "vetoEntities": veto };
|
||||
@ -1561,14 +1561,14 @@ PETRA.AttackPlan.prototype.update = function(gameState, events)
|
||||
{
|
||||
mStruct.sort((structa, structb) => {
|
||||
let vala = structa.costSum();
|
||||
if (structa.hasClass("Gates") && ent.canAttackClass("StoneWall"))
|
||||
if (structa.hasClass("Gate") && ent.canAttackClass("Wall"))
|
||||
vala += 10000;
|
||||
else if (structa.hasDefensiveFire())
|
||||
vala += 1000;
|
||||
else if (structa.hasClass("ConquestCritical"))
|
||||
vala += 200;
|
||||
let valb = structb.costSum();
|
||||
if (structb.hasClass("Gates") && ent.canAttackClass("StoneWall"))
|
||||
if (structb.hasClass("Gate") && ent.canAttackClass("Wall"))
|
||||
valb += 10000;
|
||||
else if (structb.hasDefensiveFire())
|
||||
valb += 1000;
|
||||
@ -1576,7 +1576,7 @@ PETRA.AttackPlan.prototype.update = function(gameState, events)
|
||||
valb += 200;
|
||||
return valb - vala;
|
||||
});
|
||||
if (mStruct[0].hasClass("Gates"))
|
||||
if (mStruct[0].hasClass("Gate"))
|
||||
ent.attack(mStruct[0].id(), PETRA.allowCapture(gameState, ent, mStruct[0]));
|
||||
else
|
||||
{
|
||||
@ -1676,18 +1676,18 @@ PETRA.AttackPlan.prototype.update = function(gameState, events)
|
||||
{
|
||||
mStruct.sort((structa, structb) => {
|
||||
let vala = structa.costSum();
|
||||
if (structa.hasClass("Gates") && ent.canAttackClass("StoneWall"))
|
||||
if (structa.hasClass("Gate") && ent.canAttackClass("Wall"))
|
||||
vala += 10000;
|
||||
else if (structa.hasClass("ConquestCritical"))
|
||||
vala += 100;
|
||||
let valb = structb.costSum();
|
||||
if (structb.hasClass("Gates") && ent.canAttackClass("StoneWall"))
|
||||
if (structb.hasClass("Gate") && ent.canAttackClass("Wall"))
|
||||
valb += 10000;
|
||||
else if (structb.hasClass("ConquestCritical"))
|
||||
valb += 100;
|
||||
return valb - vala;
|
||||
});
|
||||
if (mStruct[0].hasClass("Gates"))
|
||||
if (mStruct[0].hasClass("Gate"))
|
||||
ent.attack(mStruct[0].id(), false);
|
||||
else
|
||||
{
|
||||
@ -1833,11 +1833,11 @@ PETRA.AttackPlan.prototype.UpdateWalking = function(gameState, events)
|
||||
if (!this.path[0][0] || !this.path[0][1])
|
||||
API3.warn("Start: Problem with path " + uneval(this.path));
|
||||
// We're stuck, presumably. Check if there are no walls just close to us.
|
||||
for (let ent of gameState.getEnemyStructures().filter(API3.Filters.byClass(["Palisade", "StoneWall"])).values())
|
||||
for (let ent of gameState.getEnemyStructures().filter(API3.Filters.byClass(["Palisade", "Wall"])).values())
|
||||
{
|
||||
if (API3.SquareVectorDistance(this.position, ent.position()) > 800)
|
||||
continue;
|
||||
let enemyClass = ent.hasClass("StoneWall") ? "StoneWall" : "Palisade";
|
||||
let enemyClass = ent.hasClass("Wall") ? "Wall" : "Palisade";
|
||||
// there are walls, so check if we can attack
|
||||
if (this.unitCollection.filter(API3.Filters.byCanAttackClass(enemyClass)).hasEntities())
|
||||
{
|
||||
|
@ -781,7 +781,7 @@ PETRA.BaseManager.prototype.assignToFoundations = function(gameState, noRepair)
|
||||
continue; // we do not build fields
|
||||
|
||||
if (gameState.ai.HQ.isNearInvadingArmy(target.position()))
|
||||
if (!target.hasClass("CivCentre") && !target.hasClass("StoneWall") &&
|
||||
if (!target.hasClass("CivCentre") && !target.hasClass("Wall") &&
|
||||
(!target.hasClass("Wonder") || !gameState.getVictoryConditions().has("wonder")))
|
||||
continue;
|
||||
|
||||
@ -801,7 +801,7 @@ PETRA.BaseManager.prototype.assignToFoundations = function(gameState, noRepair)
|
||||
target.getMetadata(PlayerID, "phaseUp") == true)
|
||||
targetNB = 7;
|
||||
else if (target.hasClass("Barracks") || target.hasClass("Range") || target.hasClass("Stable") ||
|
||||
target.hasClass("Tower") || target.hasClass("Market"))
|
||||
target.hasClass("Tower") || target.hasClass("Market"))
|
||||
targetNB = 4;
|
||||
else if (target.hasClass("House") || target.hasClass("DropsiteWood"))
|
||||
targetNB = 3;
|
||||
@ -880,7 +880,7 @@ PETRA.BaseManager.prototype.assignToFoundations = function(gameState, noRepair)
|
||||
if (gameState.ai.HQ.isNearInvadingArmy(target.position()))
|
||||
{
|
||||
if (target.healthLevel() > 0.5 ||
|
||||
!target.hasClass("CivCentre") && !target.hasClass("StoneWall") &&
|
||||
!target.hasClass("CivCentre") && !target.hasClass("Wall") &&
|
||||
(!target.hasClass("Wonder") || !gameState.getVictoryConditions().has("wonder")))
|
||||
continue;
|
||||
}
|
||||
|
@ -282,7 +282,7 @@ PETRA.HQ.prototype.checkEvents = function(gameState, events)
|
||||
let ent = gameState.getEntityById(evt.newentity);
|
||||
if (!ent || ent.owner() != PlayerID)
|
||||
continue;
|
||||
if (ent.hasClass("BarterMarket") && this.maxFields)
|
||||
if (ent.hasClass("Market") && this.maxFields)
|
||||
this.maxFields = false;
|
||||
if (ent.getMetadata(PlayerID, "base") === undefined)
|
||||
continue;
|
||||
@ -556,7 +556,7 @@ PETRA.HQ.prototype.checkPhaseRequirements = function(gameState, queues)
|
||||
!queues.militaryBuilding.hasQueuedUnits() &&
|
||||
!queues.defenseBuilding.hasQueuedUnits())
|
||||
{
|
||||
if (!gameState.getOwnEntitiesByClass("BarterMarket", true).hasEntities() &&
|
||||
if (!gameState.getOwnEntitiesByClass("Market", true).hasEntities() &&
|
||||
this.canBuild(gameState, "structures/{civ}_market"))
|
||||
{
|
||||
plan = new PETRA.ConstructionPlan(gameState, "structures/{civ}_market", { "phaseUp": true });
|
||||
@ -1281,9 +1281,9 @@ PETRA.HQ.prototype.findStrategicCCLocation = function(gameState, template)
|
||||
*/
|
||||
PETRA.HQ.prototype.findMarketLocation = function(gameState, template)
|
||||
{
|
||||
let markets = gameState.updatingCollection("diplo-ExclusiveAllyMarkets", API3.Filters.byClass("Market"), gameState.getExclusiveAllyEntities()).toEntityArray();
|
||||
let markets = gameState.updatingCollection("diplo-ExclusiveAllyMarkets", API3.Filters.byClass("Trade"), gameState.getExclusiveAllyEntities()).toEntityArray();
|
||||
if (!markets.length)
|
||||
markets = gameState.updatingCollection("OwnMarkets", API3.Filters.byClass("Market"), gameState.getOwnStructures()).toEntityArray();
|
||||
markets = gameState.updatingCollection("OwnMarkets", API3.Filters.byClass("Trade"), gameState.getOwnStructures()).toEntityArray();
|
||||
|
||||
if (!markets.length) // this is the first market. For the time being, place it arbitrarily by the ConstructionPlan
|
||||
return [-1, -1, -1, 0];
|
||||
@ -1306,7 +1306,7 @@ PETRA.HQ.prototype.findMarketLocation = function(gameState, template)
|
||||
let bestDistSq;
|
||||
let bestGainMult;
|
||||
let radius = Math.ceil(template.obstructionRadius().max / obstructions.cellSize);
|
||||
let isNavalMarket = template.hasClass("NavalMarket");
|
||||
let isNavalMarket = template.hasClass("Naval") && template.hasClass("Trade");
|
||||
|
||||
let width = this.territoryMap.width;
|
||||
let cellSize = this.territoryMap.cellSize;
|
||||
@ -1335,7 +1335,7 @@ PETRA.HQ.prototype.findMarketLocation = function(gameState, template)
|
||||
let gainMultiplier;
|
||||
for (let market of markets)
|
||||
{
|
||||
if (isNavalMarket && market.hasClass("NavalMarket"))
|
||||
if (isNavalMarket && template.hasClass("Naval") && template.hasClass("Trade"))
|
||||
{
|
||||
if (PETRA.getSeaAccess(gameState, market) != gameState.ai.accessibility.getAccessValue(pos, true))
|
||||
continue;
|
||||
@ -1377,13 +1377,13 @@ PETRA.HQ.prototype.findMarketLocation = function(gameState, template)
|
||||
let expectedGain = Math.round(bestGainMult * TradeGain(bestDistSq, gameState.sharedScript.mapSize));
|
||||
if (this.Config.debug > 1)
|
||||
API3.warn("this would give a trading gain of " + expectedGain);
|
||||
// do not keep it if gain is too small, except if this is our first BarterMarket
|
||||
// Do not keep it if gain is too small, except if this is our first Market.
|
||||
let idx;
|
||||
if (expectedGain < this.tradeManager.minimalGain)
|
||||
{
|
||||
if (template.hasClass("BarterMarket") &&
|
||||
!gameState.getOwnEntitiesByClass("BarterMarket", true).hasEntities())
|
||||
idx = -1; // needed by queueplanBuilding manager to keep that market
|
||||
if (template.hasClass("Market") &&
|
||||
!gameState.getOwnEntitiesByClass("Market", true).hasEntities())
|
||||
idx = -1; // Needed by queueplanBuilding manager to keep that Market.
|
||||
else
|
||||
return false;
|
||||
}
|
||||
@ -1538,7 +1538,7 @@ PETRA.HQ.prototype.buildTemple = function(gameState, queues)
|
||||
// at least one market (which have the same queue) should be build before any temple
|
||||
if (queues.economicBuilding.hasQueuedUnits() ||
|
||||
gameState.getOwnEntitiesByClass("Temple", true).hasEntities() ||
|
||||
!gameState.getOwnEntitiesByClass("BarterMarket", true).hasEntities())
|
||||
!gameState.getOwnEntitiesByClass("Market", true).hasEntities())
|
||||
return;
|
||||
// Try to build a temple earlier if in regicide to recruit healer guards
|
||||
if (this.currentPhase < 3 && !gameState.getVictoryConditions().has("regicide"))
|
||||
@ -1554,11 +1554,11 @@ PETRA.HQ.prototype.buildTemple = function(gameState, queues)
|
||||
|
||||
PETRA.HQ.prototype.buildMarket = function(gameState, queues)
|
||||
{
|
||||
if (gameState.getOwnEntitiesByClass("BarterMarket", true).hasEntities() ||
|
||||
if (gameState.getOwnEntitiesByClass("Market", true).hasEntities() ||
|
||||
!this.canBuild(gameState, "structures/{civ}_market"))
|
||||
return;
|
||||
|
||||
if (queues.economicBuilding.hasQueuedUnitsWithClass("BarterMarket"))
|
||||
if (queues.economicBuilding.hasQueuedUnitsWithClass("Market"))
|
||||
{
|
||||
if (!queues.economicBuilding.paused)
|
||||
{
|
||||
@ -1902,7 +1902,7 @@ PETRA.HQ.prototype.buildBlacksmith = function(gameState, queues)
|
||||
queues.militaryBuilding.hasQueuedUnits() || gameState.getOwnEntitiesByClass("Blacksmith", true).length)
|
||||
return;
|
||||
// Build a market before the blacksmith.
|
||||
if (!gameState.getOwnEntitiesByClass("BarterMarket", true).hasEntities())
|
||||
if (!gameState.getOwnEntitiesByClass("Market", true).hasEntities())
|
||||
return;
|
||||
|
||||
if (this.canBuild(gameState, "structures/{civ}_blacksmith"))
|
||||
@ -2670,7 +2670,7 @@ PETRA.HQ.prototype.update = function(gameState, queues, events)
|
||||
Engine.ProfileStart("Headquarters update");
|
||||
this.turnCache = {};
|
||||
this.territoryMap = PETRA.createTerritoryMap(gameState);
|
||||
this.canBarter = gameState.getOwnEntitiesByClass("BarterMarket", true).filter(API3.Filters.isBuilt()).hasEntities();
|
||||
this.canBarter = gameState.getOwnEntitiesByClass("Market", true).filter(API3.Filters.isBuilt()).hasEntities();
|
||||
// TODO find a better way to update
|
||||
if (this.currentPhase != gameState.currentPhase())
|
||||
{
|
||||
|
@ -713,8 +713,8 @@ PETRA.NavalManager.prototype.buildNavalStructures = function(gameState, queues)
|
||||
|
||||
if (gameState.ai.HQ.getAccountedPopulation(gameState) > this.Config.Economy.popForDock)
|
||||
{
|
||||
if (queues.dock.countQueuedUnitsWithClass("NavalMarket") === 0 &&
|
||||
!gameState.getOwnStructures().filter(API3.Filters.and(API3.Filters.byClass("NavalMarket"), API3.Filters.isFoundation())).hasEntities() &&
|
||||
if (queues.dock.countQueuedUnitsWithClass("Dock") === 0 &&
|
||||
!gameState.getOwnStructures().filter(API3.Filters.and(API3.Filters.byClass("Dock"), API3.Filters.isFoundation())).hasEntities() &&
|
||||
gameState.ai.HQ.canBuild(gameState, "structures/{civ}_dock"))
|
||||
{
|
||||
let dockStarted = false;
|
||||
@ -745,8 +745,8 @@ PETRA.NavalManager.prototype.buildNavalStructures = function(gameState, queues)
|
||||
if (!this.docks.filter(API3.Filters.byClass("Dock")).hasEntities() ||
|
||||
this.docks.filter(API3.Filters.byClass("Shipyard")).hasEntities())
|
||||
return;
|
||||
// Use in priority resources to build a market
|
||||
if (!gameState.getOwnEntitiesByClass("BarterMarket", true).hasEntities() &&
|
||||
// Use in priority resources to build a Market.
|
||||
if (!gameState.getOwnEntitiesByClass("Market", true).hasEntities() &&
|
||||
gameState.ai.HQ.canBuild(gameState, "structures/{civ}_market"))
|
||||
return;
|
||||
let template;
|
||||
|
@ -54,10 +54,10 @@ PETRA.ConstructionPlan.prototype.start = function(gameState)
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.metadata && this.metadata.expectedGain && (!this.template.hasClass("BarterMarket") ||
|
||||
gameState.getOwnEntitiesByClass("BarterMarket", true).hasEntities()))
|
||||
if (this.metadata && this.metadata.expectedGain && (!this.template.hasClass("Market") ||
|
||||
gameState.getOwnEntitiesByClass("Market", true).hasEntities()))
|
||||
{
|
||||
// Check if this market is still worth building (others may have been built making it useless)
|
||||
// Check if this Market is still worth building (others may have been built making it useless).
|
||||
let tradeManager = gameState.ai.HQ.tradeManager;
|
||||
tradeManager.checkRoutes(gameState);
|
||||
if (!tradeManager.isNewMarketWorth(this.metadata.expectedGain))
|
||||
@ -161,7 +161,7 @@ PETRA.ConstructionPlan.prototype.findGoodPosition = function(gameState)
|
||||
if (!template.hasClass("Fortress") || gameState.getOwnEntitiesByClass("Fortress", true).hasEntities())
|
||||
return false;
|
||||
}
|
||||
else if (template.hasClass("Market")) // Docks (i.e. NavalMarket) are done before
|
||||
else if (template.hasClass("Market")) // Docks are done before.
|
||||
{
|
||||
let pos = HQ.findMarketLocation(gameState, template);
|
||||
if (pos && pos[2] > 0)
|
||||
@ -218,29 +218,29 @@ PETRA.ConstructionPlan.prototype.findGoodPosition = function(gameState)
|
||||
if (struct.resourceDropsiteTypes() && struct.resourceDropsiteTypes().indexOf("food") != -1)
|
||||
{
|
||||
if (template.hasClass("Field") || template.hasClass("Corral"))
|
||||
placement.addInfluence(x, z, 80/cellSize, 50);
|
||||
placement.addInfluence(x, z, 80 / cellSize, 50);
|
||||
else // If this is not a field add a negative influence because we want to leave this area for fields
|
||||
placement.addInfluence(x, z, 80/cellSize, -20);
|
||||
placement.addInfluence(x, z, 80 / cellSize, -20);
|
||||
}
|
||||
else if (template.hasClass("House"))
|
||||
{
|
||||
if (ent.hasClass("House"))
|
||||
{
|
||||
placement.addInfluence(x, z, 60/cellSize, 40); // houses are close to other houses
|
||||
placement.addInfluence(x, z, 60 / cellSize, 40); // houses are close to other houses
|
||||
alreadyHasHouses = true;
|
||||
}
|
||||
else if (!ent.hasClass("StoneWall") || ent.hasClass("Gates"))
|
||||
placement.addInfluence(x, z, 60/cellSize, -40); // and further away from other stuffs
|
||||
else if (!ent.hasClass("Wall") || ent.hasClass("Gate"))
|
||||
placement.addInfluence(x, z, 60 / cellSize, -40); // and further away from other stuffs
|
||||
}
|
||||
else if (template.hasClass("Farmstead") && (!ent.hasClass("Field") && !ent.hasClass("Corral") &&
|
||||
(!ent.hasClass("StoneWall") || ent.hasClass("Gates"))))
|
||||
placement.addInfluence(x, z, 100/cellSize, -25); // move farmsteads away to make room (StoneWall test needed for iber)
|
||||
(!ent.hasClass("Wall") || ent.hasClass("Gate"))))
|
||||
placement.addInfluence(x, z, 100 / cellSize, -25); // move farmsteads away to make room (Wall test needed for iber)
|
||||
else if (template.hasClass("GarrisonFortress") && ent.hasClass("House"))
|
||||
placement.addInfluence(x, z, 120/cellSize, -50);
|
||||
placement.addInfluence(x, z, 120 / cellSize, -50);
|
||||
else if (template.hasClass("Military"))
|
||||
placement.addInfluence(x, z, 40/cellSize, -40);
|
||||
placement.addInfluence(x, z, 40 / cellSize, -40);
|
||||
else if (template.genericName() == "Rotary Mill" && ent.hasClass("Field"))
|
||||
placement.addInfluence(x, z, 60/cellSize, 40);
|
||||
placement.addInfluence(x, z, 60 / cellSize, 40);
|
||||
});
|
||||
}
|
||||
if (template.hasClass("Farmstead"))
|
||||
@ -256,8 +256,8 @@ PETRA.ConstructionPlan.prototype.findGoodPosition = function(gameState)
|
||||
}
|
||||
|
||||
// Requires to be inside our territory, and inside our base territory if required
|
||||
// and if our first market, put it on border if possible to maximize distance with next market
|
||||
let favorBorder = template.hasClass("BarterMarket");
|
||||
// and if our first market, put it on border if possible to maximize distance with next Market.
|
||||
let favorBorder = template.hasClass("Market");
|
||||
let disfavorBorder = gameState.currentPhase() > 1 && !template.hasDefensiveFire();
|
||||
let favoredBase = this.metadata && (this.metadata.favoredBase ||
|
||||
(this.metadata.militaryBase ? HQ.findBestBaseForMilitary(gameState) : undefined));
|
||||
@ -319,7 +319,7 @@ PETRA.ConstructionPlan.prototype.findGoodPosition = function(gameState)
|
||||
this.type == gameState.applyCiv("structures/{civ}_elephant_stables"))
|
||||
radius = Math.floor((template.obstructionRadius().max + 8) / obstructions.cellSize);
|
||||
else if (template.resourceDropsiteTypes() === undefined && !template.hasClass("House") &&
|
||||
!template.hasClass("Field") && !template.hasClass("BarterMarket"))
|
||||
!template.hasClass("Field") && !template.hasClass("Market"))
|
||||
radius = Math.ceil((template.obstructionRadius().max + 4) / obstructions.cellSize);
|
||||
else
|
||||
radius = Math.ceil(template.obstructionRadius().max / obstructions.cellSize);
|
||||
|
@ -199,7 +199,7 @@ PETRA.ResearchManager.prototype.update = function(gameState, queues)
|
||||
{
|
||||
let template = techs[i][1]._template;
|
||||
if (template.affects && template.affects.length === 1 &&
|
||||
(template.affects[0] === "Healer" || template.affects[0] === "Outpost" || template.affects[0] === "StoneWall"))
|
||||
(template.affects[0] === "Healer" || template.affects[0] === "Outpost" || template.affects[0] === "Wall"))
|
||||
{
|
||||
techs.splice(i--, 1);
|
||||
continue;
|
||||
|
@ -91,7 +91,7 @@ PETRA.TradeManager.prototype.trainMoreTraders = function(gameState, queues)
|
||||
else
|
||||
{
|
||||
template = gameState.applyCiv("units/{civ}_support_trader");
|
||||
if (!this.tradeRoute.source.hasClass("NavalMarket"))
|
||||
if (!this.tradeRoute.source.hasClass("Naval"))
|
||||
metadata.base = this.tradeRoute.source.getMetadata(PlayerID, "base");
|
||||
else
|
||||
metadata.base = this.tradeRoute.target.getMetadata(PlayerID, "base");
|
||||
@ -214,7 +214,7 @@ PETRA.TradeManager.prototype.setTradingGoods = function(gameState)
|
||||
*/
|
||||
PETRA.TradeManager.prototype.performBarter = function(gameState)
|
||||
{
|
||||
let barterers = gameState.getOwnEntitiesByClass("BarterMarket", true).filter(API3.Filters.isBuilt()).toEntityArray();
|
||||
let barterers = gameState.getOwnEntitiesByClass("Barter", true).filter(API3.Filters.isBuilt()).toEntityArray();
|
||||
if (barterers.length == 0)
|
||||
return false;
|
||||
let resBarterCodes = Resources.GetBarterableCodes();
|
||||
@ -335,7 +335,7 @@ PETRA.TradeManager.prototype.checkEvents = function(gameState, events)
|
||||
for (let evt of events.EntityRenamed)
|
||||
{
|
||||
let ent = gameState.getEntityById(evt.newentity);
|
||||
if (!ent || !ent.hasClass("Market"))
|
||||
if (!ent || !ent.hasClass("Trade"))
|
||||
continue;
|
||||
for (let trader of this.traders.values())
|
||||
{
|
||||
@ -358,7 +358,7 @@ PETRA.TradeManager.prototype.checkEvents = function(gameState, events)
|
||||
if (!evt.entityObj)
|
||||
continue;
|
||||
let ent = evt.entityObj;
|
||||
if (!ent || !ent.hasClass("Market") || !gameState.isPlayerAlly(ent.owner()))
|
||||
if (!ent || !ent.hasClass("Trade") || !gameState.isPlayerAlly(ent.owner()))
|
||||
continue;
|
||||
this.activateProspection(gameState);
|
||||
return true;
|
||||
@ -368,7 +368,7 @@ PETRA.TradeManager.prototype.checkEvents = function(gameState, events)
|
||||
for (let evt of events.Create)
|
||||
{
|
||||
let ent = gameState.getEntityById(evt.entity);
|
||||
if (!ent || ent.foundationProgress() !== undefined || !ent.hasClass("Market") ||
|
||||
if (!ent || ent.foundationProgress() !== undefined || !ent.hasClass("Trade") ||
|
||||
!gameState.isPlayerAlly(ent.owner()))
|
||||
continue;
|
||||
this.activateProspection(gameState);
|
||||
@ -382,7 +382,7 @@ PETRA.TradeManager.prototype.checkEvents = function(gameState, events)
|
||||
if (!gameState.isPlayerAlly(evt.from) && !gameState.isPlayerAlly(evt.to))
|
||||
continue;
|
||||
let ent = gameState.getEntityById(evt.entity);
|
||||
if (!ent || ent.foundationProgress() !== undefined || !ent.hasClass("Market"))
|
||||
if (!ent || ent.foundationProgress() !== undefined || !ent.hasClass("Trade"))
|
||||
continue;
|
||||
this.activateProspection(gameState);
|
||||
return true;
|
||||
@ -419,8 +419,8 @@ PETRA.TradeManager.prototype.checkRoutes = function(gameState, accessIndex)
|
||||
return false;
|
||||
}
|
||||
|
||||
let market1 = gameState.updatingCollection("OwnMarkets", API3.Filters.byClass("Market"), gameState.getOwnStructures());
|
||||
let market2 = gameState.updatingCollection("diplo-ExclusiveAllyMarkets", API3.Filters.byClass("Market"), gameState.getExclusiveAllyEntities());
|
||||
let market1 = gameState.updatingCollection("OwnMarkets", API3.Filters.byClass("Trade"), gameState.getOwnStructures());
|
||||
let market2 = gameState.updatingCollection("diplo-ExclusiveAllyMarkets", API3.Filters.byClass("Trade"), gameState.getExclusiveAllyEntities());
|
||||
if (market1.length + market2.length < 2) // We have to wait ... markets will be built soon
|
||||
{
|
||||
this.tradeRoute = undefined;
|
||||
@ -444,7 +444,7 @@ PETRA.TradeManager.prototype.checkRoutes = function(gameState, accessIndex)
|
||||
if (!m1.position())
|
||||
continue;
|
||||
let access1 = PETRA.getLandAccess(gameState, m1);
|
||||
let sea1 = m1.hasClass("NavalMarket") ? PETRA.getSeaAccess(gameState, m1) : undefined;
|
||||
let sea1 = m1.hasClass("Naval") ? PETRA.getSeaAccess(gameState, m1) : undefined;
|
||||
for (let m2 of market2.values())
|
||||
{
|
||||
if (onlyOurs && m1.id() >= m2.id())
|
||||
@ -452,7 +452,7 @@ PETRA.TradeManager.prototype.checkRoutes = function(gameState, accessIndex)
|
||||
if (!m2.position())
|
||||
continue;
|
||||
let access2 = PETRA.getLandAccess(gameState, m2);
|
||||
let sea2 = m2.hasClass("NavalMarket") ? PETRA.getSeaAccess(gameState, m2) : undefined;
|
||||
let sea2 = m2.hasClass("Naval") ? PETRA.getSeaAccess(gameState, m2) : undefined;
|
||||
let land = access1 == access2 ? access1 : undefined;
|
||||
let sea = sea1 && sea1 == sea2 ? sea1 : undefined;
|
||||
if (!land && !sea)
|
||||
@ -586,12 +586,12 @@ PETRA.TradeManager.prototype.checkTrader = function(gameState, ent)
|
||||
|
||||
PETRA.TradeManager.prototype.prospectForNewMarket = function(gameState, queues)
|
||||
{
|
||||
if (queues.economicBuilding.hasQueuedUnitsWithClass("Market") || queues.dock.hasQueuedUnitsWithClass("Market"))
|
||||
if (queues.economicBuilding.hasQueuedUnitsWithClass("Trade") || queues.dock.hasQueuedUnitsWithClass("Trade"))
|
||||
return;
|
||||
if (!gameState.ai.HQ.canBuild(gameState, "structures/{civ}_market"))
|
||||
return;
|
||||
if (!gameState.updatingCollection("OwnMarkets", API3.Filters.byClass("Market"), gameState.getOwnStructures()).hasEntities() &&
|
||||
!gameState.updatingCollection("diplo-ExclusiveAllyMarkets", API3.Filters.byClass("Market"), gameState.getExclusiveAllyEntities()).hasEntities())
|
||||
if (!gameState.updatingCollection("OwnMarkets", API3.Filters.byClass("Trade"), gameState.getOwnStructures()).hasEntities() &&
|
||||
!gameState.updatingCollection("diplo-ExclusiveAllyMarkets", API3.Filters.byClass("Trade"), gameState.getExclusiveAllyEntities()).hasEntities())
|
||||
return;
|
||||
let template = gameState.getTemplate(gameState.applyCiv("structures/{civ}_market"));
|
||||
if (!template)
|
||||
@ -600,7 +600,7 @@ PETRA.TradeManager.prototype.prospectForNewMarket = function(gameState, queues)
|
||||
let marketPos = gameState.ai.HQ.findMarketLocation(gameState, template);
|
||||
if (!marketPos || marketPos[3] == 0) // marketPos[3] is the expected gain
|
||||
{ // no position found
|
||||
if (gameState.getOwnEntitiesByClass("BarterMarket", true).hasEntities())
|
||||
if (gameState.getOwnEntitiesByClass("Market", true).hasEntities())
|
||||
gameState.ai.HQ.buildManager.setUnbuildable(gameState, gameState.applyCiv("structures/{civ}_market"));
|
||||
else
|
||||
this.routeProspection = false;
|
||||
@ -621,7 +621,7 @@ PETRA.TradeManager.prototype.prospectForNewMarket = function(gameState, queues)
|
||||
}
|
||||
|
||||
if (!this.tradeRoute)
|
||||
gameState.ai.queueManager.changePriority("economicBuilding", 2*this.Config.priorities.economicBuilding);
|
||||
gameState.ai.queueManager.changePriority("economicBuilding", 2 * this.Config.priorities.economicBuilding);
|
||||
let plan = new PETRA.ConstructionPlan(gameState, "structures/{civ}_market");
|
||||
if (!this.tradeRoute)
|
||||
plan.queueToReset = "economicBuilding";
|
||||
|
@ -55,7 +55,7 @@ Barter.prototype.PlayerHasMarket = function(playerID)
|
||||
{
|
||||
var cmpFoundation = Engine.QueryInterface(entity, IID_Foundation);
|
||||
var cmpIdentity = Engine.QueryInterface(entity, IID_Identity);
|
||||
if (!cmpFoundation && cmpIdentity && cmpIdentity.HasClass("BarterMarket"))
|
||||
if (!cmpFoundation && cmpIdentity && cmpIdentity.HasClass("Barter"))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -495,7 +495,7 @@ GuiInterface.prototype.GetEntityState = function(player, ent)
|
||||
"req": cmpPromotion.GetRequiredXp()
|
||||
};
|
||||
|
||||
if (!cmpFoundation && cmpIdentity && cmpIdentity.HasClass("BarterMarket"))
|
||||
if (!cmpFoundation && cmpIdentity && cmpIdentity.HasClass("Barter"))
|
||||
ret.isBarterMarket = true;
|
||||
|
||||
let cmpHeal = Engine.QueryInterface(ent, IID_Heal);
|
||||
|
@ -57,7 +57,7 @@ Identity.prototype.Schema =
|
||||
"</element>" +
|
||||
"</optional>" +
|
||||
"<optional>" +
|
||||
"<element name='Classes' a:help='Optional list of space-separated classes applying to this entity. Choices include: AfricanElephant, Animal, Apadana, ArmyCamp, Ashoka, BarterMarket, Celt, CitizenSoldier, CivCentre, Colony, ConquestCritical, Domestic, DropsiteFood, DropsiteMetal, DropsiteStone, DropsiteWood, FemaleCitizen, FishingBoat, ForestPlant, GarrisonFortress, Gates, Human, Iberian, Immortal, IndianElephant, Italian, Juggernaut, Kennel, Lighthouse, LongWall, MercenaryCamp, Naval, NavalMarket, Organic, Palace, Palisade, Player, PtolemyIV, SeaCreature, SiegeWall, SpecialBuilding, StoneWall, Structure, Syssiton, Theater, Unit, WallTower.'>" +
|
||||
"<element name='Classes' a:help='Optional list of space-separated classes applying to this entity. Choices include: AfricanElephant, Animal, Ashoka, Barter, Celt, CitizenSoldier, CivCentre, ConquestCritical, Domestic, DropsiteFood, DropsiteMetal, DropsiteStone, DropsiteWood, FemaleCitizen, ForestPlant, GarrisonFortress, Human, Iberian, Immortal, IndianElephant, Italian, Juggernaut, MercenaryCamp, Organic, Player, PtolemyIV, SeaCreature, Structure, Unit, WallLong, WallMedium, WallShort, WallTower.'>" +
|
||||
"<attribute name='datatype'>" +
|
||||
"<value>tokens</value>" +
|
||||
"</attribute>" +
|
||||
@ -65,7 +65,7 @@ Identity.prototype.Schema =
|
||||
"</element>" +
|
||||
"</optional>" +
|
||||
"<optional>" +
|
||||
"<element name='VisibleClasses' a:help='Optional list of space-separated classes applying to this entity. These classes will also be visible in various GUI elements. If the classes need spaces, underscores will be replaced with spaces. Choices include: Archer, ArtilleryTower, Axeman, Barracks, Bireme, Blacksmith, BoltShooter, BoltTower, Camel, Cavalry, Champion, Chariot, Citizen, City, Civic, CivilCentre, Clubman, Corral, Crossbowman, Defensive, Dock, Dog, Economic, Elephant, ElephantStable, Embassy, Farmstead, Field, Fireship, Fortress, Healer, Hero, House, Infantry, Javelinist, Maceman, Melee, Market, Mercenary, Military, Outpost, Pikeman, Quadrireme, Quinquereme, Ram, Range, Ranged, Relic, Resource, SentryTower, Ship, Shipyard, Siege, SiegeTower, Slave, Slinger, Soldier, Spearman, Stable, StoneThrower, StoneTower, Storehouse, Support, Swordsman, Temple, Tower, Town, Trader, Trireme, Village, Warship, Wonder, Worker, Workshop.'>" +
|
||||
"<element name='VisibleClasses' a:help='Optional list of space-separated classes applying to this entity. These classes will also be visible in various GUI elements. If the classes need spaces, underscores will be replaced with spaces. Choices include: Archer, ArmyCamp, ArtilleryTower, Axeman, Barracks, Bireme, Blacksmith, BoltShooter, BoltTower, Camel, Cavalry, Champion, Chariot, Citizen, City, Civic, CivilCentre, Clubman, Colony, Corral, Council, Crossbowman, Defensive, Dock, Dog, Economic, Elephant, ElephantStable, Embassy, Farmstead, Field, Fireship, FishingBoat, Fortress, Gate, Gymnasium, Healer, Hero, House, Infantry, IshtarGate, Javelinist, Library, Lighthouse, Maceman, Melee, Market, Mercenary, MerchantShip, Military, Naval, Outpost, Palace, Pikeman, Pillar, Quadrireme, Quinquereme, Ram, Range, Ranged, Relic, Resource, SentryTower, Ship, Shipyard, Siege, SiegeTower, SiegeWall, Slave, Slinger, Soldier, Spearman, Stable, Stoa, StoneThrower, StoneTower, Storehouse, Support, Swordsman, Syssiton, Temple, TempleOfAmun, TempleOfApedemak, TempleOfMars, TempleOfVesta, Theater, Tower, Town, Trade, Trader, Trireme, TriumphalArch, Village, Wall, Warship, Wonder, Worker, Workshop.'>" +
|
||||
"<attribute name='datatype'>" +
|
||||
"<value>tokens</value>" +
|
||||
"</attribute>" +
|
||||
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
"type": "global",
|
||||
"affects": ["Market"],
|
||||
"affects": ["Trade"],
|
||||
"affectedPlayers": ["ExclusiveMutualAlly"],
|
||||
"modifications": [
|
||||
{ "value": "Market/InternationalBonus", "add": 0.1 }
|
||||
],
|
||||
"auraName": "Trademasters",
|
||||
"auraDescription": "Allied Markets +10% international trade bonus."
|
||||
"auraDescription": "Allies +10% international trade bonus."
|
||||
}
|
||||
|
@ -71,7 +71,7 @@
|
||||
{
|
||||
"Name": "Trademasters",
|
||||
"History": "The Phoenicians and Carthaginians were broadly known as the greatest trading civilization of the ancient and classical world.",
|
||||
"Description": "Allied Markets +10% international trade bonus."
|
||||
"Description": "Allies +10% international trade bonus."
|
||||
}
|
||||
],
|
||||
"Structures":
|
||||
|
@ -7,11 +7,11 @@
|
||||
"requirementsTooltip": "Unlocked in Town Phase.",
|
||||
"icon": "stone_blocks_brown.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "City walls -20% build time, but -1 crush armor level.",
|
||||
"tooltip": "Walls −20% build time, but −1 crush armor.",
|
||||
"modifications": [
|
||||
{ "value": "Cost/BuildTime", "multiply": 0.8 },
|
||||
{ "value": "Armour/Crush", "add": -1 }
|
||||
{ "value": "Armour/Crush", "add": -1 },
|
||||
{ "value": "Cost/BuildTime", "multiply": 0.8 }
|
||||
],
|
||||
"affects": ["StoneWall"],
|
||||
"affects": ["Wall"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -6,9 +6,9 @@
|
||||
"tooltip": "Carthaginian Walls +100% build time, +100% stone cost, and +200% health.",
|
||||
"requirements": { "civ": "cart" },
|
||||
"modifications": [
|
||||
{ "value": "Health/Max", "multiply": 3 },
|
||||
{ "value": "Cost/BuildTime", "multiply": 2 },
|
||||
{ "value": "Cost/Resources/stone", "multiply": 2 }
|
||||
{ "value": "Cost/Resources/stone", "multiply": 2 },
|
||||
{ "value": "Health/Max", "multiply": 3 }
|
||||
],
|
||||
"affects": ["StoneWall"]
|
||||
"affects": ["Wall"]
|
||||
}
|
||||
|
@ -6,8 +6,8 @@
|
||||
"icon": "wooden_walls.png",
|
||||
"tooltip": "Mauryan City Walls −20% build time and −20% health.",
|
||||
"modifications": [
|
||||
{ "value": "Health/Max", "multiply": 0.8 },
|
||||
{ "value": "Cost/BuildTime", "multiply": 0.8 }
|
||||
{ "value": "Cost/BuildTime", "multiply": 0.8 },
|
||||
{ "value": "Health/Max", "multiply": 0.8 }
|
||||
],
|
||||
"affects": ["StoneWall"]
|
||||
"affects": ["Wall"]
|
||||
}
|
||||
|
@ -7,11 +7,11 @@
|
||||
"requirementsTooltip": "Unlocked in Town Phase.",
|
||||
"icon": "stone_blocks.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "City walls +2 crush armor levels, but +10% build time.",
|
||||
"tooltip": "Walls +2 crush armor, but +10% build time.",
|
||||
"modifications": [
|
||||
{ "value": "Cost/BuildTime", "multiply": 1.1 },
|
||||
{ "value": "Armour/Crush", "add": 2 }
|
||||
{ "value": "Armour/Crush", "add": 2 },
|
||||
{ "value": "Cost/BuildTime", "multiply": 1.1 }
|
||||
],
|
||||
"affects": ["StoneWall"],
|
||||
"affects": ["Wall"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -2,14 +2,19 @@
|
||||
"genericName": "Athenian Long Walls",
|
||||
"description": "The Long Walls of Athens were constructed under the auspices of the wily Themistocles and extended 6 km from the city to the port of Piraeus. This secured the city's sea supply routes and prevented an enemy from starving out the city during a siege.",
|
||||
"cost": { "food": 0, "wood": 0, "stone": 250, "metal": 250 },
|
||||
"requirements": { "all": [{ "tech": "phase_city" }, { "civ": "athen" }] },
|
||||
"requirements": {
|
||||
"all": [
|
||||
{ "tech": "phase_city" },
|
||||
{ "civ": "athen" }
|
||||
]
|
||||
},
|
||||
"requirementsTooltip": "Unlocked in City Phase.",
|
||||
"icon": "crenelations.png",
|
||||
"researchTime": 60,
|
||||
"tooltip": "Build stone walls in neutral territory.",
|
||||
"tooltip": "Build Walls in own or neutral territory.",
|
||||
"modifications": [
|
||||
{ "value": "BuildRestrictions/Territory", "replace": ["own", "neutral"] }
|
||||
],
|
||||
"affects": ["StoneWall"],
|
||||
"affects": ["Wall"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"genericName": "Walls build time vs. Health",
|
||||
"genericName": "Wall armor vs build time.",
|
||||
"top": "buildtime_walls_rubble",
|
||||
"bottom": "health_walls_geometric_masonry",
|
||||
"requirements": { "notciv": "iber" }
|
||||
|
@ -5,8 +5,13 @@
|
||||
},
|
||||
"description": "Advances from a bustling town to a veritable metropolis, full of the wonders of modern technology. This is the Athenian city phase, where metal gathering rates are boosted because of the 'Silver Owls' bonus.",
|
||||
"cost": { "food": 0, "wood": 0, "stone": 750, "metal": 750 },
|
||||
"requirements": { "entity": { "class": "Town", "number": 4 } },
|
||||
"requirementsTooltip": "Requires 4 new Town Phase structures (except Walls and Civic Centers).",
|
||||
"requirements": {
|
||||
"entity": {
|
||||
"class": "Town",
|
||||
"number": 4
|
||||
}
|
||||
},
|
||||
"requirementsTooltip": "Requires 4 Town Structures.",
|
||||
"supersedes": "phase_town_athen",
|
||||
"replaces": ["phase_city"],
|
||||
"icon": "city_phase.png",
|
||||
|
@ -6,8 +6,13 @@
|
||||
},
|
||||
"description": "Advances from a bustling town to a veritable metropolis, full of the wonders of modern technology.",
|
||||
"cost": { "food": 0, "wood": 0, "stone": 750, "metal": 750 },
|
||||
"requirements": { "entity": { "class": "Town", "number": 4 } },
|
||||
"requirementsTooltip": "Requires 4 new Town Phase structures (except Walls and Civic Centers).",
|
||||
"requirements": {
|
||||
"entity": {
|
||||
"class": "Town",
|
||||
"number": 4
|
||||
}
|
||||
},
|
||||
"requirementsTooltip": "Requires 4 Town Structures.",
|
||||
"supersedes": "phase_town_generic",
|
||||
"replaces": ["phase_city"],
|
||||
"icon": "city_phase.png",
|
||||
|
@ -5,8 +5,13 @@
|
||||
},
|
||||
"description": "Advances from a small village to a bustling town, ready to expand rapidly. This is the Athenian town phase, where metal gathering rates are boosted because of the 'Silver Owls' bonus.",
|
||||
"cost": { "food": 500, "wood": 500, "stone": 0, "metal": 0 },
|
||||
"requirements": { "entity": { "class": "Village", "number": 5 } },
|
||||
"requirementsTooltip": "Requires 5 Village Phase structures (except Palisades and Farm Fields).",
|
||||
"requirements": {
|
||||
"entity": {
|
||||
"class": "Village",
|
||||
"number": 5
|
||||
}
|
||||
},
|
||||
"requirementsTooltip": "Requires 5 Village Structures.",
|
||||
"supersedes": "phase_village",
|
||||
"replaces": ["phase_town"],
|
||||
"icon": "town_phase.png",
|
||||
|
@ -6,8 +6,13 @@
|
||||
},
|
||||
"description": "Advances from a small village to a bustling town, ready to expand rapidly.",
|
||||
"cost": { "food": 500, "wood": 500, "stone": 0, "metal": 0 },
|
||||
"requirements": { "entity": { "class": "Village", "number": 5 } },
|
||||
"requirementsTooltip": "Requires 5 Village Phase structures (except Palisades and Farm Fields).",
|
||||
"requirements": {
|
||||
"entity": {
|
||||
"class": "Village",
|
||||
"number": 5
|
||||
}
|
||||
},
|
||||
"requirementsTooltip": "Requires 5 Village Structures.",
|
||||
"supersedes": "phase_village",
|
||||
"replaces": ["phase_town"],
|
||||
"icon": "town_phase.png",
|
||||
|
@ -6,10 +6,10 @@
|
||||
"requirementsTooltip": "Unlocked in Town Phase.",
|
||||
"icon": "sibylline_books.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "Market +10% International Bonus.",
|
||||
"tooltip": "+10% international trade bonus.",
|
||||
"modifications": [
|
||||
{ "value": "Market/InternationalBonus", "add": 0.1 }
|
||||
],
|
||||
"affects": ["Market"],
|
||||
"affects": ["Trade"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -20,7 +20,7 @@
|
||||
<Fortress>10</Fortress>
|
||||
<Wonder>1</Wonder>
|
||||
<Hero>1</Hero>
|
||||
<Apadana>1</Apadana>
|
||||
<Palace>1</Palace>
|
||||
<Embassy>3</Embassy>
|
||||
<Monument>5</Monument>
|
||||
<Pillar>0</Pillar>
|
||||
@ -29,12 +29,13 @@
|
||||
<Library>1</Library>
|
||||
<Lighthouse>1</Lighthouse>
|
||||
<Juggernaut>1</Juggernaut>
|
||||
<UniqueBuilding>1</UniqueBuilding>
|
||||
<IshtarGate>1</IshtarGate>
|
||||
<Hall>2</Hall>
|
||||
<Stoa>2</Stoa>
|
||||
<PyramidSmall>4</PyramidSmall>
|
||||
<PyramidLarge>2</PyramidLarge>
|
||||
<TempleOfAmun>1</TempleOfAmun>
|
||||
<TempleOfVesta>1</TempleOfVesta>
|
||||
<Gladiator>0</Gladiator>
|
||||
<WarDog>20</WarDog>
|
||||
</Limits>
|
||||
|
@ -19,10 +19,11 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>athen</Civ>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<GenericName>Gymnasium</GenericName>
|
||||
<SpecificName>Gymnasion</SpecificName>
|
||||
<Tooltip>Train Champions.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">Gymnasium</VisibleClasses>
|
||||
<Icon>structures/gymnasium.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -19,10 +19,11 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>athen</Civ>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<GenericName>Council Chamber</GenericName>
|
||||
<SpecificName>Prytaneion</SpecificName>
|
||||
<Tooltip>Train Heroes and research technologies.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">Council</VisibleClasses>
|
||||
<Icon>structures/tholos.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -9,12 +9,12 @@
|
||||
<Height>8.0</Height>
|
||||
</Footprint>
|
||||
<Identity>
|
||||
<GenericName>Island Settlement</GenericName>
|
||||
<Civ>brit</Civ>
|
||||
<Classes datatype="tokens">Naval</Classes>
|
||||
<Icon>structures/crannog.png</Icon>
|
||||
<Tooltip>Increase population limit and defend waterways.</Tooltip>
|
||||
<GenericName>Island Settlement</GenericName>
|
||||
<SpecificName>Cranogion</SpecificName>
|
||||
<Tooltip>Build upon a shoreline in own, neutral, or allied territory. Acquire large tracts of territory. Territory root. Dropsite for food, wood, stone, and metal. Train Citizens, construct Ships, and research technologies. Garrison Soldiers for additional arrows.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Naval</VisibleClasses>
|
||||
<Icon>structures/crannog.png</Icon>
|
||||
<RequiredTechnology>phase_town</RequiredTechnology>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<Identity>
|
||||
<Civ>brit</Civ>
|
||||
<SpecificName>Uxelon</SpecificName>
|
||||
<Tooltip>Does not shoot or garrison.</Tooltip>
|
||||
<Tooltip disable=""/>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="10" depth="9"/>
|
||||
|
@ -40,11 +40,11 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>cart</Civ>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<GenericName>Naval Shipyard</GenericName>
|
||||
<SpecificName>Cothon</SpecificName>
|
||||
<VisibleClasses datatype="tokens">-City Shipyard Town</VisibleClasses>
|
||||
<Tooltip>Construct and repair mighty warships.</Tooltip>
|
||||
<Tooltip>Build upon a shoreline in own, neutral, or allied territory. Acquire large tracts of territory. Territory root. Construct Warships and research technologies.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">Naval -City Town Shipyard</VisibleClasses>
|
||||
<Icon>structures/uber_dock.png</Icon>
|
||||
<RequiredTechnology>phase_town</RequiredTechnology>
|
||||
</Identity>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<Identity>
|
||||
<Civ>cart</Civ>
|
||||
<SpecificName>Maqdaš</SpecificName>
|
||||
<Tooltip>Train Healers and Champions and research healing technologies. Garrison units to heal them at a quick rate.</Tooltip>
|
||||
<Tooltip>Train Healers and Champions and research healing technologies.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>80</stone>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<Identity>
|
||||
<Civ>gaul</Civ>
|
||||
<SpecificName>Uxelon</SpecificName>
|
||||
<Tooltip>Does not shoot or garrison.</Tooltip>
|
||||
<Tooltip disable=""/>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="8" depth="8"/>
|
||||
|
@ -31,9 +31,9 @@
|
||||
<Civ>iber</Civ>
|
||||
<GenericName>Revered Monument</GenericName>
|
||||
<SpecificName>Gur Oroigarri</SpecificName>
|
||||
<Classes datatype="tokens">Monument</Classes>
|
||||
<Tooltip>Territory root.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Monument</VisibleClasses>
|
||||
<Icon>structures/iberian_bull.png</Icon>
|
||||
<Tooltip>All units within vision of this monument will fight harder. Buildings in the territory of the monument do not decay.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>20</stone>
|
||||
|
@ -7,8 +7,8 @@
|
||||
<Civ>kush</Civ>
|
||||
<GenericName>Temple of Apedemak</GenericName>
|
||||
<SpecificName>Pr-ʿIprmk</SpecificName>
|
||||
<Tooltip>Train priests to heal your troops. Train Meroitic Temple Guards. Garrison units to heal them at a quick rate.</Tooltip>
|
||||
<Classes datatype="tokens">TempleOfApedemak</Classes>
|
||||
<Tooltip>Train Healers and Apedamak Champions and research healing technologies.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">TempleOfApedemak</VisibleClasses>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="18" depth="30.0"/>
|
||||
|
@ -27,10 +27,9 @@
|
||||
<Civ>kush</Civ>
|
||||
<GenericName>Grand Temple of Amun</GenericName>
|
||||
<SpecificName>Pr-ʿImn</SpecificName>
|
||||
<Tooltip>Train priests to heal your troops. Train Napatan Temple Guards and research unique technologies. Garrison units to heal them at a quick rate.</Tooltip>
|
||||
<Tooltip>Train Healers and Amun Champions and research healing technologies.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">-Town City TempleOfAmun</VisibleClasses>
|
||||
<Icon>structures/temple_epic.png</Icon>
|
||||
<Classes datatype="tokens">TempleOfAmun</Classes>
|
||||
<VisibleClasses datatype="tokens">City -Town</VisibleClasses>
|
||||
<RequiredTechnology>phase_city</RequiredTechnology>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -14,10 +14,11 @@
|
||||
</Footprint>
|
||||
<Identity>
|
||||
<Civ>maur</Civ>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<SpecificName>Harmya</SpecificName>
|
||||
<Icon>gaia/special_stoa.png</Icon>
|
||||
<Tooltip>Train Female Citizens, Champions, and Heroes.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">Palace</VisibleClasses>
|
||||
<Icon>gaia/special_stoa.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>40</stone>
|
||||
|
@ -31,9 +31,9 @@
|
||||
<Civ>maur</Civ>
|
||||
<GenericName>Edict Pillar of Ashoka</GenericName>
|
||||
<SpecificName>Śāsana Stambha Aśokā</SpecificName>
|
||||
<Classes datatype="tokens">Pillar</Classes>
|
||||
<Tooltip>Territory root.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Pillar</VisibleClasses>
|
||||
<Icon>structures/ashoka_pillar.png</Icon>
|
||||
<Tooltip>The famous pillar of Ashoka. Increases the walk speed of traders. Buildings in the territory of the monument do not decay.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>20</stone>
|
||||
|
@ -10,9 +10,6 @@
|
||||
<Square width="4" depth="10"/>
|
||||
<Height>6</Height>
|
||||
</Footprint>
|
||||
<Identity>
|
||||
<SpecificName>Palisade Curve</SpecificName>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>2</wood>
|
||||
</Loot>
|
||||
|
@ -10,9 +10,6 @@
|
||||
<Square width="1.5" depth="3"/>
|
||||
<Height>5</Height>
|
||||
</Footprint>
|
||||
<Identity>
|
||||
<SpecificName>Palisade End</SpecificName>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>1</wood>
|
||||
</Loot>
|
||||
|
@ -6,7 +6,6 @@
|
||||
<Height>9.0</Height>
|
||||
</Footprint>
|
||||
<Identity>
|
||||
<SpecificName>Palisade Fort</SpecificName>
|
||||
<GenericName>Wooden Tower</GenericName>
|
||||
<Icon>structures/palisade_fort.png</Icon>
|
||||
<Classes datatype="tokens">Palisade</Classes>
|
||||
|
@ -17,11 +17,11 @@
|
||||
<Max op="mul">0.64</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">Gates</Classes>
|
||||
<SpecificName>Palisade Gate</SpecificName>
|
||||
<GenericName>Palisade Gate</GenericName>
|
||||
<SelectionGroupName>structures/palisades_gate</SelectionGroupName>
|
||||
<Tooltip>Allow units access through Palisades. Can be locked to prevent access.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Gate</VisibleClasses>
|
||||
<Icon>structures/wooden_gate.png</Icon>
|
||||
<Tooltip>Allow units access through a palisade wall. Can be locked to prevent access.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>4</wood>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<Max op="mul">0.75</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<SpecificName>Palisade</SpecificName>
|
||||
<Tooltip>Can be converted into a Palisade Gate.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>3</wood>
|
||||
@ -28,11 +28,11 @@
|
||||
<Upgrade>
|
||||
<Gate>
|
||||
<Entity>structures/palisades_gate</Entity>
|
||||
<Tooltip>Allow units access through Palisades. Can be locked to prevent access.</Tooltip>
|
||||
<Cost>
|
||||
<wood>20</wood>
|
||||
</Cost>
|
||||
<Time>5</Time>
|
||||
<Tooltip>This will allow you to let units circulate through your fortifications.</Tooltip>
|
||||
<Variant>upgrading</Variant>
|
||||
</Gate>
|
||||
</Upgrade>
|
||||
|
@ -13,9 +13,6 @@
|
||||
<Health>
|
||||
<Max op="mul">0.5</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<SpecificName>Palisade</SpecificName>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>2</wood>
|
||||
</Loot>
|
||||
|
@ -13,9 +13,6 @@
|
||||
<Health>
|
||||
<Max op="mul">0.25</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<SpecificName>Palisade</SpecificName>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>1</wood>
|
||||
</Loot>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<Max op="mul">0.5</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<SpecificName>Angle Spike</SpecificName>
|
||||
<GenericName>Angle Spike</GenericName>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>1</wood>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<Max op="mul">0.2</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<SpecificName>Small Spikes</SpecificName>
|
||||
<GenericName>Small Spikes</GenericName>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>1</wood>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<Max op="mul">0.5</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<SpecificName>Tall Spikes</SpecificName>
|
||||
<GenericName>Tall Spikes</GenericName>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>2</wood>
|
||||
|
@ -10,9 +10,6 @@
|
||||
<Square width="3" depth="10"/>
|
||||
<Height>6</Height>
|
||||
</Footprint>
|
||||
<Identity>
|
||||
<SpecificName>Palisade</SpecificName>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>2</wood>
|
||||
</Loot>
|
||||
|
@ -13,10 +13,6 @@
|
||||
<Health>
|
||||
<Max op="mul">0.75</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<SpecificName>Palisade</SpecificName>
|
||||
<Classes datatype="tokens">Tower</Classes>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>1</wood>
|
||||
</Loot>
|
||||
|
@ -11,7 +11,7 @@
|
||||
<Height>12.0</Height>
|
||||
</Footprint>
|
||||
<Identity>
|
||||
<SpecificName>Watchtower</SpecificName>
|
||||
<GenericName>Watchtower</GenericName>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>3</wood>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_special">
|
||||
<BuildRestrictions>
|
||||
<Category>Apadana</Category>
|
||||
<Category>Palace</Category>
|
||||
</BuildRestrictions>
|
||||
<Cost>
|
||||
<BuildTime>300</BuildTime>
|
||||
@ -26,9 +26,10 @@
|
||||
<Civ>pers</Civ>
|
||||
<GenericName>Throne Hall</GenericName>
|
||||
<SpecificName>Apadāna</SpecificName>
|
||||
<Classes datatype="tokens">Apadana ConquestCritical Palace</Classes>
|
||||
<Tooltip>Train Champions and Heroes.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">Palace</VisibleClasses>
|
||||
<Icon>structures/palace.png</Icon>
|
||||
<Tooltip>"Satrapy Tribute": Gain a trickle of food, wood, stone, and metal resources. Train Champions and Heroes.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>60</stone>
|
||||
|
@ -23,9 +23,10 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>pers</Civ>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<GenericName>Gate of All Nations</GenericName>
|
||||
<SpecificName>Duvarθi Visadahyu</SpecificName>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">Hall</VisibleClasses>
|
||||
<Icon>structures/pers_hall.png</Icon>
|
||||
<Tooltip>Train Champions.</Tooltip>
|
||||
</Identity>
|
||||
|
@ -4,7 +4,7 @@
|
||||
structures/loyalty_regen
|
||||
</Auras>
|
||||
<BuildRestrictions>
|
||||
<Category>UniqueBuilding</Category>
|
||||
<Category>IshtarGate</Category>
|
||||
</BuildRestrictions>
|
||||
<Capturable disable=""/>
|
||||
<Cost>
|
||||
@ -26,10 +26,10 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>pers</Civ>
|
||||
<GenericName>Persian Special Building</GenericName>
|
||||
<SpecificName>Ishtar Gate of Babylon</SpecificName>
|
||||
<Tooltip>Increases the loyalty regeneration of nearby structures, making them harder to capture.</Tooltip>
|
||||
<GenericName>Ishtar Gate of Babylon</GenericName>
|
||||
<Tooltip>Territory root.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">IshtarGate</VisibleClasses>
|
||||
<Icon>structures/pers_gate.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -23,7 +23,8 @@
|
||||
<Civ>pers</Civ>
|
||||
<GenericName>Palace</GenericName>
|
||||
<SpecificName>Taçara</SpecificName>
|
||||
<Classes datatype="tokens">ConquestCritical Palace</Classes>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">Palace</VisibleClasses>
|
||||
<Icon>structures/palace.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -23,9 +23,8 @@
|
||||
<Civ>ptol</Civ>
|
||||
<GenericName>Lighthouse</GenericName>
|
||||
<SpecificName>Pharos</SpecificName>
|
||||
<Classes datatype="tokens">Lighthouse</Classes>
|
||||
<VisibleClasses datatype="tokens">-City Town</VisibleClasses>
|
||||
<Tooltip>Build along the shore to reveal the shorelines over the entire map. Very large vision range: 180 meters.</Tooltip>
|
||||
<Tooltip>Build upon a shoreline in own, neutral, or allied territory. Reveal the shorelines over the entire map. Very large vision range.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">-City Town Lighthouse</VisibleClasses>
|
||||
<Icon>structures/lighthouse.png</Icon>
|
||||
<RequiredTechnology>phase_town</RequiredTechnology>
|
||||
</Identity>
|
||||
|
@ -7,7 +7,6 @@
|
||||
<Identity>
|
||||
<Civ>ptol</Civ>
|
||||
<SpecificName>Klērouchia</SpecificName>
|
||||
<Tooltip>This is the Ptolemaic expansion building, similar to Civic Centers for other factions. It is weaker and carries a smaller territory influence, but is cheaper and built faster. Train settler-soldiers of various nationalities.</Tooltip>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="32" depth="31"/>
|
||||
|
@ -20,7 +20,8 @@
|
||||
<Civ>rome</Civ>
|
||||
<GenericName>Triumphal Arch</GenericName>
|
||||
<SpecificName>Arcus Triumphālis</SpecificName>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<Tooltip>Territory root.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">TriumphalArch</VisibleClasses>
|
||||
<Icon>structures/arch.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -79,9 +79,10 @@
|
||||
<Civ>rome</Civ>
|
||||
<GenericName>Army Camp</GenericName>
|
||||
<SpecificName>Castra</SpecificName>
|
||||
<Classes datatype="tokens">ArmyCamp ConquestCritical</Classes>
|
||||
<Icon>structures/roman_camp.png</Icon>
|
||||
<Tooltip>Build in neutral or enemy territory. Train Citizen-Soldiers and construct Siege Engines. Garrison Soldiers for additional arrows.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">ArmyCamp</VisibleClasses>
|
||||
<Icon>structures/roman_camp.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<xp>100</xp>
|
||||
|
@ -30,7 +30,7 @@
|
||||
<Civ>rome</Civ>
|
||||
<GenericName>Siege Wall Gate</GenericName>
|
||||
<SpecificName>Porta Circummūnītiōnis</SpecificName>
|
||||
<Classes datatype="tokens">SiegeWall</Classes>
|
||||
<VisibleClasses datatype="tokens">SiegeWall</VisibleClasses>
|
||||
<Icon>structures/wooden_gate.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -31,9 +31,8 @@
|
||||
<SelectionGroupName>structures/rome_wallset_siege</SelectionGroupName>
|
||||
<GenericName>Siege Wall</GenericName>
|
||||
<SpecificName>Mūrus Circummūnītiōnis</SpecificName>
|
||||
<Classes datatype="tokens">SiegeWall</Classes>
|
||||
<VisibleClasses datatype="tokens">SiegeWall</VisibleClasses>
|
||||
<Icon>structures/siege_wall.png</Icon>
|
||||
<Tooltip>A wooden and turf palisade buildable in enemy and neutral territories.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>12</wood>
|
||||
|
@ -31,9 +31,8 @@
|
||||
<SelectionGroupName>structures/rome_wallset_siege</SelectionGroupName>
|
||||
<GenericName>Siege Wall</GenericName>
|
||||
<SpecificName>Mūrus Circummūnītiōnis</SpecificName>
|
||||
<Classes datatype="tokens">SiegeWall</Classes>
|
||||
<VisibleClasses datatype="tokens">SiegeWall</VisibleClasses>
|
||||
<Icon>structures/siege_wall.png</Icon>
|
||||
<Tooltip>A wooden and turf palisade buildable in enemy and neutral territories.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>8</wood>
|
||||
|
@ -31,9 +31,8 @@
|
||||
<SelectionGroupName>structures/rome_wallset_siege</SelectionGroupName>
|
||||
<GenericName>Siege Wall</GenericName>
|
||||
<SpecificName>Mūrus Circummūnītiōnis</SpecificName>
|
||||
<Classes datatype="tokens">SiegeWall</Classes>
|
||||
<VisibleClasses datatype="tokens">SiegeWall</VisibleClasses>
|
||||
<Icon>structures/siege_wall.png</Icon>
|
||||
<Tooltip>A wooden and turf palisade buildable in enemy and neutral territories.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>4</wood>
|
||||
|
@ -30,7 +30,7 @@
|
||||
<Civ>rome</Civ>
|
||||
<GenericName>Siege Wall Tower</GenericName>
|
||||
<SpecificName>Turris Circummūnītiōnis</SpecificName>
|
||||
<Classes datatype="tokens">SiegeWall</Classes>
|
||||
<VisibleClasses datatype="tokens">SiegeWall</VisibleClasses>
|
||||
<Icon>structures/siege_wall.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -11,6 +11,8 @@
|
||||
<Civ>rome</Civ>
|
||||
<GenericName>Temple of Mars</GenericName>
|
||||
<SpecificName>Aedēs Mārtiālis</SpecificName>
|
||||
<VisibleClasses datatype="tokens">-Town City TempleOfMars</VisibleClasses>
|
||||
<RequiredTechnology>phase_city</RequiredTechnology>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="20.0" depth="40.0"/>
|
||||
|
@ -4,7 +4,7 @@
|
||||
structures/loyalty_regen
|
||||
</Auras>
|
||||
<BuildRestrictions>
|
||||
<Category>UniqueBuilding</Category>
|
||||
<Category>TempleOfVesta</Category>
|
||||
</BuildRestrictions>
|
||||
<Footprint replace="">
|
||||
<Circle radius="11.0"/>
|
||||
@ -15,8 +15,9 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<GenericName>Temple of Vesta</GenericName>
|
||||
<Icon>structures/temple_vesta.png</Icon>
|
||||
<SpecificName>Aedēs Vestālis</SpecificName>
|
||||
<VisibleClasses datatype="tokens">TempleOfVesta</VisibleClasses>
|
||||
<Icon>structures/temple_vesta.png</Icon>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="19.0" depth="19.0"/>
|
||||
|
@ -4,8 +4,9 @@
|
||||
<Civ>rome</Civ>
|
||||
<GenericName>Siege Wall</GenericName>
|
||||
<SpecificName>Mūrus Circummūnītiōnis</SpecificName>
|
||||
<Tooltip>Wall off an area. Build in own, neutral, or enemy territory.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">SiegeWall</VisibleClasses>
|
||||
<Icon>structures/siege_wall.png</Icon>
|
||||
<Tooltip>A wooden and turf palisade buildable in enemy and neutral territories.</Tooltip>
|
||||
<RequiredTechnology>phase_city</RequiredTechnology>
|
||||
</Identity>
|
||||
<WallSet>
|
||||
|
@ -7,7 +7,6 @@
|
||||
<Identity>
|
||||
<Civ>sele</Civ>
|
||||
<SpecificName>Klērouchia</SpecificName>
|
||||
<Tooltip>This is the Seleucid expansion building, similar to Civic Centers for other factions. It is weaker and carries a smaller territory influence, but is cheaper and built faster. Train settler-soldiers of various nationalities.</Tooltip>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="29" depth="29"/>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_special">
|
||||
<BuildRestrictions>
|
||||
<Category>Council</Category>
|
||||
</BuildRestrictions>
|
||||
<Cost>
|
||||
<BuildTime>200</BuildTime>
|
||||
<Resources>
|
||||
@ -16,10 +19,11 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>spart</Civ>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<GenericName>Spartan Senate</GenericName>
|
||||
<SpecificName>Gerousia</SpecificName>
|
||||
<Tooltip>Train Heroes.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">Council</VisibleClasses>
|
||||
<Icon>structures/tholos.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -20,10 +20,11 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>spart</Civ>
|
||||
<Classes datatype="tokens">ConquestCritical Syssiton</Classes>
|
||||
<GenericName>Military Mess Hall</GenericName>
|
||||
<SpecificName>Syssition</SpecificName>
|
||||
<Tooltip>Train Champions and Heroes.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">Syssiton</VisibleClasses>
|
||||
<Icon>structures/syssition.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -1,9 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_wallset">
|
||||
<Identity>
|
||||
<GenericName>Wooden Wall</GenericName>
|
||||
<SpecificName>Palisade</SpecificName>
|
||||
<Classes datatype="tokens">-StoneWall Palisade</Classes>
|
||||
<GenericName>Palisade</GenericName>
|
||||
<VisibleClasses datatype="tokens">-Wall Palisade</VisibleClasses>
|
||||
<Icon>structures/palisade_wall.png</Icon>
|
||||
<RequiredTechnology>phase_village</RequiredTechnology>
|
||||
</Identity>
|
||||
|
@ -86,7 +86,7 @@
|
||||
<Identity>
|
||||
<GenericName>Civic Center</GenericName>
|
||||
<SelectionGroupName>template_structure_civic_civil_centre</SelectionGroupName>
|
||||
<Tooltip>Build to acquire large tracts of territory. Train citizens.</Tooltip>
|
||||
<Tooltip>Build in own or neutral territory. Acquire large tracts of territory. Territory root. Dropsite for food, wood, stone, and metal. Train Citizens and research technologies. Garrison Soldiers for additional arrows.</Tooltip>
|
||||
<Classes datatype="tokens">CivCentre</Classes>
|
||||
<VisibleClasses datatype="tokens">Defensive CivilCentre</VisibleClasses>
|
||||
<Icon>structures/civic_centre.png</Icon>
|
||||
|
@ -25,8 +25,8 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<GenericName>Military Colony</GenericName>
|
||||
<Classes datatype="tokens">Colony</Classes>
|
||||
<SelectionGroupName>template_structure_civic_civil_centre_military_colony</SelectionGroupName>
|
||||
<VisibleClasses datatype="tokens">Colony</VisibleClasses>
|
||||
<Icon>structures/military_settlement.png</Icon>
|
||||
<RequiredTechnology>phase_town</RequiredTechnology>
|
||||
</Identity>
|
||||
|
@ -32,10 +32,10 @@
|
||||
</Health>
|
||||
<Identity>
|
||||
<GenericName>House</GenericName>
|
||||
<Tooltip>Increase the population limit.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Village House</VisibleClasses>
|
||||
<SelectionGroupName>template_structure_civic_house</SelectionGroupName>
|
||||
<VisibleClasses datatype="tokens">Village House</VisibleClasses>
|
||||
<Icon>structures/house.png</Icon>
|
||||
<RequiredTechnology>phase_village</RequiredTechnology>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>15</wood>
|
||||
|
@ -30,10 +30,10 @@
|
||||
<Identity>
|
||||
<GenericName>Stoa</GenericName>
|
||||
<SelectionGroupName>template_structure_civic_stoa</SelectionGroupName>
|
||||
<Tooltip>Recruit special units.</Tooltip>
|
||||
<Tooltip>Train Mercenary Champions.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Town Stoa</VisibleClasses>
|
||||
<Icon>gaia/special_stoa.png</Icon>
|
||||
<RequiredTechnology>phase_town</RequiredTechnology>
|
||||
<VisibleClasses datatype="tokens">Town</VisibleClasses>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>20</stone>
|
||||
|
@ -32,7 +32,7 @@
|
||||
<Identity>
|
||||
<GenericName>Temple</GenericName>
|
||||
<SelectionGroupName>template_structure_civic_temple</SelectionGroupName>
|
||||
<Tooltip>Train Healers and research healing technologies. Garrison units to heal them at a quick rate.</Tooltip>
|
||||
<Tooltip>Train Healers and research healing technologies.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Town Temple</VisibleClasses>
|
||||
<Icon>structures/temple.png</Icon>
|
||||
<RequiredTechnology>phase_town</RequiredTechnology>
|
||||
|
@ -17,12 +17,11 @@
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_2x2</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">Palisade</Classes>
|
||||
<GenericName>Wooden Wall</GenericName>
|
||||
<GenericName>Palisade</GenericName>
|
||||
<SelectionGroupName>template_structure_defensive_palisade</SelectionGroupName>
|
||||
<Tooltip>Wall off your town for a stout defense.</Tooltip>
|
||||
<Tooltip>Wall off an area.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Palisade</VisibleClasses>
|
||||
<Icon>gaia/special_palisade.png</Icon>
|
||||
<RequiredTechnology>phase_village</RequiredTechnology>
|
||||
</Identity>
|
||||
<ProductionQueue disable=""/>
|
||||
<RallyPoint disable=""/>
|
||||
|
@ -49,6 +49,7 @@
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_2x2</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<GenericName>Tower</GenericName>
|
||||
<VisibleClasses datatype="tokens">Tower</VisibleClasses>
|
||||
</Identity>
|
||||
<Sound>
|
||||
|
@ -51,7 +51,7 @@
|
||||
<GenericName>Outpost</GenericName>
|
||||
<SelectionGroupName>template_structure_defensive_tower_outpost</SelectionGroupName>
|
||||
<Tooltip>Build in own or neutral territory. Slowly converts to Gaia while in neutral territory.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Village -Tower Outpost</VisibleClasses>
|
||||
<VisibleClasses datatype="tokens">-Tower Outpost</VisibleClasses>
|
||||
<Icon>structures/outpost.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -37,6 +37,7 @@
|
||||
<Tooltip>Garrison Infantry for additional arrows. Needs the “Murder Holes” technology to protect its foot.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Village SentryTower</VisibleClasses>
|
||||
<Icon>structures/sentry_tower.png</Icon>
|
||||
<RequiredTechnology>phase_village</RequiredTechnology>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>20</wood>
|
||||
|
@ -28,7 +28,7 @@
|
||||
<Max>1000</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<GenericName>Defense Tower</GenericName>
|
||||
<GenericName>Stone Tower</GenericName>
|
||||
<SelectionGroupName>template_structure_defensive_tower_stone</SelectionGroupName>
|
||||
<Tooltip>Garrison Infantry for additional arrows. Needs the “Murder Holes” technology to protect its foot.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Town StoneTower</VisibleClasses>
|
||||
|
@ -12,10 +12,10 @@
|
||||
<Height>8.0</Height>
|
||||
</Footprint>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">StoneWall</Classes>
|
||||
<GenericName>Stone Wall</GenericName>
|
||||
<GenericName>Wall</GenericName>
|
||||
<SelectionGroupName>template_structure_defensive_wall</SelectionGroupName>
|
||||
<Tooltip>Wall off your town for a stout defense.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Wall</VisibleClasses>
|
||||
<Icon>structures/wall.png</Icon>
|
||||
<RequiredTechnology>phase_town</RequiredTechnology>
|
||||
</Identity>
|
||||
|
@ -16,11 +16,11 @@
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_wall_long</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">Gates</Classes>
|
||||
<GenericName>City Gate</GenericName>
|
||||
<GenericName>Gate</GenericName>
|
||||
<SelectionGroupName>template_structure_defensive_wall_gate</SelectionGroupName>
|
||||
<Tooltip>Allow units access through Walls. Can be locked to prevent access.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Gate</VisibleClasses>
|
||||
<Icon>structures/gate.png</Icon>
|
||||
<Tooltip>Allow units access through a city wall. Can be locked to prevent access.</Tooltip>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>12</stone>
|
||||
|
@ -22,8 +22,8 @@
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_wall_long</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">LongWall</Classes>
|
||||
<Tooltip>Long wall segments can be converted to gates.</Tooltip>
|
||||
<Tooltip>Can be converted into a Gate.</Tooltip>
|
||||
<Classes datatype="tokens">WallLong</Classes>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>7</stone>
|
||||
@ -32,7 +32,7 @@
|
||||
<Upgrade>
|
||||
<Gate>
|
||||
<Entity>structures/{civ}_wall_gate</Entity>
|
||||
<Tooltip>This will allow you to let units circulate through your fortifications.</Tooltip>
|
||||
<Tooltip>Allow units access through Walls. Can be locked to prevent access.</Tooltip>
|
||||
<Cost>
|
||||
<stone>60</stone>
|
||||
</Cost>
|
||||
|
@ -21,6 +21,9 @@
|
||||
<Max>2000</Max>
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_wall_medium</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">WallMedium</Classes>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>5</stone>
|
||||
</Loot>
|
||||
|
@ -10,6 +10,9 @@
|
||||
<Max>1000</Max>
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_wall_short</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">WallShort</Classes>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<stone>3</stone>
|
||||
</Loot>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<Identity>
|
||||
<GenericName>Wall Turret</GenericName>
|
||||
<SelectionGroupName>template_structure_defensive_wall_tower</SelectionGroupName>
|
||||
<Tooltip>Garrison Infantry for additional arrows. Needs the “Murder Holes” technology to protect its foot.</Tooltip>
|
||||
<Tooltip>Garrison Infantry for additional arrows.</Tooltip>
|
||||
<Classes datatype="tokens">WallTower</Classes>
|
||||
<Icon>structures/tower.png</Icon>
|
||||
</Identity>
|
||||
|
@ -26,12 +26,13 @@
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_4x4</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">DropsiteFood</Classes>
|
||||
<GenericName>Farmstead</GenericName>
|
||||
<SelectionGroupName>template_structure_economic_farmstead</SelectionGroupName>
|
||||
<Icon>structures/farmstead.png</Icon>
|
||||
<Tooltip>Dropsite for the food resource. Research food gathering improvements.</Tooltip>
|
||||
<Tooltip>Dropsite for food. Research food gathering technologies.</Tooltip>
|
||||
<Classes datatype="tokens">DropsiteFood</Classes>
|
||||
<VisibleClasses datatype="tokens">Village Farmstead</VisibleClasses>
|
||||
<Icon>structures/farmstead.png</Icon>
|
||||
<RequiredTechnology>phase_village</RequiredTechnology>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>20</wood>
|
||||
|
@ -24,13 +24,13 @@
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_5x5</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">BarterMarket</Classes>
|
||||
<GenericName>Market</GenericName>
|
||||
<SelectionGroupName>template_structure_economic_market</SelectionGroupName>
|
||||
<Tooltip>Barter resources. Establish trade routes. Train Traders and research trade and barter technologies.</Tooltip>
|
||||
<Classes datatype="tokens">Barter</Classes>
|
||||
<VisibleClasses datatype="tokens">Trade Town Market</VisibleClasses>
|
||||
<Icon>structures/market.png</Icon>
|
||||
<RequiredTechnology>phase_town</RequiredTechnology>
|
||||
<Tooltip>Create trade units to trade between other markets. Barter resources. Research trading and bartering improvements.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Town Market</VisibleClasses>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>60</wood>
|
||||
|
@ -27,12 +27,13 @@
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_3x3</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">DropsiteWood DropsiteMetal DropsiteStone</Classes>
|
||||
<GenericName>Storehouse</GenericName>
|
||||
<SelectionGroupName>template_structure_economic_storehouse</SelectionGroupName>
|
||||
<Icon>structures/storehouse.png</Icon>
|
||||
<Tooltip>Dropsite for wood, stone, and metal resources. Research gathering improvements for these resources.</Tooltip>
|
||||
<Tooltip>Dropsite for wood, stone, and metal. Research gathering technologies.</Tooltip>
|
||||
<Classes datatype="tokens">DropsiteWood DropsiteMetal DropsiteStone</Classes>
|
||||
<VisibleClasses datatype="tokens">Village Storehouse</VisibleClasses>
|
||||
<Icon>structures/storehouse.png</Icon>
|
||||
<RequiredTechnology>phase_village</RequiredTechnology>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>20</wood>
|
||||
|
@ -25,7 +25,7 @@
|
||||
<Identity>
|
||||
<GenericName>Barracks</GenericName>
|
||||
<SelectionGroupName>template_structure_military_barracks</SelectionGroupName>
|
||||
<Tooltip>Train citizen-soldiers. Research training improvements.</Tooltip>
|
||||
<Tooltip>Train Citizen Soldiers and research technologies.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Village Barracks</VisibleClasses>
|
||||
<Icon>structures/barracks.png</Icon>
|
||||
<RequiredTechnology>phase_village</RequiredTechnology>
|
||||
|
@ -24,9 +24,8 @@
|
||||
<Identity>
|
||||
<GenericName>Dock</GenericName>
|
||||
<SelectionGroupName>template_structure_military_dock</SelectionGroupName>
|
||||
<Tooltip>Build upon a shoreline to construct naval vessels and to open sea trade. Research naval improvements.</Tooltip>
|
||||
<Classes datatype="tokens">Naval NavalMarket</Classes>
|
||||
<VisibleClasses datatype="tokens">Economic Village Market Dock</VisibleClasses>
|
||||
<Tooltip>Build upon a shoreline in own, neutral, or allied territory. Dropsite for food, wood, stone, and metal. Establish trade routes. Construct Ships and research Ship technologies.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Economic Naval Trade Village Dock</VisibleClasses>
|
||||
<Icon>structures/dock.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -17,9 +17,10 @@
|
||||
<Identity>
|
||||
<GenericName>Corral</GenericName>
|
||||
<SelectionGroupName>template_structure_resource_corral</SelectionGroupName>
|
||||
<Tooltip>Raise herd animals for food. Task domestic animals here to gain a trickle of food or other bonus (Not yet implemented).</Tooltip>
|
||||
<Tooltip>Raise Domestic Animals for food.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Village Corral</VisibleClasses>
|
||||
<Icon>structures/corral.png</Icon>
|
||||
<RequiredTechnology>phase_village</RequiredTechnology>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<wood>20</wood>
|
||||
|
@ -30,9 +30,7 @@
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_6x6</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<GenericName>Special Building</GenericName>
|
||||
<Tooltip>This is a special building unique to a particular civilization.</Tooltip>
|
||||
<Classes datatype="tokens">SpecialBuilding</Classes>
|
||||
<GenericName>Special Structure</GenericName>
|
||||
<VisibleClasses datatype="tokens">City</VisibleClasses>
|
||||
<RequiredTechnology>phase_city</RequiredTechnology>
|
||||
</Identity>
|
||||
|
@ -18,9 +18,9 @@
|
||||
<Max>2000</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">Amphitheater</Classes>
|
||||
<GenericName>Amphitheater</GenericName>
|
||||
<SelectionGroupName>template_structure_special_amphitheater</SelectionGroupName>
|
||||
<VisibleClasses datatype="tokens">Amphitheater</VisibleClasses>
|
||||
<Icon>structures/theater.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -23,7 +23,7 @@
|
||||
<Identity>
|
||||
<GenericName>Library</GenericName>
|
||||
<SelectionGroupName>template_structure_special_library</SelectionGroupName>
|
||||
<Tooltip>Research special technologies.</Tooltip>
|
||||
<VisibleClasses datatype="tokens">Library</VisibleClasses>
|
||||
<Icon>structures/library_scroll.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<Identity>
|
||||
<GenericName>Rotary Mill</GenericName>
|
||||
<SelectionGroupName>template_structure_special_rotarymill</SelectionGroupName>
|
||||
<VisibleClasses datatype="tokens">RotaryMill</VisibleClasses>
|
||||
<Icon>structures/rotarymill.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -21,9 +21,9 @@
|
||||
<Max>2000</Max>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">Theater</Classes>
|
||||
<GenericName>Theater</GenericName>
|
||||
<SelectionGroupName>template_structure_special_theater</SelectionGroupName>
|
||||
<VisibleClasses datatype="tokens">Theater</VisibleClasses>
|
||||
<Icon>structures/theater.png</Icon>
|
||||
</Identity>
|
||||
<Loot>
|
||||
|
@ -46,10 +46,10 @@
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_6x6</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<GenericName>Wonder</GenericName>
|
||||
<SelectionGroupName>template_structure_wonder</SelectionGroupName>
|
||||
<Tooltip>Bring glory to your civilization and add large tracts of land to your empire.</Tooltip>
|
||||
<Classes datatype="tokens">ConquestCritical</Classes>
|
||||
<VisibleClasses datatype="tokens">City Wonder</VisibleClasses>
|
||||
<Icon>structures/wonder.png</Icon>
|
||||
<RequiredTechnology>phase_city</RequiredTechnology>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<Capture>2.5</Capture>
|
||||
<MaxRange>4</MaxRange>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
<RestrictedClasses datatype="tokens">Field Palisade SiegeWall StoneWall</RestrictedClasses>
|
||||
<RestrictedClasses datatype="tokens">Field Palisade Wall</RestrictedClasses>
|
||||
</Capture>
|
||||
<Slaughter>
|
||||
<Damage>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<Capture>5</Capture>
|
||||
<MaxRange>4</MaxRange>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
<RestrictedClasses datatype="tokens">Field Palisade SiegeWall StoneWall</RestrictedClasses>
|
||||
<RestrictedClasses datatype="tokens">Field Palisade Wall</RestrictedClasses>
|
||||
</Capture>
|
||||
</Attack>
|
||||
<Identity>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<Capture>10</Capture>
|
||||
<MaxRange>4</MaxRange>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
<RestrictedClasses datatype="tokens">Field Palisade SiegeWall StoneWall</RestrictedClasses>
|
||||
<RestrictedClasses datatype="tokens">Field Palisade Wall</RestrictedClasses>
|
||||
</Capture>
|
||||
</Attack>
|
||||
<Auras datatype="tokens">
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user