Index: binaries/data/mods/public/maps/random/frontier.js =================================================================== --- binaries/data/mods/public/maps/random/frontier.js +++ binaries/data/mods/public/maps/random/frontier.js @@ -5,10 +5,10 @@ setSelectedBiome(); -// Random elevation with a bias towards lower elevations -var randElevation = randIntInclusive(0, 29); -if (randElevation < 25) - randElevation = randIntInclusive(1, 4); +// Random elevation +var randElevation = randIntInclusive(0, 30); +if (randElevation < 15) + randElevation = randIntInclusive(1, 3); var g_Map = new RandomMap(randElevation, g_Terrains.mainTerrain); @@ -17,11 +17,11 @@ new MapBoundsPlacer(), new TileClassPainter(g_TileClasses.land)); -Engine.SetProgress(20); +Engine.SetProgress(10); if (!isNomad()) { - let pattern = g_MapSettings.TeamPlacement || pickRandom(Object.keys(g_PlayerbaseTypes)); + const pattern = g_MapSettings.TeamPlacement || pickRandom(Object.keys(g_PlayerbaseTypes)); createBasesByPattern( pattern, g_PlayerbaseTypes[pattern].distance, @@ -30,6 +30,10 @@ } Engine.SetProgress(40); +var featIndex = shuffleArray([0, 1, 2, 3, 4]); +var featAmounts = ["tons", "many", "normal", "few", "scarce"]; +var featSizes = ["tiny", "tiny", "small", "normal", "big"]; + var features = [ { "func": addBluffs, @@ -43,9 +47,9 @@ g_TileClasses.valley, 5, g_TileClasses.water, 7 ], - "sizes": g_AllSizes, + "sizes": [featSizes[featIndex[0]]], "mixes": g_AllMixes, - "amounts": g_AllAmounts + "amounts": [featAmounts[featIndex[0]]] }, { "func": addHills, @@ -58,9 +62,9 @@ g_TileClasses.valley, 2, g_TileClasses.water, 2 ], - "sizes": g_AllSizes, + "sizes": [featSizes[featIndex[1]]], "mixes": g_AllMixes, - "amounts": g_AllAmounts + "amounts": [featAmounts[featIndex[1]]] }, { "func": addMountains, @@ -72,9 +76,9 @@ g_TileClasses.valley, 10, g_TileClasses.water, 15 ], - "sizes": g_AllSizes, + "sizes": [featSizes[featIndex[2]]], "mixes": g_AllMixes, - "amounts": g_AllAmounts + "amounts": [featAmounts[featIndex[2]]] }, { "func": addPlateaus, @@ -87,13 +91,13 @@ g_TileClasses.valley, 10, g_TileClasses.water, 15 ], - "sizes": g_AllSizes, + "sizes": [featSizes[featIndex[3]]], "mixes": g_AllMixes, - "amounts": g_AllAmounts + "amounts": [featAmounts[featIndex[3]]] } ]; -if (randElevation < 4) +if (randElevation <= 2) features.push({ "func": addLakes, "avoid": [ @@ -105,12 +109,12 @@ g_TileClasses.valley, 10, g_TileClasses.water, 25 ], - "sizes": ["small"], + "sizes": [featSizes[featIndex[4]]], "mixes": g_AllMixes, - "amounts": g_AllAmounts + "amounts": [featAmounts[featIndex[4]]] }); -if (randElevation > 20) +if (randElevation >= 15) features.push({ "func": addValleys, "baseHeight": randElevation, @@ -123,9 +127,9 @@ g_TileClasses.valley, 15, g_TileClasses.water, 10 ], - "sizes": g_AllSizes, + "sizes": [featSizes[featIndex[4]]], "mixes": g_AllMixes, - "amounts": g_AllAmounts + "amounts": [featAmounts[featIndex[4]]] }); addElements(shuffleArray(features)); @@ -141,80 +145,84 @@ g_TileClasses.mountain, 2, g_TileClasses.plateau, 2, g_TileClasses.player, 12, - g_TileClasses.water, 3 + g_TileClasses.water, 2 ], "sizes": ["normal"], "mixes": ["normal"], - "amounts": ["normal"] + "amounts": ["tons"] }, { "func": addDecoration, "avoid": [ - g_TileClasses.bluff, 2, - g_TileClasses.forest, 2, - g_TileClasses.mountain, 2, - g_TileClasses.plateau, 2, + g_TileClasses.bluff, 1, + g_TileClasses.forest, 1, + g_TileClasses.mountain, 1, + g_TileClasses.plateau, 1, g_TileClasses.player, 12, - g_TileClasses.water, 3 + g_TileClasses.water, 1 ], - "sizes": ["normal"], - "mixes": ["normal"], - "amounts": ["normal"] + "sizes": ["big"], + "mixes": ["unique"], + "amounts": ["tons"] } ]); Engine.SetProgress(60); +var resIndex = shuffleArray([0, 1, 2, 3, 4, 5]); +var resAmounts = ["normal", "normal", "normal", "many", "tons", "tons"]; +var resSizes = ["big", "big", "normal", "normal", "normal", "small"]; + addElements(shuffleArray([ { "func": addMetal, "avoid": [ - g_TileClasses.berries, 5, - g_TileClasses.bluff, 5, + g_TileClasses.berries, 3, + g_TileClasses.bluff, 2, g_TileClasses.forest, 3, g_TileClasses.mountain, 2, g_TileClasses.plateau, 2, g_TileClasses.player, 30, g_TileClasses.rock, 10, - g_TileClasses.metal, 20, - g_TileClasses.water, 3 + g_TileClasses.metal, 30, + g_TileClasses.water, 2 ], - "sizes": ["normal"], - "mixes": ["same"], - "amounts": g_AllAmounts + "sizes": [resSizes[resIndex[0]]], + "mixes": g_AllMixes, + "amounts": [resAmounts[resIndex[0]]] }, { "func": addStone, "avoid": [ - g_TileClasses.berries, 5, - g_TileClasses.bluff, 5, + g_TileClasses.berries, 3, + g_TileClasses.bluff, 2, g_TileClasses.forest, 3, g_TileClasses.mountain, 2, g_TileClasses.plateau, 2, g_TileClasses.player, 30, - g_TileClasses.rock, 20, + g_TileClasses.rock, 30, g_TileClasses.metal, 10, - g_TileClasses.water, 3 + g_TileClasses.water, 2 ], - "sizes": ["normal"], - "mixes": ["same"], - "amounts": g_AllAmounts + "sizes": [resSizes[resIndex[1]]], + "mixes": g_AllMixes, + "amounts": [resAmounts[resIndex[1]]] }, { "func": addForests, "avoid": [ - g_TileClasses.berries, 5, - g_TileClasses.bluff, 5, - g_TileClasses.forest, 18, - g_TileClasses.metal, 3, - g_TileClasses.mountain, 5, - g_TileClasses.plateau, 5, + g_TileClasses.berries, 3, + g_TileClasses.bluff, 2, + g_TileClasses.forest, 10, + g_TileClasses.metal, 2, + g_TileClasses.mountain, 3, + g_TileClasses.plateau, 3, g_TileClasses.player, 20, - g_TileClasses.rock, 3, + g_TileClasses.rock, 2, g_TileClasses.water, 2 ], - "sizes": g_AllSizes, + "sizes": [resSizes[resIndex[2]]], "mixes": g_AllMixes, - "amounts": ["few", "normal", "many", "tons"] + "amounts": [resAmounts[resIndex[2]]] } ])); Engine.SetProgress(70); @@ -224,52 +232,52 @@ "func": addBerries, "avoid": [ g_TileClasses.berries, 30, - g_TileClasses.bluff, 5, - g_TileClasses.forest, 5, - g_TileClasses.metal, 10, + g_TileClasses.bluff, 2, + g_TileClasses.forest, 3, + g_TileClasses.metal, 5, g_TileClasses.mountain, 2, g_TileClasses.plateau, 2, g_TileClasses.player, 20, - g_TileClasses.rock, 10, - g_TileClasses.water, 3 + g_TileClasses.rock, 5, + g_TileClasses.water, 2 ], - "sizes": g_AllSizes, + "sizes": [resSizes[resIndex[3]]], "mixes": g_AllMixes, - "amounts": g_AllAmounts + "amounts": [resAmounts[resIndex[3]]] }, { "func": addAnimals, "avoid": [ g_TileClasses.animals, 20, - g_TileClasses.bluff, 5, + g_TileClasses.bluff, 2, g_TileClasses.forest, 2, g_TileClasses.metal, 2, - g_TileClasses.mountain, 1, + g_TileClasses.mountain, 2, g_TileClasses.plateau, 2, g_TileClasses.player, 20, g_TileClasses.rock, 2, - g_TileClasses.water, 3 + g_TileClasses.water, 2 ], - "sizes": g_AllSizes, + "sizes": [resSizes[resIndex[4]]], "mixes": g_AllMixes, - "amounts": g_AllAmounts + "amounts": [resAmounts[resIndex[4]]] }, { "func": addStragglerTrees, "avoid": [ - g_TileClasses.berries, 5, - g_TileClasses.bluff, 5, - g_TileClasses.forest, 7, + g_TileClasses.berries, 2, + g_TileClasses.bluff, 2, + g_TileClasses.forest, 3, g_TileClasses.metal, 2, - g_TileClasses.mountain, 1, + g_TileClasses.mountain, 2, g_TileClasses.plateau, 2, g_TileClasses.player, 12, g_TileClasses.rock, 2, - g_TileClasses.water, 5 + g_TileClasses.water, 2 ], - "sizes": g_AllSizes, + "sizes": [resSizes[resIndex[5]]], "mixes": g_AllMixes, - "amounts": g_AllAmounts + "amounts": [resAmounts[resIndex[5]]] } ])); Engine.SetProgress(90);