Move civ-specific templates to subfolders.

See also
https://wildfiregames.com/forum/index.php?/topic/28614-template-folder-structure/.

Differential Revision: D2952
Reviewed By: @Nescio
This was SVN commit r24216.
This commit is contained in:
Freagarach
2020-11-19 10:20:25 +00:00
parent a4852c4c01
commit b57abe806c
1208 changed files with 1935 additions and 1934 deletions
@@ -483,7 +483,7 @@ function GetTemplateDataHelper(template, player, auraTemplates, modifiers = {})
"templates": {
"tower": template.WallSet.Templates.Tower,
"gate": template.WallSet.Templates.Gate,
"fort": template.WallSet.Templates.Fort || "structures/" + template.Identity.Civ + "_fortress",
"fort": template.WallSet.Templates.Fort || "structures/" + template.Identity.Civ + "/fortress",
"long": template.WallSet.Templates.WallLong,
"medium": template.WallSet.Templates.WallMedium,
"short": template.WallSet.Templates.WallShort
@@ -4,7 +4,7 @@
"Script" : "belgian_uplands.js",
"Description" : "An experimental map with its heightmap generated by erosion to look more natural. Not all seeds will be fair though! Tiny maps with 8 players may take a while to generate.",
"DisabledTemplates": [
"structures/ptol_lighthouse"
"structures/ptol/lighthouse"
],
"CircularMap" : true,
"Preview" : "belgian_uplands.png"
@@ -6,7 +6,7 @@ Engine.LoadLibrary("heightmap");
var tGrove = "temp_grass_plants";
var tPath = "road_rome_a";
var oGroveEntities = ["structures/gaul_outpost", "gaia/tree/oak_new"];
var oGroveEntities = ["structures/gaul/outpost", "gaia/tree/oak_new"];
var g_Map = new RandomMap(0, "whiteness");
@@ -44,7 +44,7 @@ g_WallStyles.other = {
"bench": { "angle": Math.PI / 2, "length": 1.5, "indent": 0, "bend": 0, "templateName": "structures/bench" },
"sheep": { "angle": 0, "length": 0, "indent": 0.75, "bend": 0, "templateName": "gaia/fauna_sheep" },
"foodBin": { "angle": Math.PI / 2, "length": 1.5, "indent": 0, "bend": 0, "templateName": "gaia/treasure/food_bin" },
"farmstead": { "angle": Math.PI, "length": 0, "indent": -3, "bend": 0, "templateName": "structures/brit_farmstead" }
"farmstead": { "angle": Math.PI, "length": 0, "indent": -3, "bend": 0, "templateName": "structures/brit/farmstead" }
};
let fences = [
@@ -119,7 +119,7 @@ function placeGrove(point)
function placeCamp(point,
centerEntity = "actor|props/special/eyecandy/campfire.xml",
otherEntities = ["gaia/treasure/metal", "gaia/treasure/standing_stone",
"units/brit_infantry_slinger_b", "units/brit_infantry_javelineer_b", "units/gaul_infantry_slinger_b", "units/gaul_infantry_javelineer_b", "units/gaul_champion_fanatic",
"units/brit/infantry_slinger_b", "units/brit/infantry_javelineer_b", "units/gaul/infantry_slinger_b", "units/gaul/infantry_javelineer_b", "units/gaul/champion_fanatic",
"actor|props/special/common/waypoint_flag.xml", "actor|props/special/eyecandy/barrel_a.xml", "actor|props/special/eyecandy/basket_celt_a.xml", "actor|props/special/eyecandy/crate_a.xml", "actor|props/special/eyecandy/dummy_a.xml", "actor|props/special/eyecandy/handcart_1.xml", "actor|props/special/eyecandy/handcart_1_broken.xml", "actor|props/special/eyecandy/sack_1.xml", "actor|props/special/eyecandy/sack_1_rough.xml"
]
)
@@ -58,16 +58,16 @@ const oTreasures = [
// Disable capturing on all parts of the village except the
// civic center and buildings occurring outside of the village
const oCivicCenter = "structures/gaul_civil_centre";
const oTower = "structures/gaul_defense_tower";
const oOutpost = "structures/gaul_outpost";
const oCivicCenter = "structures/gaul/civil_centre";
const oTower = "structures/gaul/defense_tower";
const oOutpost = "structures/gaul/outpost";
const oTemple = "uncapturable|structures/gaul_temple";
const oTavern = "uncapturable|structures/gaul_tavern";
const oHouse = "uncapturable|structures/gaul_house";
const oTemple = "uncapturable|structures/gaul/temple";
const oTavern = "uncapturable|structures/gaul/tavern";
const oHouse = "uncapturable|structures/gaul/house";
const oLongHouse = "uncapturable|structures/celt_longhouse";
const oHut = "uncapturable|structures/celt_hut";
const oSentryTower = "uncapturable|structures/gaul_sentry_tower";
const oSentryTower = "uncapturable|structures/gaul/sentry_tower";
const oWatchTower = "uncapturable|structures/palisades_watchtower";
const oPalisadeTallSpikes = "uncapturable|structures/palisades_spikes_tall";
@@ -79,10 +79,10 @@ const oPalisadeLong = "uncapturable|structures/palisades_long";
const oPalisadeGate = "uncapturable|structures/palisades_gate";
const oPalisadePillar = "uncapturable|structures/palisades_tower";
const oFemale = "units/gaul_support_female_citizen";
const oHealer = "units/gaul_support_healer_b";
const oSkirmisher = "units/gaul_infantry_javelineer_b";
const oNakedFanatic = "units/gaul_champion_fanatic";
const oFemale = "units/gaul/support_female_citizen";
const oHealer = "units/gaul/support_healer_b";
const oSkirmisher = "units/gaul/infantry_javelineer_b";
const oNakedFanatic = "units/gaul/champion_fanatic";
const aBush1 = "actor|props/flora/bush_tempe_sm.xml";
const aBush2 = "actor|props/flora/bush_tempe_me.xml";
@@ -22,9 +22,9 @@ const danubiusAttackerTemplates = deepfreeze({
"citizen_soldiers": TriggerHelper.GetTemplateNamesByClasses("CitizenSoldier", "gaul", undefined, "Basic", true),
"heroes": [
// Excludes the Vercingetorix variant
"units/gaul_hero_viridomarus",
"units/gaul_hero_vercingetorix",
"units/gaul_hero_brennus"
"units/gaul/hero_viridomarus",
"units/gaul/hero_vercingetorix",
"units/gaul/hero_brennus"
]
});
@@ -66,14 +66,14 @@ const oFish = "gaia/fish/tilapia";
const oHawk = "birds/buzzard";
// The main temple on elephantine was very similar looking (Greco-Roman-Egyptian):
const oWonder = "structures/ptol_wonder";
const oTemples = ["structures/kush_temple_amun", "structures/kush_temple"];
const oPyramid = "structures/kush_pyramid_large";
const oTowers = new Array(2).fill("uncapturable|structures/kush_sentry_tower").concat(["uncapturable|structures/kush_defense_tower"]);
const oWonder = "structures/ptol/wonder";
const oTemples = ["structures/kush/temple_amun", "structures/kush/temple"];
const oPyramid = "structures/kush/pyramid_large";
const oTowers = new Array(2).fill("uncapturable|structures/kush/sentry_tower").concat(["uncapturable|structures/kush/defense_tower"]);
const oHeroes = Engine.FindTemplates("units/", true).filter(templateName => templateName.startsWith("units/kush_hero_"));
const oHeroes = Engine.FindTemplates("units/", true).filter(templateName => templateName.startsWith("units/kush/hero_"));
const oUnits = Engine.FindTemplates("units/", false).filter(templateName =>
templateName.startsWith("units/kush_") &&
templateName.startsWith("units/kush/") &&
oHeroes.every(heroTemplateName => heroTemplateName != templateName) &&
Engine.GetTemplate(templateName).Identity.VisibleClasses._string.split(" ").some(type => ["Soldier", "Healer", "Female"].indexOf(type) != -1));
@@ -4,7 +4,7 @@
"Script" : "extinct_volcano.js",
"Description" : "[color=\"red\"]IMPORTANT NOTE: AI PLAYERS DO NOT WORK WITH THIS MAP[/color]\n\nA once fertile valley, desolated by the eruption of the long-dormant volcano in the heart of the region. Following years of empty, scorched deadness, signs of life started reappearing and spreading. Now the land is half-way to the full lushness of its former era. Alas, it is not to be: following a long stretch of drought, interminable rains have set in in the higher regions to the north. Water levels are rising at drastic levels, slowly forcing players to seek the high ground of the lesser, extinct volcanoes or the now again dormant great cone.",
"DisabledTemplates": [
"structures/ptol_lighthouse"
"structures/ptol/lighthouse"
],
"Keywords": ["trigger"],
"CircularMap" : true,
@@ -65,7 +65,7 @@ var waterWarningTexts = [
/**
* Units to be garrisoned in the wooden towers.
*/
var garrisonedUnits = "units/rome_champion_infantry_swordsman_02";
var garrisonedUnits = "units/rome/champion_infantry_swordsman_02";
Trigger.prototype.RaisingWaterNotification = function()
{
@@ -33,14 +33,14 @@ const oStoneSmall = "gaia/rock/desert_small";
const oMetalLarge = "gaia/ore/savanna_large";
const oMetalSmall = "gaia/ore/desert_small";
const oHouse = "structures/kush_house";
const oFarmstead = "structures/kush_farmstead";
const oField = "structures/kush_field";
const oPyramid = "structures/kush_pyramid_small";
const oPyramidLarge = "structures/kush_pyramid_large";
const oHouse = "structures/kush/house";
const oFarmstead = "structures/kush/farmstead";
const oField = "structures/kush/field";
const oPyramid = "structures/kush/pyramid_small";
const oPyramidLarge = "structures/kush/pyramid_large";
const oKushUnits = isNomad() ?
"units/kush_support_female_citizen" :
"units/kush_infantry_javelineer_merc_e";
"units/kush/support_female_citizen" :
"units/kush/infantry_javelineer_merc_e";
const aRain = g_Decoratives.rain;
const aBushA = g_Decoratives.bushA;
@@ -109,7 +109,7 @@ for (let i = 0; i < numPlayers; ++i)
// 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").Cost.PopulationBonus <= 5)
{
var wall = ["gate", "tower", "long",
"cornerIn", "long", "barracks", "tower", "long", "tower", "house", "long",
@@ -14,7 +14,7 @@
},
"shoreline": {
"gaia": {
"dock": "structures/athen_dock"
"dock": "structures/athen/dock"
},
"actors": {
"reeds": "props/flora/reeds_pond_lush_b",
@@ -166,8 +166,8 @@
"pony": "gaia/fauna_horse_pony"
},
"athen": {
"temple": "structures/athen_temple",
"oxybeles": "units/athen_siege_oxybeles_unpacked"
"temple": "structures/athen/temple",
"oxybeles": "units/athen/siege_oxybeles_unpacked"
}
},
"actors": {
@@ -62,37 +62,37 @@ const oLioness = "gaia/fauna_lioness";
const oCrocodile = "gaia/fauna_crocodile_nile";
const oFish = "gaia/fish/tilapia";
const oHawk = "birds/buzzard";
const oTempleApedemak = "structures/kush_temple";
const oTempleAmun = "structures/kush_temple_amun";
const oPyramidLarge = "structures/kush_pyramid_large";
const oPyramidSmall = "structures/kush_pyramid_small";
const oWonderPtol = "structures/ptol_wonder";
const oFortress = "structures/kush_fortress";
const oTower = g_MapSettings.Size >= 256 && getDifficulty() >= 3 ? "structures/kush_defense_tower" : "structures/kush_sentry_tower";
const oHouse = "structures/kush_house";
const oMarket = "structures/kush_market";
const oForge = "structures/kush_forge";
const oBlemmyeCamp = "structures/kush_camp_blemmye";
const oNobaCamp = "structures/kush_camp_noba";
const oCivicCenter = "structures/kush_civil_centre";
const oBarracks = "structures/kush_barracks";
const oStable = "structures/kush_stable";
const oElephantStables = "structures/kush_elephant_stables";
const oWallMedium = "structures/kush_wall_medium";
const oWallGate = "structures/kush_wall_gate";
const oWallTower = "structures/kush_wall_tower";
const oTempleApedemak = "structures/kush/temple";
const oTempleAmun = "structures/kush/temple_amun";
const oPyramidLarge = "structures/kush/pyramid_large";
const oPyramidSmall = "structures/kush/pyramid_small";
const oWonderPtol = "structures/ptol/wonder";
const oFortress = "structures/kush/fortress";
const oTower = g_MapSettings.Size >= 256 && getDifficulty() >= 3 ? "structures/kush/defense_tower" : "structures/kush/sentry_tower";
const oHouse = "structures/kush/house";
const oMarket = "structures/kush/market";
const oForge = "structures/kush/forge";
const oBlemmyeCamp = "structures/kush/camp_blemmye";
const oNobaCamp = "structures/kush/camp_noba";
const oCivicCenter = "structures/kush/civil_centre";
const oBarracks = "structures/kush/barracks";
const oStable = "structures/kush/stable";
const oElephantStables = "structures/kush/elephant_stables";
const oWallMedium = "structures/kush/wall_medium";
const oWallGate = "structures/kush/wall_gate";
const oWallTower = "structures/kush/wall_tower";
const oPalisadeMedium = "structures/palisades_medium";
const oPalisadeGate = "structures/palisades_gate";
const oPalisadeTower = "structures/palisades_tower";
const oKushCitizenArcher = "units/kush_infantry_archer_b";
const oKushHealer = "units/kush_support_healer_b";
const oKushChampionArcher = "units/kush_champion_infantry";
const oKushCitizenArcher = "units/kush/infantry_archer_b";
const oKushHealer = "units/kush/support_healer_b";
const oKushChampionArcher = "units/kush/champion_infantry";
const oKushChampions = [
oKushChampionArcher,
"units/kush_champion_infantry_amun",
"units/kush_champion_infantry_apedemak"
"units/kush/champion_infantry_amun",
"units/kush/champion_infantry_apedemak"
];
const oPtolSiege = ["units/ptol_siege_lithobolos_unpacked", "units/ptol_siege_polybolos_unpacked"];
const oPtolSiege = ["units/ptol/siege_lithobolos_unpacked", "units/ptol/siege_polybolos_unpacked"];
const oTriggerPointCityPath = "trigger/trigger_point_A";
const oTriggerPointAttackerPatrol = "trigger/trigger_point_B";
@@ -64,7 +64,7 @@ const oElephantInfant = "gaia/fauna_elephant_african_infant";
const oLion = "gaia/fauna_lion";
const oLioness = "gaia/fauna_lioness";
const oHawk = "birds/buzzard";
const oPyramid = "structures/kush_pyramid_large";
const oPyramid = "structures/kush/pyramid_large";
const aRock = actorTemplate("geology/stone_savanna_med");
const aBushes = [
@@ -51,7 +51,7 @@ g_Gaia.stoneSmall = "gaia/rock/alpine_small";
g_Gaia.columnsDoric = "gaia/ruins/column_doric";
g_Gaia.romanStatue = "gaia/ruins/stone_statues_roman";
g_Gaia.unfinishedTemple = "gaia/ruins/unfinished_greek_temple";
g_Gaia.dock = "structures/rome_dock";
g_Gaia.dock = "structures/rome/dock";
g_Gaia.dockRubble = "rubble/rubble_rome_dock";
g_Decoratives.smoke1 = "actor|particle/smoke_volcano.xml";
@@ -26,9 +26,9 @@ const oTiger = "gaia/fauna_tiger";
const oBoar = "gaia/fauna_boar";
const oPeacock = "gaia/fauna_peacock";
const oBush = "gaia/fruit/berry_01";
const oSpearman = "units/maur_infantry_spearman_b";
const oArcher = "units/maur_infantry_archer_b";
const oArcherElephant = "units/maur_elephant_archer_b";
const oSpearman = "units/maur/infantry_spearman_b";
const oArcher = "units/maur/infantry_archer_b";
const oArcherElephant = "units/maur/elephant_archer_b";
const aRockLarge = "actor|geology/stone_granite_large.xml";
const aRockMedium = "actor|geology/stone_granite_med.xml";
@@ -25,9 +25,10 @@ function loadWallsetsFromCivData()
{
// File naming conventions:
// - structures/wallset_{style}
// - structures/{civ}_wallset_{style}
let style = basename(path).split("_");
style = style[0] == "wallset" ? style[1] : style[0] + "_" + style[2];
// - structures/{civ}/wallset_{style}
let style = basename(path).split("_")[1];
if (path.split("/").indexOf(civ) != -1)
style = civ + "/" + style;
if (!wallsets[style])
wallsets[style] = loadWallset(Engine.GetTemplate(path), civ);
@@ -132,7 +133,7 @@ function createDefaultFortressTypes()
* `gap_{x}` returns a non-blocking gap of length `x` meters.
* `turn_{x}` returns a zero-length turn of angle `x` radians.
*
* Any other arbitrary string passed will be attempted to be used as: `structures/{civ}_{arbitrary_string}`.
* Any other arbitrary string passed will be attempted to be used as: `structures/{civ}/{arbitrary_string}`.
*
* @param {string} element - What sort of element to fetch.
* @param {string} [style] - The style from which this element should come from.
@@ -148,7 +149,7 @@ function getWallElement(element, style)
// Defaults to a wall tower piece
const quarterBend = Math.PI / 2;
let wallset = g_WallStyles[style];
let civ = style.split("_")[0];
let civ = style.split("/")[1];
let ret = wallset.tower ? clone(wallset.tower) : { "angle": 0, "bend": 0, "length": 0, "indent": 0 };
switch (element)
@@ -193,7 +194,7 @@ function getWallElement(element, style)
break;
case "entryTower":
ret.templateName = g_CivData[civ] ? "structures/" + civ + "_defense_tower" : "structures/palisades_watchtower";
ret.templateName = g_CivData[civ] ? "structures/" + civ + "/defense_tower" : "structures/palisades_watchtower";
ret.indent = ret.length * -3;
ret.length = wallset.gate.length;
break;
@@ -236,7 +237,7 @@ function getWallElement(element, style)
if (!g_CivData[civ])
civ = Object.keys(g_CivData)[0];
let templateName = "structures/" + civ + "_" + element;
let templateName = "structures/" + civ + "/" + element;
if (Engine.TemplateExists(templateName))
{
ret.indent = ret.length * (element == "outpost" || element.endsWith("_tower") ? -3 : 3.5);
@@ -385,7 +386,7 @@ function validateStyle(style, playerId = 0)
if (playerId == 0)
return Object.keys(g_WallStyles)[0];
style = getCivCode(playerId) + "_stone";
style = getCivCode(playerId) + "/stone";
return !g_WallStyles[style] ? Object.keys(g_WallStyles)[0] : style;
}
return style;
@@ -58,27 +58,27 @@ var heroTime = () => randFloat(20, 60);
*/
var disabledTemplates = (civ) => [
// Economic structures
"structures/" + civ + "_corral",
"structures/" + civ + "_farmstead",
"structures/" + civ + "_field",
"structures/" + civ + "_storehouse",
"structures/" + civ + "_rotarymill",
"units/maur_support_elephant",
"structures/" + civ + "/corral",
"structures/" + civ + "/farmstead",
"structures/" + civ + "/field",
"structures/" + civ + "/storehouse",
"structures/" + civ + "/rotarymill",
"units/maur/support_elephant",
// Expansions
"structures/" + civ + "_civil_centre",
"structures/" + civ + "_military_colony",
"structures/" + civ + "/civil_centre",
"structures/" + civ + "/military_colony",
// Walls
"structures/" + civ + "_wallset_stone",
"structures/rome_wallset_siege",
"structures/" + civ + "/wallset_stone",
"structures/rome/wallset_siege",
"structures/wallset_palisade",
// Shoreline
"structures/" + civ + "_dock",
"structures/brit_crannog",
"structures/cart_super_dock",
"structures/ptol_lighthouse"
"structures/" + civ + "/dock",
"structures/brit/crannog",
"structures/cart/super_dock",
"structures/ptol/lighthouse"
];
/**
@@ -144,59 +144,59 @@ let wildLakeBiome = [
var mercenaryCampGuards = {
"generic/temperate": [
{ "Template" : "structures/merc_camp_egyptian" },
{ "Template" : "units/mace_infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
{ "Template" : "units/mace/infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/mace/cavalry_spearman_e", "Count" : 3 },
{ "Template" : "units/mace/infantry_archer_a", "Count" : 4 },
{ "Template" : "units/mace/champion_infantry_a", "Count" : 3 }
],
"generic/snowy": [
{ "Template" : "structures/ptol_mercenary_camp" },
{ "Template" : "units/brit_infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
{ "Template" : "structures/ptol/mercenary_camp" },
{ "Template" : "units/brit/infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/brit/cavalry_swordsman_e", "Count" : 3 },
{ "Template" : "units/brit/infantry_slinger_a", "Count" : 4 },
{ "Template" : "units/brit/champion_infantry", "Count" : 3 }
],
"generic/desert": [
{ "Template" : "structures/ptol_mercenary_camp" },
{ "Template" : "units/pers_infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
{ "Template" : "structures/ptol/mercenary_camp" },
{ "Template" : "units/pers/infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/pers/cavalry_axeman_e", "Count" : 3 },
{ "Template" : "units/pers/infantry_archer_a", "Count" : 4 },
{ "Template" : "units/pers/champion_infantry", "Count" : 3 }
],
"generic/alpine": [
{ "Template" : "structures/ptol_mercenary_camp" },
{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
{ "Template" : "units/rome_infantry_javelineer_a", "Count" : 4 },
{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
{ "Template" : "structures/ptol/mercenary_camp" },
{ "Template" : "units/rome/infantry_swordsman_b", "Count" : 4 },
{ "Template" : "units/rome/cavalry_spearman_e", "Count" : 3 },
{ "Template" : "units/rome/infantry_javelineer_a", "Count" : 4 },
{ "Template" : "units/rome/champion_infantry", "Count" : 3 }
],
"generic/mediterranean": [
{ "Template" : "structures/merc_camp_egyptian" },
{ "Template" : "units/iber_infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
{ "Template" : "units/iber/infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/iber/cavalry_spearman_e", "Count" : 3 },
{ "Template" : "units/iber/infantry_slinger_a", "Count" : 4 },
{ "Template" : "units/iber/champion_infantry", "Count" : 3 }
],
"generic/savanna": [
{ "Template" : "structures/merc_camp_egyptian" },
{ "Template" : "units/sele_infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
{ "Template" : "units/sele/infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/sele/cavalry_spearman_merc_e", "Count" : 3 },
{ "Template" : "units/sele/infantry_spearman_a", "Count" : 4 },
{ "Template" : "units/sele/champion_infantry_swordsman", "Count" : 3 }
],
"generic/tropic": [
{ "Template" : "structures/merc_camp_egyptian" },
{ "Template" : "units/ptol_infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/ptol_cavalry_archer_e", "Count" : 3 },
{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
{ "Template" : "units/ptol/infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/ptol/cavalry_archer_e", "Count" : 3 },
{ "Template" : "units/ptol/infantry_slinger_a", "Count" : 4 },
{ "Template" : "units/ptol/champion_infantry_pikeman", "Count" : 3 }
],
"generic/autumn": [
{ "Template" : "structures/ptol_mercenary_camp" },
{ "Template" : "units/gaul_infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
{ "Template" : "units/gaul_champion_infantry", "Count" : 3 }
{ "Template" : "structures/ptol/mercenary_camp" },
{ "Template" : "units/gaul/infantry_javelineer_b", "Count" : 4 },
{ "Template" : "units/gaul/cavalry_swordsman_e", "Count" : 3 },
{ "Template" : "units/gaul/infantry_slinger_a", "Count" : 4 },
{ "Template" : "units/gaul/champion_infantry", "Count" : 3 }
]
};
@@ -241,7 +241,7 @@ function placeGrove(point,
)
{
let position = new Vector2D(point.x, point.y);
g_Map.placeEntityPassable(pickRandom(["structures/gaul_outpost", "gaia/tree/oak_new"]), 0, position, randomAngle());
g_Map.placeEntityPassable(pickRandom(["structures/gaul/outpost", "gaia/tree/oak_new"]), 0, position, randomAngle());
let quantity = randIntInclusive(20, 30);
let dAngle = 2 * Math.PI / quantity;
@@ -267,14 +267,14 @@ function placeGrove(point,
}
var farmEntities = {
"generic/temperate": { "building": "structures/mace_farmstead", "animal": "gaia/fauna_pig" },
"generic/snowy": { "building": "structures/brit_farmstead", "animal": "gaia/fauna_sheep" },
"generic/desert": { "building": "structures/pers_farmstead", "animal": "gaia/fauna_camel" },
"generic/alpine": { "building": "structures/rome_farmstead", "animal": "gaia/fauna_sheep" },
"generic/mediterranean": { "building": "structures/iber_farmstead", "animal": "gaia/fauna_pig" },
"generic/savanna": { "building": "structures/sele_farmstead", "animal": "gaia/fauna_horse" },
"generic/tropic": { "building": "structures/ptol_farmstead", "animal": "gaia/fauna_camel" },
"generic/autumn": { "building": "structures/gaul_farmstead", "animal": "gaia/fauna_horse" }
"generic/temperate": { "building": "structures/mace/farmstead", "animal": "gaia/fauna_pig" },
"generic/snowy": { "building": "structures/brit/farmstead", "animal": "gaia/fauna_sheep" },
"generic/desert": { "building": "structures/pers/farmstead", "animal": "gaia/fauna_camel" },
"generic/alpine": { "building": "structures/rome/farmstead", "animal": "gaia/fauna_sheep" },
"generic/mediterranean": { "building": "structures/iber/farmstead", "animal": "gaia/fauna_pig" },
"generic/savanna": { "building": "structures/sele/farmstead", "animal": "gaia/fauna_horse" },
"generic/tropic": { "building": "structures/ptol/farmstead", "animal": "gaia/fauna_camel" },
"generic/autumn": { "building": "structures/gaul/farmstead", "animal": "gaia/fauna_horse" }
};
g_WallStyles.other = {
@@ -327,7 +327,7 @@ for (let i = 0; i < num; ++i)
function placeCamp(position,
centerEntity = "actor|props/special/eyecandy/campfire.xml",
otherEntities = ["gaia/treasure/metal", "gaia/treasure/standing_stone",
"units/brit_infantry_slinger_b", "units/brit_infantry_javelineer_b", "units/gaul_infantry_slinger_b", "units/gaul_infantry_javelineer_b", "units/gaul_champion_fanatic",
"units/brit/infantry_slinger_b", "units/brit/infantry_javelineer_b", "units/gaul/infantry_slinger_b", "units/gaul/infantry_javelineer_b", "units/gaul/champion_fanatic",
"actor|props/special/common/waypoint_flag.xml", "actor|props/special/eyecandy/barrel_a.xml", "actor|props/special/eyecandy/basket_celt_a.xml", "actor|props/special/eyecandy/crate_a.xml", "actor|props/special/eyecandy/dummy_a.xml", "actor|props/special/eyecandy/handcart_1.xml", "actor|props/special/eyecandy/handcart_1_broken.xml", "actor|props/special/eyecandy/sack_1.xml", "actor|props/special/eyecandy/sack_1_rough.xml"
]
)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
const UNIT_TEMPLATE = "units/athen_infantry_marine_archer_b";
const SHIP_TEMPLATE = "units/athen_ship_trireme";
const RAM_TEMPLATE = "units/brit_siege_ram";
const UNIT_TEMPLATE = "units/athen/infantry_marine_archer_b";
const SHIP_TEMPLATE = "units/athen/ship_trireme";
const RAM_TEMPLATE = "units/brit/siege_ram";
const point_plaza_nw = 14; // Center plaza #1 (NW)
const point_plaza_ne = 15; // Center plaza #2 (NE)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
const UNIT_TEMPLATE = "units/athen_infantry_marine_archer_b";
const FAST_UNIT_TEMPLATE = "units/athen_cavalry_swordsman_a";
const LARGE_UNIT_TEMPLATE = "units/brit_siege_ram";
const SMALL_STRUCTURE_TEMPLATE = "structures/athen_house";
const UNIT_TEMPLATE = "units/athen/infantry_marine_archer_b";
const FAST_UNIT_TEMPLATE = "units/athen/cavalry_swordsman_a";
const LARGE_UNIT_TEMPLATE = "units/brit/siege_ram";
const SMALL_STRUCTURE_TEMPLATE = "structures/athen/house";
var QuickSpawn = function(x, z, template, owner = 1)
{
@@ -282,7 +282,7 @@ experiments.formation_attack = {
experiments.multiple_resources = {
"spawn": () => {
QuickSpawn(gx, gy + 80, "structures/athen_civil_centre");
QuickSpawn(gx, gy + 80, "structures/athen/civil_centre");
let chicken = QuickSpawn(gx, gy + 50, "gaia/fauna_chicken");
QuickSpawn(gx + 3, gy + 50, "gaia/fauna_chicken");
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
Trigger.prototype.SpawnAndAttack = function()
{
var intruders = TriggerHelper.SpawnUnitsFromTriggerPoints(
pickRandom(["B", "C"]), "units/rome_champion_infantry_swordsman_02", this.attackSize, 0);
pickRandom(["B", "C"]), "units/rome/champion_infantry_swordsman_02", this.attackSize, 0);
for (var origin in intruders)
{
Binary file not shown.
@@ -29,7 +29,7 @@ Trigger.prototype.tutorialGoals = [
],
"OnTrainingQueued": function(msg)
{
if (msg.unitTemplate != "units/spart_infantry_spearman_b" || +msg.count == 1)
if (msg.unitTemplate != "units/spart/infantry_spearman_b" || +msg.count == 1)
{
let cmpProductionQueue = Engine.QueryInterface(msg.trainerEntity, IID_ProductionQueue);
cmpProductionQueue.ResetQueue();
@@ -71,7 +71,7 @@ Trigger.prototype.tutorialGoals = [
},
"OnTrainingQueued": function(msg)
{
if (msg.unitTemplate != "units/spart_infantry_javelineer_b" || +msg.count == 1)
if (msg.unitTemplate != "units/spart/infantry_javelineer_b" || +msg.count == 1)
{
let cmpProductionQueue = Engine.QueryInterface(msg.trainerEntity, IID_ProductionQueue);
cmpProductionQueue.ResetQueue();
@@ -153,7 +153,7 @@ Trigger.prototype.tutorialGoals = [
},
"OnTrainingQueued": function(msg)
{
if (msg.unitTemplate != "units/spart_infantry_spearman_b" || +msg.count == 1)
if (msg.unitTemplate != "units/spart/infantry_spearman_b" || +msg.count == 1)
{
let cmpProductionQueue = Engine.QueryInterface(msg.trainerEntity, IID_ProductionQueue);
cmpProductionQueue.ResetQueue();
@@ -229,7 +229,7 @@ Trigger.prototype.tutorialGoals = [
},
"OnTrainingQueued": function(msg)
{
if (msg.unitTemplate != "units/spart_support_female_citizen" || +msg.count == 1)
if (msg.unitTemplate != "units/spart/support_female_citizen" || +msg.count == 1)
{
let cmpProductionQueue = Engine.QueryInterface(msg.trainerEntity, IID_ProductionQueue);
cmpProductionQueue.ResetQueue();
@@ -345,7 +345,7 @@ Trigger.prototype.tutorialGoals = [
},
"OnTrainingQueued": function(msg)
{
if (msg.unitTemplate == "units/spart_siege_ram")
if (msg.unitTemplate == "units/spart/siege_ram")
++this.ramCount;
if (this.IsDone())
{

Some files were not shown because too many files have changed in this diff Show More