Changeset 25037

Timestamp:
Mar 12, 2021, 7:52:26 AM (3 years ago)
Author:
Freagarach
Message:

Improve consistency in tutorial and random map texts.

  • Combines multi-spaces into one.
  • \u000a -> \n.
  • Proper quotation marks instead of programmers quotes.
  • A few typos.
  • Capitalise classes.

Scenarios and skirmishes are excluded due to checkrefs.pl not being able to handle proper quotes in XML.

Patch by: @Nescio
Differential revision: D3493
Comments by: @Stan

Location:
ps/trunk/binaries/data/mods/public/maps
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • ps/trunk/binaries/data/mods/public/maps/random/ardennes_forest.json

    r23994 r25037  
    33        "Name" : "Ardennes Forest",
    44        "Script" : "ardennes_forest.js",
    5         "Description" : "Each player starts deep in the forest.\n\nThe Ardennes is a region of extensive forests, rolling hills and ridges formed within the Givetian  Ardennes mountain range, primarily in modern day Belgium and Luxembourg. The region took its name from the ancient Silva, a vast forest in Roman times called Arduenna Silva.",
     5        "Description" : "Each player starts deep in the forest.\n\nThe Ardennes is a region of extensive forests, rolling hills and ridges formed within the Givetian Ardennes mountain range, primarily in modern day Belgium and Luxembourg. The region took its name from the ancient Silva, a vast forest in Roman times called Arduenna Silva.",
    66        "CircularMap" : true,
    77        "Preview" : "ardennes_forest.png"
  • ps/trunk/binaries/data/mods/public/maps/random/caledonian_meadows.js

    r24216 r25037  
    4242    "fence": readyWallElement("structures/fence_long", "gaia"),
    4343    "fence_short": readyWallElement("structures/fence_short", "gaia"),
    44     "bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "structures/bench" },
    45     "sheep":     { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": "gaia/fauna_sheep" },
    46     "foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
    47     "farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,  "bend": 0, "templateName": "structures/brit/farmstead" }
     44    "bench": "bend": 0, "templateName": "structures/bench" },
     45    "sheep": "indent": 0.75, "bend": 0, "templateName": "gaia/fauna_sheep" },
     46    "foodBin": "bend": 0, "templateName": "gaia/treasure/food_bin" },
     47    "farmstead": { "angle": Math.PI, "bend": 0, "templateName": "structures/brit/farmstead" }
    4848};
    4949
     
    8484    fences.push(new Fortress("fence", clone(fences[i].wall).reverse()));
    8585
    86 // Groves, only Wood
     86// Groves, only ood
    8787let groveEntities = ["gaia/tree/bush_temperate", "gaia/tree/euro_beech"];
    8888let groveActors = [
     
    191191setBiome("generic/alpine");
    192192g_Environment.Fog.FogColor = { "r": 0.8, "g": 0.8, "b": 0.8, "a": 0.01 };
    193 g_Environment.Water.WaterBody.Colour = { "r" : 0.3, "g" : 0.05, "b" : 0.1, "a" : 0.1 };
     193g_Environment.Water.WaterBody.Colour = { "r": 0.1 };
    194194g_Environment.Water.WaterBody.Murkiness = 0.4;
    195195
  • ps/trunk/binaries/data/mods/public/maps/random/cantabrian_highlands.json

    r23994 r25037  
    33        "Name" : "Cantabrian Highlands",
    44        "Script" : "cantabrian_highlands.js",
    5         "Description" : "Each player starts on a hill surrounded by steep cliffs. Represents Cantabria, a mountainous region in the North of the Iberian peninsula.",
     5        "Description" : "Each player starts on a hill surrounded by steep cliffs. Represents Cantabria, a mountainous region in the orth of the Iberian peninsula.",
    66        "Preview" : "cantabrian_highlands.png",
    77        "CircularMap" : true
  • ps/trunk/binaries/data/mods/public/maps/random/deep_forest.js

    r24070 r25037  
    99var terrainPrimary = ["temp_grass", "temp_grass_b", "temp_grass_c", "temp_grass_d", "temp_grass_long_b", "temp_grass_clovers_2", "temp_grass_mossy", "temp_grass_plants"];
    1010var terrainWood = ['temp_grass_mossy|gaia/tree/oak', 'temp_forestfloor_pine|gaia/tree/pine', 'temp_mud_plants|gaia/tree/dead',
    11     'temp_plants_bog|gaia/tree/oak_large', "temp_dirt_gravel_plants|gaia/tree/aleppo_pine", 'temp_forestfloor_autumn|gaia/tree/carob']; //'temp_forestfloor_autumn|gaia/fruit/fig'
     11    'temp_plants_bog|gaia/tree/oak_large', "temp_dirt_gravel_plants|gaia/tree/aleppo_pine", 'temp_forestfloor_autumn|gaia/tree/carob'];
    1212var terrainWoodBorder = ['temp_grass_plants|gaia/tree/euro_beech', 'temp_grass_mossy|gaia/tree/poplar', 'temp_grass_mossy|gaia/tree/poplar_lombardy',
    1313    'temp_grass_long|gaia/tree/bush_temperate', 'temp_mud_plants|gaia/tree/bush_temperate', 'temp_mud_plants|gaia/tree/bush_badlands',
     
    5555var resourcePerPlayer = [templateStone, templateMetalMine];
    5656
    57 // For large maps there are memory errors with too many trees.  A density of 256*192/mapArea works with 0 players.
     57// For large maps there are memory errors with too many trees. 192/mapArea works with 0 players.
    5858// Around each player there is an area without trees so with more players the max density can increase a bit.
    5959var maxTreeDensity = Math.min(256 * (192 + 8 * numPlayers) / Math.square(mapSize), 1); // Has to be tweeked but works ok
     
    161161    ]);
    162162
    163 // Woods and general hight map
     163// Woods and general hight map
    164164for (var x = 0; x < mapSize; x++)
    165165    for (var z = 0; z < mapSize; z++)
  • ps/trunk/binaries/data/mods/public/maps/random/dodecanese.json

    r23994 r25037  
    33        "Name" : "Dodecanese",
    44        "Script" : "dodecanese.js",
    5         "Description" : "Controlling access to the Aegean Sea from the East, the Dodecanese have been subject to numerous yet short-lived invasions. Ultimately consolidating power with Rhodes at their lead, these islands developed into great maritime, commercial and cultural centers. Will you acheive the same?",
     5        "Description" : "Controlling access to the Aegean Sea from the ve the same?",
    66        "Keywords": ["naval"],
    77        "Preview" : "dodecanese.png",
  • ps/trunk/binaries/data/mods/public/maps/random/fields_of_meroe.json

    r23994 r25037  
    33        "Name" : "Fields of Meroë",
    44        "Script" : "fields_of_meroe.js",
    5         "Description" : "The \"Island of Meroë\", a vast peninsula flanked by the Nile and Atbarah rivers, formed the heartland of ancient Kush. Where the harsh deserts start making way for the semi-arid savannahs and small acacia forests dot the landscape. The area is rich in resources and the ever-present Nile brings life, but grave threats loom on the opposite riverbank.",
     5        "Description" : "The , a vast peninsula flanked by the Nile and Atbarah rivers, formed the heartland of ancient Kush. Where the harsh deserts start making way for the semi-arid savannahs and small acacia forests dot the landscape. The area is rich in resources and the ever-present Nile brings life, but grave threats loom on the opposite riverbank.",
    66        "Preview" : "fields_of_meroe_dry.png",
    77        "Keywords": [],
  • ps/trunk/binaries/data/mods/public/maps/random/heightmap/heightmap.js

    r23992 r25037  
    257257            if (heightmap[x][y] > heightRange.min && heightmap[x][y] < heightRange.max && // Has correct height
    258258                (!isCircular || r - Math.euclidDistance2D(x, y, r, r) >= minDistance)) // Enough distance to the map border
    259                 validVertices.push({ "x": x, "y": y , "dist": minDistance});
     259                validVertices.push({ "x": x, "y": y});
    260260        }
    261261
     
    317317 * Returns an inclination map corresponding to the tiles between the heightmaps vertices:
    318318 * array of heightmap width-1 arrays of height-1 vectors (associative arrays) of the form:
    319  * { "x": x_slope, "y": y_slope ] so a 2D Vector pointing to the hightest incline (with the length the incline in the vectors direction)
    320  * The x and y coordinates of a tile in the terrain texture map correspond to those of the inclination map
    321  * @param {array} [heightmap=g_Map.height] - The reliefmap the inclination map is to be generated from
     319 * { "x": x_slope, "y": y_slope
     320 * The x and y coordinates of a tile in the terrain texture map correspond to those of the inclination map
     321 * @param {array} [heightmap=g_Map.height] - The reliefmap the inclination map is to be generated from
    322322 */
    323323function getInclineMap(heightmap)
     
    336336            let next_dx = heightmap[x + 1][y + 1] - heightmap[x][y + 1];
    337337            let next_dy = heightmap[x + 1][y + 1] - heightmap[x + 1][y];
    338             inclineMap[x][y] = { "x" : 0.5 * (dx + next_dx), "y" : 0.5 * (dy + next_dy) };
     338            inclineMap[x][y] = { "x": 0.5 * (dy + next_dy) };
    339339        }
    340340    }
     
    359359        {
    360360            vectorField[x].push({
    361                 "x" : scalarField[(x + 1) % max_x][y] - scalarField[x][y],
    362                 "y" : scalarField[x][(y + 1) % max_y] - scalarField[x][y]
     361                "x": scalarField[(x + 1) % max_x][y] - scalarField[x][y],
     362                "y": scalarField[x][(y + 1) % max_y] - scalarField[x][y]
    363363            });
    364364        }
     
    384384            let prev_y = (y + max_y - 1) % max_y;
    385385
    386             let slopes = [- dHeight[x][y].x, - dHeight[x][y].y, dHeight[prev_x][y].x, dHeight[x][prev_y].y];
     386            let slopes = [-dHeight[x][y].y, dHeight[prev_x][y].x, dHeight[x][prev_y].y];
    387387
    388388            let sumSlopes = 0;
  • ps/trunk/binaries/data/mods/public/maps/random/jebel_barkal.json

    r23994 r25037  
    33        "Name" : "Jebel Barkal",
    44        "Script" : "jebel_barkal.js",
    5         "Description" : "Starting near the fertile banks of the Nile, the players besiege the heavily defended city Napata which lies at the foot of the hill Jebel Barkal, the \"Pure Mountain\". It is the Southern home of Amun, and according to Kushites and Egyptians alike, the birthplace of man. Known as the Throne of the Two Lands, the ancient religious capital of Napata lay in its shadow. This is where Kings were made... and unmade! Abutting a rich floodplain downstream from the 4th cataract, this area became the breadbasket of ancient Kush.",
     5        "Description" : "Starting near the fertile banks of the Nile, the players besiege the heavily defended city Napataataract, this area became the breadbasket of ancient Kush.",
    66        "Preview" : "jebel_barkal.png",
    77        "Keywords": ["trigger"],
  • ps/trunk/binaries/data/mods/public/maps/random/rmbiome/generic/snowy.json

    r24070 r25037  
    22    "Description": {
    33        "Title": "Snowy",
    4         "Description": "Settle in the cold regions of the North, the native habitat of the wooly muskox. Here you can pine away to your content and also hunt the occasional walrus or two."
     4        "Description": "Settle in the cold regions of the muskox. Here you can pine away to your content and also hunt the occasional walrus or two."
    55    },
    66    "Environment": {
  • ps/trunk/binaries/data/mods/public/maps/random/schwarzwald.js

    r24070 r25037  
    9696var resourceRadius = fractionToTiles(1/3);
    9797
    98 // Setup woods
    99 // For large maps there are memory errors with too many trees.  A density of 256*192/mapArea works with 0 players.
     98// Set
     99// For large maps there are memory errors with too many trees. 192/mapArea works with 0 players.
    100100// Around each player there is an area without trees so with more players the max density can increase a bit.
    101 var maxTreeDensity = Math.min(256 * (192 + 8 * numPlayers) / Math.square(mapSize), 1); // Has to be tweeked but works ok
    102 var bushChance = 1/3; // 1 means 50% chance in deepest wood, 0.5 means 25% chance in deepest wood
    103 
    104 // Set height limits and water level by map size
    105 
    106 // Set target min and max height depending on map size to make average steepness about the same on all map sizes
    107 var heightRange = {'min': MIN_HEIGHT * (g_Map.size + 512) / 8192, 'max': MAX_HEIGHT * (g_Map.size + 512) / 8192, 'avg': (MIN_HEIGHT * (g_Map.size + 512) +MAX_HEIGHT * (g_Map.size + 512))/16384};
    108 
    109 // Set average water coverage
    110 var averageWaterCoverage = 1/5; // NOTE: Since erosion is not predictable actual water coverage might vary much with the same values
     101var maxTreeDensity = Math.min(256 * (192 + 8 * numPlayers) / Math.square(mapSize), 1); // Has to be tweeked but works ok
     102var bushChance = 1/3; // 1 means 50% chance in deepest wood, 0.5 means 25% chance in deepest wood
     103
     104// Set height limits and water level by map size
     105
     106// Set target min and max height depending on map size to make average steepness about the same on all map sizes
     107var heightRange = {};
     108
     109// Set average water coverage
     110var averageWaterCoverage = 1/5; // NOTE: Since erosion is not predictable actual water coverage might vary much with the same values
    111111var heightSeaGround = -MIN_HEIGHT + heightRange.min + averageWaterCoverage * (heightRange.max - heightRange.min);
    112112var heightSeaGroundAdjusted = heightSeaGround + MIN_HEIGHT;
    113113setWaterHeight(heightSeaGround);
    114114
    115 // Setting a 3x3 Grid as initial heightmap
     115// Setting a 3x3
    116116var initialReliefmap = [[heightRange.max, heightRange.max, heightRange.max], [heightRange.max, heightRange.min, heightRange.max], [heightRange.max, heightRange.max, heightRange.max]];
    117117
     
    213213    new LayeredPainter([tWaterBorder, tWater], [2]));
    214214
    215 paintTileClassBasedOnHeight(heightRange.min,  heighLimits[2], 1, clWater);
     215paintTileClassBasedOnHeight(heightRange.min, heighLimits[2], 1, clWater);
    216216Engine.SetProgress(60);
    217217
     
    231231                new TileClassPainter(clPath)
    232232            ],
    233             avoidClasses(clPath, 0, clOpen, 0 ,clWater, 4, clBaseResource, 4));
     233            avoidClasses(clPath, 0, clOpen, 0clWater, 4, clBaseResource, 4));
    234234    }
    235235Engine.SetProgress(75);
  • ps/trunk/binaries/data/mods/public/maps/random/wild_lake.js

    r24657 r25037  
    144144var mercenaryCampGuards = {
    145145    "generic/temperate": [
    146         { "Template" : "structures/merc_camp_egyptian" },
    147         { "Template" : "units/mace/infantry_javelineer_b", "Count" : 4 },
    148         { "Template" : "units/mace/cavalry_spearman_e", "Count" : 3 },
    149         { "Template" : "units/mace/infantry_archer_a", "Count" : 4 },
    150         { "Template" : "units/mace/champion_infantry_spearman", "Count" : 3 }
     146        { "Template": "structures/merc_camp_egyptian" },
     147        { "Template": 4 },
     148        { "Template": 3 },
     149        { "Template": 4 },
     150        { "Template": 3 }
    151151    ],
    152152    "generic/snowy": [
    153         { "Template" : "structures/ptol/mercenary_camp" },
    154         { "Template" : "units/brit/infantry_javelineer_b", "Count" : 4 },
    155         { "Template" : "units/brit/cavalry_swordsman_e", "Count" : 3 },
    156         { "Template" : "units/brit/infantry_slinger_a", "Count" : 4 },
    157         { "Template" : "units/brit/champion_infantry", "Count" : 3 }
     153        { "Template": "structures/ptol/mercenary_camp" },
     154        { "Template": 4 },
     155        { "Template": 3 },
     156        { "Template": 4 },
     157        { "Template": 3 }
    158158    ],
    159159    "generic/desert": [
    160         { "Template" : "structures/ptol/mercenary_camp" },
    161         { "Template" : "units/pers/infantry_javelineer_b", "Count" : 4 },
    162         { "Template" : "units/pers/cavalry_axeman_e", "Count" : 3 },
    163         { "Template" : "units/pers/infantry_archer_a", "Count" : 4 },
    164         { "Template" : "units/pers/champion_infantry", "Count" : 3 }
     160        { "Template": "structures/ptol/mercenary_camp" },
     161        { "Template": 4 },
     162        { "Template": 3 },
     163        { "Template": 4 },
     164        { "Template": 3 }
    165165    ],
    166166    "generic/alpine": [
    167         { "Template" : "structures/ptol/mercenary_camp" },
    168         { "Template" : "units/rome/infantry_swordsman_b", "Count" : 4 },
    169         { "Template" : "units/rome/cavalry_spearman_e", "Count" : 3 },
    170         { "Template" : "units/rome/infantry_javelineer_a", "Count" : 4 },
    171         { "Template" : "units/rome/champion_infantry", "Count" : 3 }
     167        { "Template": "structures/ptol/mercenary_camp" },
     168        { "Template": 4 },
     169        { "Template": 3 },
     170        { "Template": 4 },
     171        { "Template": 3 }
    172172    ],
    173173    "generic/mediterranean": [
    174         { "Template" : "structures/merc_camp_egyptian" },
    175         { "Template" : "units/iber/infantry_javelineer_b", "Count" : 4 },
    176         { "Template" : "units/iber/cavalry_spearman_e", "Count" : 3 },
    177         { "Template" : "units/iber/infantry_slinger_a", "Count" : 4 },
    178         { "Template" : "units/iber/champion_infantry", "Count" : 3 }
     174        { "Template": "structures/merc_camp_egyptian" },
     175        { "Template": 4 },
     176        { "Template": 3 },
     177        { "Template": 4 },
     178        { "Template": 3 }
    179179    ],
    180180    "generic/savanna": [
    181         { "Template" : "structures/merc_camp_egyptian" },
    182         { "Template" : "units/sele/infantry_javelineer_b", "Count" : 4 },
    183         { "Template" : "units/sele/cavalry_spearman_merc_e", "Count" : 3 },
    184         { "Template" : "units/sele/infantry_spearman_a", "Count" : 4 },
    185         { "Template" : "units/sele/champion_infantry_swordsman", "Count" : 3 }
     181        { "Template": "structures/merc_camp_egyptian" },
     182        { "Template": 4 },
     183        { "Template": 3 },
     184        { "Template": 4 },
     185        { "Template": 3 }
    186186    ],
    187187    "generic/tropic": [
    188         { "Template" : "structures/merc_camp_egyptian" },
    189         { "Template" : "units/ptol/infantry_javelineer_b", "Count" : 4 },
    190         { "Template" : "units/ptol/cavalry_archer_e", "Count" : 3 },
    191         { "Template" : "units/ptol/infantry_slinger_a", "Count" : 4 },
    192         { "Template" : "units/ptol/champion_infantry_pikeman", "Count" : 3 }
     188        { "Template": "structures/merc_camp_egyptian" },
     189        { "Template": 4 },
     190        { "Template": 3 },
     191        { "Template": 4 },
     192        { "Template": 3 }
    193193    ],
    194194    "generic/autumn": [
    195         { "Template" : "structures/ptol/mercenary_camp" },
    196         { "Template" : "units/gaul/infantry_javelineer_b", "Count" : 4 },
    197         { "Template" : "units/gaul/cavalry_swordsman_e", "Count" : 3 },
    198         { "Template" : "units/gaul/infantry_slinger_a", "Count" : 4 },
    199         { "Template" : "units/gaul/champion_infantry", "Count" : 3 }
     195        { "Template": "structures/ptol/mercenary_camp" },
     196        { "Template": 4 },
     197        { "Template": 3 },
     198        { "Template": 4 },
     199        { "Template": 3 }
    200200    ]
    201201};
     
    225225}
    226226
    227 // Groves, only Wood
     227// Groves, only ood
    228228let groveActors = [g_Decoratives.grass, g_Decoratives.rockMedium, g_Decoratives.bushMedium];
    229229let clGrove = g_Map.createTileClass();
     
    282282    "fence": readyWallElement("structures/fence_long", "gaia"),
    283283    "fence_short": readyWallElement("structures/fence_short", "gaia"),
    284     "bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "structures/bench" },
    285     "foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
    286     "animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
    287     "farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,  "bend": 0, "templateName": farmEntities[currentBiome()].building }
     284    "bench": "bend": 0, "templateName": "structures/bench" },
     285    "foodBin": "bend": 0, "templateName": "gaia/treasure/food_bin" },
     286    "animal": "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
     287    "farmstead": { "angle": Math.PI, "bend": 0, "templateName": farmEntities[currentBiome()].building }
    288288};
    289289
     
    419419 * Base terrain shape generation and settings
    420420 */
    421  // Height range by map size
     421
     422// Height range by map size
    422423let heightScale = (g_Map.size + 512) / 1024 / 5;
    423424let heightRange = { "min": MIN_HEIGHT * heightScale, "max": MAX_HEIGHT * heightScale };
    424425
    425426// Water coverage
    426 let averageWaterCoverage = 1/5; // NOTE: Since terrain generation is quite unpredictable actual water coverage might vary much with the same value
     427let averageWaterCoverage = 15; // NOTE: Since terrain generation is quite unpredictable actual water coverage might vary much with the same value
    427428let heightSeaGround = -MIN_HEIGHT + heightRange.min + averageWaterCoverage * (heightRange.max - heightRange.min); // Water height in environment and the engine
    428429let heightSeaGroundAdjusted = heightSeaGround + MIN_HEIGHT; // Water height as terrain height
     
    495496    heightRange.max // 7 Forest
    496497];
    497 let playerHeightRange = { "min" : heighLimits[3], "max" : heighLimits[4] };
    498 let resourceSpotHeightRange = { "min" : (heighLimits[2] + heighLimits[3]) / 2, "max" : (heighLimits[4] + heighLimits[5]) / 2 };
     498let playerHeightRange = { "min": heighLimits[4] };
     499let resourceSpotHeightRange = { "min": (heighLimits[4] + heighLimits[5]) / 2 };
    499500let playerHeight = (playerHeightRange.min + playerHeightRange.max) / 2; // Average player height
    500501
  • ps/trunk/binaries/data/mods/public/maps/tutorials/introductory_tutorial.js

    r24216 r25037  
    44    },
    55    {
    6         "instructions": markForTranslation("Left-click on a female citizen and then right-click on a berry bush to make that female citizen gather food. Female citizens gather vegetables faster than other units."),
     6        "instructions": markForTranslation("Left-click on a itizens gather vegetables faster than other units."),
    77        "OnPlayerCommand": function(msg)
    88        {
     
    1313    },
    1414    {
    15         "instructions": markForTranslation("Select the citizen-soldier, right-click on a tree near the Civic Center to begin gathering Wood. Citizen Soldiers gather Wood faster than female citizens."),
     15        "instructions": markForTranslation("Select the itizens."),
    1616        "OnPlayerCommand": function(msg)
    1717        {
     
    3636                let txt = +msg.count == 1 ?
    3737                    markForTranslation("Do not forget to press the batch training hotkey while clicking to produce multiple units.") :
    38                     markForTranslation("Click on the HOPLITE icon.");
     38                    markForTranslation("Click on the H icon.");
    3939                this.WarningMessage(txt);
    4040                return;
     
    4444    },
    4545    {
    46         "instructions": markForTranslation("Select the two idle female citizens and build a house nearby by selecting the house icon. Place the house by left-clicking on a piece of land."),
     46        "instructions": markForTranslation("Select the two idle ouse by left-clicking on a piece of land."),
    4747        "OnPlayerCommand": function(msg)
    4848        {
     
    5252    },
    5353    {
    54         "instructions": markForTranslation("When they are ready, select the newly trained Hoplites and assign them to build a storehouse beside some nearby trees. They will begin to gather Wood when it's constructed."),
     54        "instructions": markForTranslation("When they are ready, select the newly trained Hoplites and assign them to build a ood when it's constructed."),
    5555        "OnPlayerCommand": function(msg)
    5656        {
     
    8686    },
    8787    {
    88         "instructions": markForTranslation("Build a farmstead in an open space beside the Civic Center using any idle builders."),
     88        "instructions": markForTranslation("Build a armstead in an open space beside the Civic Center using any idle builders."),
    8989        "OnPlayerCommand": function(msg)
    9090        {
     
    9898    },
    9999    {
    100         "instructions": markForTranslation("Let's wait for the farmstead to be built."),
     100        "instructions": markForTranslation("Let's wait for the armstead to be built."),
    101101        "OnTrainingFinished": function(msg)
    102102        {
     
    110110    },
    111111    {
    112         "instructions": markForTranslation("Once the farmstead is constructed, its builders will automatically begin gathering food if there is any nearby. Select the builders and instead make them construct a field beside the farmstead."),
     112        "instructions": markForTranslation("Once the armstead."),
    113113        "Init": function()
    114114        {
     
    134134    },
    135135    {
    136         "instructions": markForTranslation("The field's builders will now automatically begin gathering food from the field. Using the newly created group of skirmishers, get them to build another house nearby."),
     136        "instructions": markForTranslation("The ouse nearby."),
    137137        "OnPlayerCommand": function(msg)
    138138        {
     
    142142    },
    143143    {
    144         "instructions": markForTranslation("Train a batch of Hoplites at the Civic Center. Select the Civic Center and with it selected right-click on a tree nearby. Units from the Civic Center will now automatically gather Wood."),
     144        "instructions": markForTranslation("Train a batch of Hoplites at the Civic Center. Select the Civic Center and with it selected right-click on a tree nearby. Units from the Civic Center will now automatically gather ood."),
    145145        "Init": function()
    146146        {
     
    174174               !msg.cmd.data.resourceType || msg.cmd.data.resourceType.specific != "tree")
    175175            {
    176                 this.WarningMessage(markForTranslation("Select the Civic Center, then hover the cursor over the tree and right-click when you see your cursor change into a Wood icon."));
     176                this.WarningMessage(markForTranslation("Select the Civic Center, then hover the cursor over the tree and right-click when you see your cursor change into a ood icon."));
    177177                return;
    178178            }
     
    183183    },
    184184    {
    185         "instructions": markForTranslation("Order the idle Skirmishers to build an outpost to the north east at the edge of your territory.  This will be the fifth Village Phase structure that you have built, allowing you to advance to the Town Phase."),
     185        "instructions": markForTranslation("Order the idle Skirmishers to build an outpost to the north east at the edge of your territory. This will be the fifth Village Phase structure that you have built, allowing you to advance to the Town Phase."),
    186186        "OnPlayerCommand": function(msg)
    187187        {
     
    218218    },
    219219    {
    220         "instructions": markForTranslation("Start training a batch of female citizens in the Civic Center and set its rally point to the farm (right click on it)."),
     220        "instructions": markForTranslation("Start training a batch of itizens in the Civic Center and set its rally point to the farm (right click on it)."),
    221221        "Init": function()
    222222        {
     
    236236                let txt = +msg.count == 1 ?
    237237                    markForTranslation("Do not forget to press the batch training hotkey while clicking to produce multiple units.") :
    238                     markForTranslation("Click on the female citizen icon.");
     238                    markForTranslation("Click on the itizen icon.");
    239239                this.WarningMessage(txt);
    240240                return;
     
    256256    },
    257257    {
    258         "instructions": markForTranslation("Build a Barracks nearby. Whenever your population limit is reached, build an extra house using any available builder units."),
     258        "instructions": markForTranslation("Build a Barracks nearby. Whenever your population limit is reached, build an extra ouse using any available builder units."),
    259259        "OnPlayerCommand": function(msg)
    260260        {
     
    357357    {
    358358        "instructions": [
    359             markForTranslation("Stop all your soldiers gathering resources and instead task small groups to find the enemy Civic Center on the map. Once The enemy's base has been spotted, send your siege weapons and all remaining soldiers to destroy it.\n"),
    360             markForTranslation("Female citizens should continue to gather resources.")
     359            markForTranslation("Stop all your soldiers gathering resources and instead task small groups to find the enemy Civic Center on the map. Once s and all remaining soldiers to destroy it.\n"),
     360            markForTranslation("Female itizens should continue to gather resources.")
    361361        ],
    362362        "OnOwnershipChanged": function(msg)
  • ps/trunk/binaries/data/mods/public/maps/tutorials/starting_economy_walkthrough.js

    r24445 r25037  
    2323        "instructions": [
    2424            markForTranslation("Now that the Civic Center is selected, you will notice that a production panel will appear on the lower right of your screen detailing the actions that the buildings supports. For the production panel, available actions are not masked in any color, while an icon masked in either grey or red indicates that the action has not been unlocked or you do not have sufficient resources to perform that action, respectively. Additionally, you can hover the cursor over any icon to show a tooltip with more details.\n"),
    25             markForTranslation("The top row of buttons contains portraits of units that may be trained at the building while the bottom one or two rows will have researchable technologies. Hover the cursor over the II icon. The tooltip will tell us that advancing to Town Phase requires both more constructed structures as well as more Food and Wood resources.")
    26         ]
    27     },
    28     {
    29         "instructions": [
    30             markForTranslation("You have two main types of starting units: female citizens and citizen soldiers. Female citizens are purely economic units; they have low HP, no armor, and little to no attack. Citizen soldiers are workers by default, but in times of need, can utilize a weapon to fight. You have two categories of citizen soldiers: infantry and cavalry. Female citizens and infantry citizen soldiers can gather any land resources while cavalry citizen soldiers can only gather meat from hunted animals.\n")
     25            markForTranslation("The top row of buttons contains portraits of units that may be trained at the building while the bottom one or two rows will have researchable technologies. Hover the cursor over the II icon. The tooltip will tell us that advancing to Town Phase requires both more constructed structures as well as more ood resources.")
     26        ]
     27    },
     28    {
     29        "instructions": [
     30            markForTranslation("You have two main types of starting units: animals.\n")
    3131        ]
    3232    },
     
    3838    {
    3939        "instructions": [
    40             markForTranslation("At this point, food and wood are the most important resources for developing your economy, so let's start with gathering food. Female citizens gather vegetables faster than other units.\n"),
     40            markForTranslation("At this point, food and wood are the most important resources for developing your economy, so let's start with gathering food. Female itizens gather vegetables faster than other units.\n"),
    4141            markForTranslation("There are primarily three ways to select units:\n"),
    4242            markForTranslation("1) Hold the left mouse button and drag a selection rectangle that encloses the units you want to select.\n"),
    4343            markForTranslation("2) Click on one of them and then add additional units to your selection by holding Shift and clicking each additional unit (or also via the above selection rectangle).\n"),
    4444            markForTranslation("3) Double-click on a unit. This will select every unit of the same type as the specified unit in your visible window. Triple-click will select all units of the same type on the entire map.\n"),
    45             markForTranslation("You can click on an empty space on the map to reset the selection. Try each of these methods before tasking all of your female citizens to gather the grapes to the southeast of your Civic Center by right-clicking on the grapes when you have all the female citizens selected.")
     45            markForTranslation("You can click on an empty space on the map to reset the selection. Try each of these methods before tasking all of your itizens selected.")
    4646        ],
    4747        "OnPlayerCommand": function(msg)
     
    5454    {
    5555        "instructions": [
    56             markForTranslation("Now, let's gather some Wood with your Infantry Citizen Soldiers. Select your Infantry Citizen Soldiers and order them to gather Wood by right-clicking on the nearest tree.")
     56            markForTranslation("Now, let's gather some ood by right-clicking on the nearest tree.")
    5757        ],
    5858        "OnPlayerCommand": function(msg)
     
    6565    {
    6666        "instructions": [
    67             markForTranslation("Cavalry Citizen Soldiers are good for hunting. Select your cavalry and order him to hunt the chickens around your Civic Center in similar fashion.")
     67            markForTranslation("Cavalry Citizen Soldiers are good for hunting. Select your avalry and order him to hunt the chickens around your Civic Center in similar fashion.")
    6868        ],
    6969        "OnPlayerCommand": function(msg)
     
    7777        "instructions": [
    7878            markForTranslation("All your units are now gathering resources. We should train more units!\n"),
    79             markForTranslation("First, let's set a rally point. Setting a rally point on a building that can train units will automatically designate a task to the new unit upon completion of training. We want to send the newly trained units to gather Wood on the group of trees to the south of the Civic Center. To do so, select the Civic Center by clicking on it and then right-click on one of the trees.\n"),
     79            markForTranslation("First, let's set a rally point. Setting a rally point on a building that can train units will automatically designate a task to the new unit upon completion of training. We want to send the newly trained units to gather ood on the group of trees to the south of the Civic Center. To do so, select the Civic Center by clicking on it and then right-click on one of the trees.\n"),
    8080            markForTranslation("Rally points are indicated by a small flag at the end of the blue line.")
    8181        ],
     
    8686               !msg.cmd.data.resourceType || msg.cmd.data.resourceType.specific != "tree")
    8787            {
    88                 this.WarningMessage(markForTranslation("Select the Civic Center, then hover the cursor over a tree and right-click when you see the cursor change into a Wood icon."));
     88                this.WarningMessage(markForTranslation("Select the Civic Center, then hover the cursor over a tree and right-click when you see the cursor change into a ood icon."));
    8989                return;
    9090            }
     
    9696        "instructions": [
    9797            markForTranslation("Now that the rally point is set, we can produce additional units and they will do their assigned task automatically.\n"),
    98             markForTranslation("Citizen soldiers gather wood faster than female citizens. Select the Civic Center and, while holding Shift, click on the second unit icon, the hoplites (holding Shift trains a batch of five units). You can also train units individually by simply clicking, but training 5 units together takes less time than training 5 units individually.")
     98            markForTranslation("Citizen oplites (holding Shift trains a batch of five units). You can also train units individually by simply clicking, but training 5 units together takes less time than training 5 units individually.")
    9999        ],
    100100        "OnTrainingQueued": function(msg)
     
    117117        "instructions": [
    118118            markForTranslation("Let's wait for the units to be trained.\n"),
    119             markForTranslation("While waiting, direct your attention to the panel at the top of your screen. On the upper left, you will see your current resource supply (Food, Wood, Stone, and Metal). As each worker brings resources back to the Civic Center (or another dropsite), you will see the amount of the corresponding resource increase.\n"),
     119            markForTranslation("While waiting, direct your attention to the panel at the top of your screen. On the upper left, you will see your current resource supply (etal). As each worker brings resources back to the Civic Center (or another dropsite), you will see the amount of the corresponding resource increase.\n"),
    120120            markForTranslation("This is a very important concept to keep in mind: gathered resources have to be brought back to a dropsite to be accounted, and you should always try to minimize the distance between resource and nearest dropsite to improve your gathering efficiency.")
    121121        ],
     
    127127    {
    128128        "instructions": [
    129             markForTranslation("The newly trained units automatically go to the trees and start gathering Wood.\n"),
    130             markForTranslation("But as they have to bring it back to the Civic Center to deposit it, their gathering efficiency suffers from the distance. To fix that, we can build a storehouse, a dropsite for Wood, Stone, and Metal, close to the trees. To do so, select your five newly trained Citizen Soldiers and look for the construction panel on the bottom right, click on the storehouse icon, move the mouse as close as possible to the trees you want to gather and click on a valid place to build the dropsite.\n"),
     129            markForTranslation("The newly trained units automatically go to the trees and start gathering ood.\n"),
     130            markForTranslation("But as they have to bring it back to the Civic Center to deposit it, their gathering efficiency suffers from the distance. To fix that, we can build a torehouse icon, move the mouse as close as possible to the trees you want to gather and click on a valid place to build the dropsite.\n"),
    131131            markForTranslation("Invalid (obstructed) positions will show the building preview overlay in red.")
    132132        ],
     
    139139    {
    140140        "instructions": [
    141             markForTranslation("The selected citizens will automatically start constructing the building once you place the foundation.")
     141            markForTranslation("The selected itizens will automatically start constructing the building once you place the foundation.")
    142142        ],
    143143        "OnStructureBuilt": function(msg)
     
    150150    {
    151151        "instructions": [
    152             markForTranslation("When construction finishes, the builders default to gathering Wood automatically.\n"),
    153             markForTranslation("Let's train some female citizens to gather more food. Select the Civic Center, hold Shift and click on the female citizen icon to train 5 female citizens.")
     152            markForTranslation("When construction finishes, the builders default to gathering ood automatically.\n"),
     153            markForTranslation("Let's train some itizens.")
    154154        ],
    155155        "Init": function()
     
    176176        "instructions": [
    177177            markForTranslation("Let's wait for the units to be trained.\n"),
    178             markForTranslation("In the meantime, we seem to have enough workers gathering Wood. We should remove the current rally point of the Civic Center away from gathering Wood. For that purpose, right-click on the Civic Center when it is selected (and the flag icon indicating the rally point is crossed out).")
     178            markForTranslation("In the meantime, we seem to have enough workers gathering ood. For that purpose, right-click on the Civic Center when it is selected (and the flag icon indicating the rally point is crossed out).")
    179179        ],
    180180        "OnPlayerCommand": function(msg)
     
    204204    {
    205205        "instructions": [
    206             markForTranslation("As you have nearly reached the population limit, you must increase it by building some new structures if you want to train more units. The most cost effective structure to increase your population limit is the house.\n"),
    207             markForTranslation("Now that the units are ready, let's see how to build several houses in a row.")
    208         ]
    209     },
    210     {
    211         "instructions": [
    212             markForTranslation("Select two of your newly-trained female citizens and ask them to build these houses in the empty space to the east of the Civic Center. To do so, after selecting the female citizens, click on the house icon in the bottom right panel and, while holding Shift, click first on the position in the map where you want to build the first house, and then click on the position where you want to build the second house (when you give a command while holding Shift, you put the command in a queue; units automatically switch to the next command in their queue when they finish their current command). Press Escape to get rid of the house cursor so you don't spam houses all over the map.\n"),
    213             markForTranslation("Reminder: to select only two female citizens, click on the first one and then hold Shift and click on the second one.")
     206            markForTranslation("As you have nearly reached the population limit, you must increase it by building some new structures if you want to train more units. The most cost effective structure to increase your population limit is the ouse.\n"),
     207            markForTranslation("Now that the units are ready, let's see how to build several ouses in a row.")
     208        ]
     209    },
     210    {
     211        "instructions": [
     212            markForTranslation("Select two of your newly-trained ouses all over the map.\n"),
     213            markForTranslation("Reminder: to select only two itizens, click on the first one and then hold Shift and click on the second one.")
    214214        ],
    215215        "Init": function()
     
    245245        "instructions": [
    246246            markForTranslation("You may notice that berries are a finite supply of food. We will need a more lasting food source. Fields produce an unlimited food resource, but are slower to gather than forageable fruits.\n"),
    247             markForTranslation("But to minimize the distance between a farm and its corresponding food dropsite, we will first build a farmstead.")
     247            markForTranslation("But to minimize the distance between a farm and its corresponding food dropsite, we will first build a armstead.")
    248248        ],
    249249        "delay": -1,
     
    256256    {
    257257        "instructions": [
    258             markForTranslation("Select the three remaining (idle) female citizens and order them to build a farmstead in the center of the large open area to the west of the Civic Center.\n"),
    259             markForTranslation("We will need a decent chunk of space around the farmstead to build fields. In addition, we can see goats on the west side to further improve our food gathering efficiency should we ever decide to hunt them.\n"),
    260             markForTranslation("If you try to select the three idle female citizens by clicking and dragging a selection rectangle over them, you might accidentally select additional units. To avoid that, hold the I key while selecting so that only idle units are selected. If you accidentally select a cavalry unit, hold Ctrl and click on the cavalry unit icon of the selection panel at the bottom of the screen to remove the cavalry unit from the current selection.")
     258            markForTranslation("Select the three remaining (idle) armstead in the center of the large open area to the west of the Civic Center.\n"),
     259            markForTranslation("We will need a decent chunk of space around the ields. In addition, we can see goats on the west side to further improve our food gathering efficiency should we ever decide to hunt them.\n"),
     260            markForTranslation("If you try to select the three idle itizens by clicking and dragging a selection rectangle over them, you might accidentally select additional units. To avoid that, hold the I key while selecting so that only idle units are selected. If you accidentally select a cavalry unit, hold Ctrl and click on the cavalry unit icon of the selection panel at the bottom of the screen to remove the cavalry unit from the current selection.")
    261261        ],
    262262        "OnPlayerCommand": function(msg)
     
    273273    {
    274274        "instructions": [
    275             markForTranslation("When the farmstead construction is finished, its builders will automatically look for food, and in this case, they will go after the nearby goats.\n"),
    276             markForTranslation("But your house builders will only look for something else to build and, if nothing found, become idle. Let's wait for them to build the houses.")
     275            markForTranslation("When the armstead construction is finished, its builders will automatically look for food, and in this case, they will go after the nearby goats.\n"),
     276            markForTranslation("But your ouses.")
    277277        ],
    278278        "IsDone": function()
     
    290290    {
    291291        "instructions": [
    292             markForTranslation("When both houses are built, select your two female citizens and order them to build a field as close as possible to the farmstead, which is a dropsite for all types of food.")
     292            markForTranslation("When both armstead, which is a dropsite for all types of food.")
    293293        ],
    294294        "OnPlayerCommand": function(msg)
     
    300300    {
    301301        "instructions": [
    302             markForTranslation("When the field is ready, the builders will automatically start gathering it.\n"),
     302            markForTranslation("When the ield is ready, the builders will automatically start gathering it.\n"),
    303303            markForTranslation("The cavalry unit should have slaughtered all chickens by now. Select it and explore the south-west area: there is a lake with some camels around. Move your cavalry by right-clicking on the point you want to go, and when you see a herd of camels, right-click on one of them to start hunting for food.")
    304304        ],
     
    320320               (msg.cmd.data.command != "gather" || !msg.cmd.data.resourceType || msg.cmd.data.resourceType.specific != "grain"))
    321321            {
    322                 this.WarningMessage(markForTranslation("Select the Civic Center and right-click on the field."));
     322                this.WarningMessage(markForTranslation("Select the Civic Center and right-click on the ield."));
    323323                return;
    324324            }
     
    328328    {
    329329        "instructions": [
    330             markForTranslation("Now click three times on the female citizen icon in the bottom right panel to train three additional farmers.")
     330            markForTranslation("Now click three times on the itizen icon in the bottom right panel to train three additional farmers.")
    331331        ],
    332332        "Init": function(msg)
     
    354354        "instructions": [
    355355            markForTranslation("You can increase the gather rates of your workers by researching new technologies available in some buildings.\n"),
    356             markForTranslation("The farming rate, for example, can be improved with a researchable technology in the farmstead. Select the farmstead and look at its production panel on the bottom right. You will see several researchable technologies. Hover the cursor over them to see their costs and effects and click on the one you want to research.")
     356            markForTranslation("The farming rate, for example, can be improved with a researchable technology in the armstead and look at its production panel on the bottom right. You will see several researchable technologies. Hover the cursor over them to see their costs and effects and click on the one you want to research.")
    357357        ],
    358358        "IsDone": function()
     
    382382    {
    383383        "instructions": [
    384             markForTranslation("Let's wait for the Barracks to be built. As this construction is lengthy, you can add two soldiers to build it faster. To do so, select your Civic Center and set up a rally point on the Barracks foundation by right-clicking on it (you should see a hammer icon). Then produce two more builders by clicking on the hoplite icon twice.")
     384            markForTranslation("Let's wait for the Barracks to be built. As this construction is lengthy, you can add two soldiers to build it faster. To do so, select your Civic Center and set up a rally point on the Barracks foundation by right-clicking on it (you should see a hammer icon). Then produce two more builders by clicking on the oplite icon twice.")
    385385        ],
    386386        "OnStructureBuilt": function(msg)
     
    407407    {
    408408        "instructions": [
    409             markForTranslation("In later phases, you need usually Stone and Metal to build bigger structures and train better soldiers. Hence, while waiting for the research to be done, you will send half of your idle Citizen Soldiers (who have finished building the Barracks) to gather Stone and the other half to gather Metal.\n"),
    410             markForTranslation("To do so, we could select three Citizen Soldiers and right-click on the Stone mine on the west of the Civic Center (the cursor changes when hovering the Stone mine while your soldiers are selected). However, these soldiers were gathering Wood, so they may still carry some Wood which would be lost when starting to gather another resource.")
    411         ],
    412     },
    413     {
    414         "instructions": [
    415             markForTranslation("Thus, we should order them to deposit their Wood in the Civic Center along the way. To do so, we will hold Shift while clicking to queue orders: select your soldiers, hold Shift and right-click on the Civic Center to deposit their Wood and then hold Shift and right-click on the Stone mine to gather it.\n"),
    416             markForTranslation("Perform a similar order queue with the remaining soldiers and the Metal mine in the west.")
     409            markForTranslation("In later phases, you need usually etal.\n"),
     410            markForTranslation("To do so, we could select three Citizen Soldiers and right-click on the ood which would be lost when starting to gather another resource.")
     411        ],
     412    },
     413    {
     414        "instructions": [
     415            markForTranslation("Thus, we should order them to deposit their to gather it.\n"),
     416            markForTranslation("Perform a similar order queue with the remaining soldiers and the etal mine in the west.")
    417417        ],
    418418        "Init": function()
  • ps/trunk/binaries/data/mods/public/maps/tutorials/starting_economy_walkthrough.xml

    r24747 r25037  
    4848  ],
    4949  "CircularMap": true,
    50   "Description": "This map will give a rough guide for starting the game effectively.  Early in the game the most important thing is to gather resources as fast as possible so you are able to build enough troops later.",
     50  "Description": "This map will give a rough guide for starting the game effectively. Early in the game the most important thing is to gather resources as fast as possible so you are able to build enough troops later.",
    5151  "Keywords": [
    5252    "trigger"
Note: See TracChangeset for help on using the changeset viewer.