From 5dd3cbb254f5def377fe39dd5b17d37a778de6dc Mon Sep 17 00:00:00 2001 From: mimo Date: Tue, 17 Mar 2015 22:03:33 +0000 Subject: [PATCH] Random nomad maps are now in default filter. The number of starting units has been increased to speedup the startup (building of cc) Treasures are added when the starting resources are not sufficient to either build a dock in water maps, or build a cc in land maps. This was SVN commit r16447. --- .../mods/public/maps/random/unknown_nomad.js | 52 +++++++++++++++++-- .../public/maps/random/unknown_nomad.json | 1 - 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/binaries/data/mods/public/maps/random/unknown_nomad.js b/binaries/data/mods/public/maps/random/unknown_nomad.js index 8924a28e3d..ac88d3b947 100644 --- a/binaries/data/mods/public/maps/random/unknown_nomad.js +++ b/binaries/data/mods/public/maps/random/unknown_nomad.js @@ -1326,11 +1326,53 @@ for (var i = 0; i < numPlayers; i++) var iz = playerZ[i]; var civEntities = getStartingEntities(id-1); var angle = randFloat(0, TWO_PI); - - var pEntities = [civEntities[1].Template, civEntities[1].Template, civEntities[2].Template, civEntities[2].Template, civEntities[3].Template]; - - for (var p = 0; p < 5; ++p) - placeObject(ix+(2*cos(angle + p * TWO_PI / 5)), iz+(2*sin(angle + p * TWO_PI / 5)), pEntities[p], id, randFloat(0,TWO_PI)); + for (var j = 1; j < 4; ++j) + { + var count = (civEntities[j].Count !== undefined ? civEntities[j].Count : 1); + var jx = ix + 2 * cos(angle); + var jz = iz + 2 * sin(angle); + var kAngle = randFloat(0, TWO_PI); + for (var k = 0; k < count; ++k) + placeObject(jx + cos(kAngle + k*TWO_PI/count), jz + sin(kAngle + k*TWO_PI/count), civEntities[j].Template, id, randFloat(0, TWO_PI)); + angle += TWO_PI / 3; + } + + if (md > 9) // maps without water, so we must have enough resources to build a cc + { + if (g_MapSettings.StartingResources < 500) + { + var loop = (g_MapSettings.StartingResources < 200) ? 2 : 1; + for (let l = 0; l < loop; ++l) + { + var angle = randFloat(0, TWO_PI); + var rad = randFloat(3, 5); + var jx = ix + rad * cos(angle); + var jz = iz + rad * sin(angle); + placeObject(jx, jz, "gaia/special_treasure_wood", 0, randFloat(0, TWO_PI)); + var angle = randFloat(0, TWO_PI); + var rad = randFloat(3, 5); + var jx = ix + rad * cos(angle); + var jz = iz + rad * sin(angle); + placeObject(jx, jz, "gaia/special_treasure_stone", 0, randFloat(0, TWO_PI)); + var angle = randFloat(0, TWO_PI); + var rad = randFloat(3, 5); + var jx = ix + rad * cos(angle); + var jz = iz + rad * sin(angle); + placeObject(jx, jz, "gaia/special_treasure_metal", 0, randFloat(0, TWO_PI)); + } + } + } + else // we must have enough resources to build a dock + { + if (g_MapSettings.StartingResources < 200) + { + var angle = randFloat(0, TWO_PI); + var rad = randFloat(3, 5); + var jx = ix + rad * cos(angle); + var jz = iz + rad * sin(angle); + placeObject(jx, jz, "gaia/special_treasure_wood", 0, randFloat(0, TWO_PI)); + } + } } for (var i = 0; i < numPlayers; i++) diff --git a/binaries/data/mods/public/maps/random/unknown_nomad.json b/binaries/data/mods/public/maps/random/unknown_nomad.json index 0f0d4cd221..382c03f3d5 100644 --- a/binaries/data/mods/public/maps/random/unknown_nomad.json +++ b/binaries/data/mods/public/maps/random/unknown_nomad.json @@ -6,7 +6,6 @@ "BaseTerrain" : ["medit_sand_wet"], "BaseHeight" : -5, "Preview" : "unknown.png", - "Keywords": ["demo"], "CircularMap" : true, "XXXXXX" : "Optionally define other things here, like we would for a scenario" }