Adopt the generator based interface by generated maps
- Adding the function signature - Changing `g_Map.ExportMap()` to `return g_Map` - Changing `Engine.SetProgress(NN)` to `yield NN` - Changing `const g_Map = ...` to `globalThis.g_Map = ...` - On some maps using the argument `mapSettings` Comments By: @asterix, @sera, @Stan Differential Revision: https://code.wildfiregames.com/D5258 This was SVN commit r28119.
This commit is contained in:
parent
a178b3fcb3
commit
e01ea16ae5
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -113,7 +114,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aBush1
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
paintRiver({
|
||||
"parallel": false,
|
||||
@ -132,7 +133,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
paintTerrainBasedOnHeight(-Infinity, heightShore, Elevation_ExcludeMin_ExcludeMax, tShoreLower);
|
||||
paintTerrainBasedOnHeight(heightShore, heightLand, Elevation_ExcludeMin_ExcludeMax, tShoreUpper);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
|
||||
|
||||
@ -143,7 +144,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
if (randBool())
|
||||
createHills([tGrass, tCliff, tHill],
|
||||
@ -165,7 +166,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -176,7 +177,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating undersea bumps");
|
||||
createAreas(
|
||||
@ -245,7 +246,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clMetal
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -265,7 +266,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clWater, 2, clForest, 0, clPlayer, 0, clHill, 1));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -301,7 +302,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 10),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
const types = [oDatePalm, oSDatePalm, oCarob, oFanPalm, oPoplar, oCypress];
|
||||
createStragglerTrees(
|
||||
@ -342,5 +343,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.51);
|
||||
setPPBloom(0.12);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,8 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
if (g_MapSettings.Biome)
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
setBiome("generic/savanna");
|
||||
@ -108,7 +109,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
// The specificity of this map is a bunch of watering holes & hills making
|
||||
// it somewhat cluttered.
|
||||
@ -118,7 +119,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_Map.log("Creating hills");
|
||||
createHills([tDirt2, tCliff, tGrassShrubs], avoidClasses(clPlayer, 30, clHill, 15), clHill,
|
||||
nbHills);
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating water holes");
|
||||
createAreas(
|
||||
@ -134,7 +135,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clPlayer, 22, clWater, 8, clHill, 2),
|
||||
nbWateringHoles);
|
||||
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
paintTerrainBasedOnHeight(heightCliff, Infinity, 0, tCliff);
|
||||
}
|
||||
@ -148,7 +149,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clPlayer, 20, clForest, 15, clHill, 0, clWater, 2),
|
||||
clForest,
|
||||
scaleByMapSize(200, 1000));
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -158,7 +159,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating shrubs");
|
||||
createPatches(
|
||||
@ -167,7 +168,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
createPatches(
|
||||
@ -176,7 +177,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -194,7 +195,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 4, clForest, 1, clPlayer, scaleByMapSize(20, 35), clHill, 1, clMetal, 10)
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -206,7 +207,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapAreaAbsolute(8)
|
||||
],
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0));
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
// Roaming animals
|
||||
{
|
||||
@ -307,7 +308,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
[avoidClasses(clFood, 20), stayClasses(clWater, 6)],
|
||||
clFood);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
|
||||
g_Map.log("Creating straggler baobabs");
|
||||
@ -333,5 +334,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setSkySet("sunny");
|
||||
setWaterType("clap");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,9 +2,10 @@ Engine.LoadLibrary("rmbiome");
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setBiome(g_MapSettings.Biome ?? "alpine/winter");
|
||||
const isLateSpringBiome = g_MapSettings.Biome !== "alpine/winter";
|
||||
setBiome(mapSettings.Biome ?? "alpine/winter");
|
||||
const isLateSpringBiome = mapSettings.Biome !== "alpine/winter";
|
||||
|
||||
setFogThickness(isLateSpringBiome ? 0.26 : 0.19);
|
||||
setFogFactor(isLateSpringBiome ? 0.4 : 0.35);
|
||||
@ -64,7 +65,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": g_Decoratives.grassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
createMountains(g_Terrains.cliff,
|
||||
avoidClasses(clPlayer, 20, clHill, 8),
|
||||
@ -75,7 +76,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Math.floor(scaleByMapSize(7, 15)),
|
||||
Math.floor(scaleByMapSize(5, 15)));
|
||||
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating lakes");
|
||||
createAreas(
|
||||
@ -101,7 +102,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -119,7 +120,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -143,7 +144,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1),
|
||||
clMetal);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -175,7 +176,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0));
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -209,7 +210,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clFood, 20), stayClasses(clWater, 6)],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[g_Gaia.tree1],
|
||||
@ -237,5 +238,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterWaviness(3.0);
|
||||
setWaterType("clap");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -204,7 +204,7 @@ MountainRangeBuilder.prototype.PaintCurrentEdge = function()
|
||||
/**
|
||||
* This is the only function meant to be publicly accessible.
|
||||
*/
|
||||
MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
MountainRangeBuilder.prototype.CreateMountainRanges = function*(map)
|
||||
{
|
||||
map.log("Creating mountainrange with " + this.possibleEdges.length + " possible edges");
|
||||
|
||||
@ -212,7 +212,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
|
||||
while (this.possibleEdges.length)
|
||||
{
|
||||
Engine.SetProgress(35 - 15 * this.possibleEdges.length / max);
|
||||
yield 35 - 15 * this.possibleEdges.length / max;
|
||||
|
||||
this.index = randIntExclusive(0, this.possibleEdges.length);
|
||||
this.UpdateCurrentEdge();
|
||||
@ -234,8 +234,9 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
}
|
||||
};
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setBiome(g_MapSettings.Biome ?? "alpine/winter");
|
||||
setBiome(mapSettings.Biome ?? "alpine/winter");
|
||||
|
||||
const heightLand = 3;
|
||||
const heightOffsetBump = 2;
|
||||
@ -287,9 +288,9 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
"template": g_Decoratives.grassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
new MountainRangeBuilder({
|
||||
yield* new MountainRangeBuilder({
|
||||
"numPlayers": numPlayers,
|
||||
"pathplacer": new PathPlacer(
|
||||
undefined,
|
||||
@ -323,7 +324,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
]
|
||||
}).CreateMountainRanges(g_Map);
|
||||
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
paintTerrainBasedOnHeight(heightLand + 0.1, snowlineHeight, 0, g_Terrains.cliff);
|
||||
paintTerrainBasedOnHeight(snowlineHeight, heightMountain, 3, g_Terrains.snowLimited);
|
||||
@ -334,7 +335,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
new SmoothElevationPainter(ELEVATION_MODIFY, heightOffsetBump, 2),
|
||||
avoidClasses(clPlayer, 10),
|
||||
scaleByMapSize(100, 200));
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreas(
|
||||
@ -347,7 +348,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
avoidClasses(clPlayer, 20, clHill, 14),
|
||||
scaleByMapSize(10, 80) * numPlayers
|
||||
);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(500, 3000, 0.7);
|
||||
@ -367,7 +368,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
],
|
||||
avoidClasses(clPlayer, 12, clForest, 10, clHill, 0),
|
||||
num);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const patchSize of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -393,7 +394,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45));
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -421,7 +422,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1),
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -447,7 +448,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
avoidClasses(clForest, 0, clPlayer, 0, clHill, 0),
|
||||
scaleByMapSize(8, 131), 50
|
||||
);
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating deer");
|
||||
group = new SimpleGroup(
|
||||
@ -478,7 +479,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
avoidClasses(clForest, 0, clPlayer, 10, clHill, 1, clFood, 20),
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[g_Gaia.tree1],
|
||||
@ -496,7 +497,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
avoidClasses(clHill, 2, clPlayer, 2, clDirt, 0),
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
group = new SimpleGroup([
|
||||
@ -506,7 +507,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
avoidClasses(clHill, 2, clPlayer, 2, clDirt, 1, clForest, 0),
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup([
|
||||
@ -523,5 +524,5 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function(map)
|
||||
setSunRotation(randomAngle());
|
||||
setSunElevation(Math.PI * randFloat(1/5, 1/3));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -17,9 +18,9 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land));
|
||||
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
const pattern = g_MapSettings.TeamPlacement ||
|
||||
const pattern = mapSettings.TeamPlacement ||
|
||||
pickRandom(["line", "radial", "randomGroup", "stronghold"]);
|
||||
const [playerIDs, playerPosition] =
|
||||
createBases(
|
||||
@ -34,7 +35,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
if (!isNomad())
|
||||
markPlayerAvoidanceArea(playerPosition, defaultPlayerBaseRadius());
|
||||
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -57,7 +58,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
if (!isNomad())
|
||||
createBluffsPassages(playerPosition);
|
||||
@ -93,7 +94,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -165,7 +166,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -218,7 +219,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
if (isNomad())
|
||||
{
|
||||
@ -242,5 +243,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
]);
|
||||
}
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tPrimary = ["steppe_grass_a", "steppe_grass_c", "steppe_grass_d"];
|
||||
const tGrass = ["steppe_grass_a", "steppe_grass_b", "steppe_grass_c", "steppe_grass_d"];
|
||||
@ -79,7 +80,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
});
|
||||
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -102,7 +103,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clPlayer, 13, clForest, 20, clHill, 1),
|
||||
num);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
createLayeredPatches(
|
||||
@ -122,7 +123,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(50, 90),
|
||||
clDirt);
|
||||
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating big patches");
|
||||
createLayeredPatches(
|
||||
@ -133,7 +134,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(30, 90),
|
||||
clDirt);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -162,7 +163,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(2, 8), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -186,7 +187,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(8, 131), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating rabbits");
|
||||
group = new SimpleGroup(
|
||||
@ -208,7 +209,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
randIntInclusive(1, 4) * numPlayers + 2, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating sheep");
|
||||
group = new SimpleGroup(
|
||||
@ -220,7 +221,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oBush, oPoplar],
|
||||
@ -240,7 +241,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(13, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -261,5 +262,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPContrast(0.62);
|
||||
setPPBloom(0.2);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -183,7 +184,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees
|
||||
);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -203,7 +204,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt
|
||||
);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -227,7 +228,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
clMetal
|
||||
);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
const planetm = currentBiome() == "generic/india" ? 8 : 1;
|
||||
createDecoration(
|
||||
@ -246,7 +247,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
planetm * scaleByMapAreaAbsolute(13)
|
||||
],
|
||||
[avoidClasses(clForest, 0, clPlayer, 0, clHill, 0), stayClasses(clLand, 5)]);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -260,7 +261,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clPlayer, 1, clHill, 1, clFood, 20), stayClasses(clLand, 3)],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -272,7 +273,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clPlayer, 1, clHill, 1, clFood, 10), stayClasses(clLand, 3)],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -284,7 +285,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clLand, 3, clPlayer, 2, clFood, 20),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -304,5 +305,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setWaterWaviness(4.0);
|
||||
setWaterType("ocean");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setFogThickness(0.46);
|
||||
setFogFactor(0.5);
|
||||
@ -97,7 +98,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
createHills(
|
||||
[tPrimary, tCliff, tHill],
|
||||
@ -109,7 +110,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clHill,
|
||||
scaleByMapSize(1, 240));
|
||||
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating lakes");
|
||||
createAreas(
|
||||
@ -126,7 +127,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 15),
|
||||
scaleByMapSize(1, 20));
|
||||
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
createBumps(avoidClasses(clPlayer, 6, clWater, 2), scaleByMapSize(30, 300), 1, 8, 4, 0, 3);
|
||||
|
||||
@ -143,7 +144,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clWater, 2),
|
||||
clForest,
|
||||
forestTrees);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -184,7 +185,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -216,7 +217,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clRock, 5,
|
||||
clHill, 1),
|
||||
clMetal);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -237,7 +238,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest, 0,
|
||||
clPlayer, 0,
|
||||
clHill, 0));
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -301,7 +302,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oBush, oBush2],
|
||||
@ -335,5 +336,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterWaviness(1);
|
||||
setWaterType("clap");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setBiome("generic/temperate");
|
||||
|
||||
@ -82,7 +83,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new LayeredPainter([tCliff, tGrass], [3]),
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightLand, 3)
|
||||
]);
|
||||
Engine.SetProgress(5);
|
||||
yield 5;
|
||||
|
||||
g_Map.log("Finding hills");
|
||||
const noise0 = new Noise2D(20);
|
||||
@ -130,7 +131,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
return 1;
|
||||
}
|
||||
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -170,7 +171,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new ClumpPlacer(250, 0.95, 0.3, 0.1, playerPosition[i]),
|
||||
new TileClassPainter(clPlayer));
|
||||
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
for (const size of
|
||||
@ -262,7 +263,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
}
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
for (let ix = 0; ix < mapSize; ix++)
|
||||
for (let iz = 0; iz < mapSize; iz++)
|
||||
@ -289,7 +290,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
new TileClassPainter(clExplorable).paint(explorableArea);
|
||||
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
// Add some general noise - after placing height dependant trees
|
||||
for (let ix = 0; ix < mapSize; ix++)
|
||||
@ -306,7 +307,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
}
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [protoPorestTrees, stragglerTrees] = getTreeCounts(1300, 8000, 0.8);
|
||||
@ -342,7 +343,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[explorableArea]
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -360,7 +361,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clForest, 1, clHill, 2, clPlayer, 5),
|
||||
scaleByMapSize(4, 12));
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -385,7 +386,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
]
|
||||
);
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating wildlife");
|
||||
let group = new SimpleGroup(
|
||||
@ -418,7 +419,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[explorableArea]
|
||||
);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating berry bush");
|
||||
group = new SimpleGroup(
|
||||
@ -448,7 +449,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[explorableArea]
|
||||
);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating straggler trees");
|
||||
const types = [oOak, oOakLarge, oPine, oAleppoPine];
|
||||
@ -467,7 +468,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
stragglerNum, 20,
|
||||
[explorableArea]);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating grass tufts");
|
||||
group = new SimpleGroup(
|
||||
@ -481,5 +482,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
placePlayersNomad(clPlayer, avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tPrimary = ["medit_rocks_grass", "medit_rocks_grass", "medit_rocks_grass",
|
||||
"medit_rocks_grass", "medit_rocks_grass_shrubs", "medit_rocks_shrubs"];
|
||||
@ -86,13 +87,13 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
createBumps(avoidClasses(clPlayer, 9));
|
||||
|
||||
createMountains(tCliff, avoidClasses(clPlayer, 20, clHill, 8), clHill, scaleByMapSize(20, 120));
|
||||
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(500, 3000, 0.7);
|
||||
createForests(
|
||||
@ -101,7 +102,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -121,7 +122,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -144,7 +145,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clMetal
|
||||
);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -163,7 +164,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clForest, 0, clPlayer, 0, clHill, 0));
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -207,7 +208,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createStragglerTrees(
|
||||
[oCarob, oAleppoPine],
|
||||
@ -231,5 +232,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.56);
|
||||
setPPBloom(0.1);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setBiome("generic/sahara");
|
||||
setLandBiome();
|
||||
@ -71,7 +72,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_Decoratives.bushMedium = "actor|props/flora/bush_desert_dry_a.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_medit_la_dry";
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const heightSeaGround = heightScale(-6);
|
||||
const heightWaterLevel = heightScale(0);
|
||||
@ -83,7 +84,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
const numPlayers = getNumPlayers();
|
||||
|
||||
g_Map.LoadHeightmapImage("bahrain.png", 0, 15);
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
initTileClasses(["island", "shoreline"]);
|
||||
|
||||
@ -92,27 +93,27 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightSeaGround, 2),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(1, scaleByMapSize(0.1, 0.5), 1));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Marking water");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.water),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Marking land");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land),
|
||||
avoidClasses(g_TileClasses.water, 0));
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Marking island");
|
||||
const areaIsland = createArea(
|
||||
@ -121,7 +122,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new Vector2D(fractionToTiles(0.6), mapCenter.y), Infinity),
|
||||
new TileClassPainter(g_TileClasses.island),
|
||||
avoidClasses(g_TileClasses.water, 0));
|
||||
Engine.SetProgress(37);
|
||||
yield 37;
|
||||
|
||||
g_Map.log("Painting shoreline");
|
||||
createArea(
|
||||
@ -131,7 +132,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(g_TileClasses.shoreline)
|
||||
],
|
||||
new HeightConstraint(-Infinity, heightShoreline));
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Painting cliffs");
|
||||
createArea(
|
||||
@ -144,7 +145,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(g_TileClasses.water, 2),
|
||||
new SlopeConstraint(2, Infinity)
|
||||
]);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -322,7 +323,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Painting island");
|
||||
setIslandBiome();
|
||||
@ -405,7 +406,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
]));
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Adding more decoratives");
|
||||
createObjectGroups(
|
||||
@ -424,7 +425,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_TileClasses.forest, 2),
|
||||
2 * scaleByMapSize(1, 4),
|
||||
20);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating treasures");
|
||||
for (const treasure of [g_Gaia.woodTreasure, g_Gaia.foodTreasure])
|
||||
@ -437,7 +438,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_TileClasses.forest, 2),
|
||||
randIntInclusive(1, numPlayers),
|
||||
20);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating shipwrecks");
|
||||
createObjectGroups(
|
||||
@ -446,7 +447,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
stayClasses(g_TileClasses.water, 2),
|
||||
randIntInclusive(0, 1),
|
||||
20);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
placePlayersNomad(
|
||||
g_Map.createTileClass(),
|
||||
@ -487,5 +488,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("heightmap");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tPrimary = ["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"];
|
||||
@ -194,7 +195,7 @@ Engine.LoadLibrary("heightmap");
|
||||
}
|
||||
];
|
||||
|
||||
Engine.SetProgress(5);
|
||||
yield 5;
|
||||
|
||||
const lowerHeightLimit = terrainTypes[3].upperHeightLimit;
|
||||
const upperHeightLimit = terrainTypes[6].upperHeightLimit;
|
||||
@ -232,7 +233,7 @@ Engine.LoadLibrary("heightmap");
|
||||
}
|
||||
})();
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Painting terrain by height and add props");
|
||||
// 1 means as determined in the loop, less for large maps as set below
|
||||
@ -252,7 +253,7 @@ Engine.LoadLibrary("heightmap");
|
||||
g_Map.placeEntityAnywhere(template[1], 0, position, randomAngle());
|
||||
}
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
if (isNomad())
|
||||
placePlayersNomad(g_Map.createTileClass(),
|
||||
@ -290,5 +291,5 @@ Engine.LoadLibrary("heightmap");
|
||||
});
|
||||
}
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrassA = "savanna_shrubs_a_wetseason";
|
||||
const tGrassB = "savanna_shrubs_a";
|
||||
@ -91,7 +92,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -141,7 +142,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
stayClasses(clWater, 1),
|
||||
scaleByMapSize(400, 1000),
|
||||
100);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -160,7 +161,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clWater, 1, clHill, 0, clDirt, 5, clPlayer, 8),
|
||||
scaleByMapSize(15, 45));
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -190,7 +191,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clWater, 0, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1)],
|
||||
scaleByMapSize(4, 16),
|
||||
100);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -199,7 +200,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 1),
|
||||
scaleByMapSize(16, 262),
|
||||
50);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating large decorative rocks");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -213,7 +214,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0),
|
||||
scaleByMapSize(8, 131),
|
||||
50);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating lions");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -272,7 +273,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 20, clHill, 1, clFood, 13),
|
||||
3 * numPlayers,
|
||||
50);
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating rabbits");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -317,14 +318,14 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 10),
|
||||
randIntInclusive(1, 4) * numPlayers + 2,
|
||||
50);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createStragglerTrees(
|
||||
[oToona, oBaobab, oBush, oBush],
|
||||
avoidClasses(clForest, 1, clWater, 1, clHill, 1, clPlayer, 13, clMetal, 4, clRock, 4),
|
||||
clForest,
|
||||
scaleByMapSize(60, 500));
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating small grass tufts");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -332,7 +333,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
0,
|
||||
avoidClasses(clWater, 2, clPlayer, 13, clDirt, 0),
|
||||
scaleByMapSize(13, 200));
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -343,7 +344,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
0,
|
||||
avoidClasses(clWater, 3, clPlayer, 13, clDirt, 1, clForest, 0),
|
||||
scaleByMapSize(13, 200));
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -408,5 +409,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.44);
|
||||
setPPBloom(0.3);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
Engine.LoadLibrary("heightmap");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrove = "temp_grass_plants";
|
||||
const tPath = "road_rome_a";
|
||||
@ -267,7 +268,7 @@ Engine.LoadLibrary("heightmap");
|
||||
|
||||
rescaleHeightmap(heightRange.min, heightRange.max);
|
||||
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
const heighLimits = [
|
||||
// 0 Deep water
|
||||
@ -531,7 +532,7 @@ Engine.LoadLibrary("heightmap");
|
||||
|
||||
const [playerIDs, playerPosition] = groupPlayersCycle(
|
||||
getStartLocationsByHeightmap({ "min": heighLimits[4], "max": heighLimits[5] }, 1000, 30));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Smoothing player locations");
|
||||
for (const position of playerPosition)
|
||||
@ -557,7 +558,7 @@ Engine.LoadLibrary("heightmap");
|
||||
new SmoothingPainter(5, 1, 1),
|
||||
new NearTileClassConstraint(clPath, 5));
|
||||
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Determining resource locations");
|
||||
const avoidPoints = playerPosition.map(pos => pos.clone());
|
||||
@ -569,7 +570,7 @@ Engine.LoadLibrary("heightmap");
|
||||
},
|
||||
avoidPoints,
|
||||
clPath);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
/**
|
||||
* Divide tiles in areas by height and avoid paths
|
||||
@ -610,7 +611,7 @@ Engine.LoadLibrary("heightmap");
|
||||
g_Map.placeEntityPassable(pickRandom(selectedBiome.entity), 0,
|
||||
randomPositionOnTile(point), randomAngle());
|
||||
}
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Placing players");
|
||||
if (isNomad())
|
||||
@ -640,5 +641,5 @@ Engine.LoadLibrary("heightmap");
|
||||
placeCamp(pos);
|
||||
}
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -133,7 +134,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
g_Map.log("Creating lakes");
|
||||
const numLakes = Math.round(scaleByMapSize(1, 4) * numPlayers);
|
||||
@ -147,7 +148,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clPlayer, 2, clWater, 20),
|
||||
numLakes
|
||||
);
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Creating reeds");
|
||||
const group = new SimpleGroup(
|
||||
@ -158,7 +159,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
numLakes, 100,
|
||||
waterAreas
|
||||
);
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating fish");
|
||||
createObjectGroupsByAreas(
|
||||
@ -172,14 +173,14 @@ Engine.LoadLibrary("rmbiome");
|
||||
50,
|
||||
waterAreas
|
||||
);
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
createBumps(avoidClasses(clWater, 2, clPlayer, 0));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
createHills([tCliff, tCliff, tHill], avoidClasses(clPlayer, 2, clWater, 5, clHill, 15), clHill,
|
||||
scaleByMapSize(1, 4) * numPlayers);
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(...rBiomeTreeCount(1));
|
||||
createDefaultForests(
|
||||
@ -187,7 +188,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clPlayer, 1, clWater, 3, clForest, 17, clHill, 1),
|
||||
clForest,
|
||||
forestTrees);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -197,7 +198,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 0),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
createLayeredPatches(
|
||||
@ -207,7 +208,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 0),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -225,7 +226,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, scaleByMapSize(15, 25), clHill, 1, clMetal, 10)
|
||||
);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -243,7 +244,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapAreaAbsolute(13)
|
||||
],
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -256,7 +257,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 1, clHill, 1, clFood, 20),
|
||||
clFood);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -267,14 +268,14 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clWater, 3, clForest, 0, clPlayer, 20, clHill, 1, clFood, 10),
|
||||
clFood);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oOak, oOakLarge, oPine, oApple],
|
||||
avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 1, clMetal, 6, clRock, 6),
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clWater, 4, clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
@ -290,5 +291,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setFogThickness(0.25);
|
||||
setFogFactor(0.4);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -226,7 +227,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
paintTerrainBasedOnHeight(3.1, 29, 0, tCliff);
|
||||
paintTileClassBasedOnHeight(3.1, 32, 0, clHill2);
|
||||
@ -247,7 +248,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -299,7 +300,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clMetal
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
let planetm = 1;
|
||||
|
||||
@ -334,7 +335,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(200, 800), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -364,7 +365,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -391,5 +392,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clHill2, 4, clFood, 2)
|
||||
]);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -103,7 +104,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(clLand)
|
||||
]);
|
||||
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
paintTerrainBasedOnHeight(3, 4, 3, tMainTerrain);
|
||||
paintTerrainBasedOnHeight(1, 3, 0, tShore);
|
||||
@ -136,7 +137,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
createBumps([avoidClasses(clPlayer, 10), stayClasses(clLand, 5)]);
|
||||
|
||||
@ -158,7 +159,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -176,7 +177,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12), stayClasses(clLand, 5)],
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -200,7 +201,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
]
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
// create decoration
|
||||
let planetm = 1;
|
||||
@ -225,7 +226,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
[avoidClasses(clForest, 0, clPlayer, 0, clHill, 0), stayClasses(clLand, 5)]);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -259,7 +260,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clLand, 2, clFood, 20),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -280,5 +281,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setWaterWaviness(1.0);
|
||||
setWaterType("ocean");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -180,7 +181,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aBush1
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
|
||||
|
||||
@ -191,7 +192,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
if (randBool())
|
||||
createHills([tGrass, tCliff, tHill],
|
||||
@ -213,7 +214,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -224,7 +225,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating stone mines in the middle");
|
||||
createObjectGroups(
|
||||
@ -253,7 +254,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
0.9 // less available area -> slightly less metal
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -280,7 +281,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clRock, 6,
|
||||
clMetal, 6));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -333,7 +334,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clMetal, 6),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
createStragglerTrees(
|
||||
[oDatePalm, oSDatePalm, oCarob, oFanPalm, oPoplar, oCypress],
|
||||
@ -377,5 +378,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setWaterType("ocean");
|
||||
setWaterMurkiness(0.49);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrass = ["medit_grass_field", "medit_grass_field_b", "temp_grass_c"];
|
||||
const tLushGrass = ["medit_grass_field", "medit_grass_field_a"];
|
||||
@ -219,7 +220,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
}
|
||||
}
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Determining player locations");
|
||||
const playerIDs = sortAllPlayers();
|
||||
@ -267,7 +268,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// Sufficient starting trees around, no decoratives
|
||||
});
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -361,7 +362,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
return undefined;
|
||||
}
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating mines");
|
||||
for (const mine of [eMetalMine, eStoneMine])
|
||||
@ -426,7 +427,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(350, 2500),
|
||||
100);
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -500,7 +501,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(100, 600),
|
||||
50);
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating animals");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -524,7 +525,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(50, 150),
|
||||
100);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
placePlayersNomad(clPlayer, avoidClasses(clWater, 4, clForest, 1, clBaseResource, 4, clCliffs, 4));
|
||||
|
||||
@ -541,5 +542,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterWaviness(2.0);
|
||||
setWaterType("ocean");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tOceanRockDeep = "medit_sea_coral_deep";
|
||||
const tOceanCoral = "medit_sea_coral_plants";
|
||||
@ -168,7 +169,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreasInAreas(
|
||||
@ -178,7 +179,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(25, 75), 15,
|
||||
areas);
|
||||
|
||||
Engine.SetProgress(34);
|
||||
yield 34;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreasInAreas(
|
||||
@ -192,7 +193,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(5, 30), 15,
|
||||
areas);
|
||||
|
||||
Engine.SetProgress(38);
|
||||
yield 38;
|
||||
|
||||
paintTileClassBasedOnHeight(-Infinity, 0, Elevation_ExcludeMin_ExcludeMax, clWater);
|
||||
|
||||
@ -215,7 +216,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(10, 64),
|
||||
20,
|
||||
areas);
|
||||
Engine.SetProgress(42);
|
||||
yield 42;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -227,7 +228,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 5, clRock, 6)],
|
||||
scaleByMapSize(4, 16), 200, areas
|
||||
);
|
||||
Engine.SetProgress(46);
|
||||
yield 46;
|
||||
|
||||
g_Map.log("Creating small stone mines");
|
||||
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2, 5, 1, 3)], true, clRock);
|
||||
@ -235,7 +236,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 5, clRock, 6)],
|
||||
scaleByMapSize(4, 16), 200, areas
|
||||
);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1, 1, 0, 4)], true, clMetal);
|
||||
@ -243,7 +244,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 5, clMetal, 6, clRock, 6)],
|
||||
scaleByMapSize(4, 16), 200, areas
|
||||
);
|
||||
Engine.SetProgress(54);
|
||||
yield 54;
|
||||
|
||||
g_Map.log("Creating shrub patches");
|
||||
for (const size of [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)])
|
||||
@ -257,7 +258,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(4, 16),
|
||||
20,
|
||||
areas);
|
||||
Engine.SetProgress(58);
|
||||
yield 58;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const size of [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)])
|
||||
@ -271,7 +272,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(4, 16),
|
||||
20,
|
||||
areas);
|
||||
Engine.SetProgress(62);
|
||||
yield 62;
|
||||
|
||||
g_Map.log("Creating straggler trees");
|
||||
for (const tree of [oCarob, oBeech, oLombardyPoplar, oLombardyPoplar, oPine])
|
||||
@ -289,7 +290,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clHill, 1),
|
||||
scaleByMapSize(2, 38), 50, areas
|
||||
);
|
||||
Engine.SetProgress(66);
|
||||
yield 66;
|
||||
|
||||
g_Map.log("Create straggler cypresses");
|
||||
group = new SimpleGroup(
|
||||
@ -308,7 +309,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clHill, 1),
|
||||
scaleByMapSize(5, 75), 50, areas
|
||||
);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Create straggler date palms");
|
||||
group = new SimpleGroup(
|
||||
@ -327,7 +328,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clHill, 1),
|
||||
scaleByMapSize(5, 75), 50, areas
|
||||
);
|
||||
Engine.SetProgress(74);
|
||||
yield 74;
|
||||
|
||||
g_Map.log("Creating rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -341,7 +342,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 0, clCity, 0),
|
||||
scaleByMapSize(30, 180), 50
|
||||
);
|
||||
Engine.SetProgress(78);
|
||||
yield 78;
|
||||
|
||||
g_Map.log("Creating deer");
|
||||
group = new SimpleGroup(
|
||||
@ -352,7 +353,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 5, clForest, 1, clHill, 1, clCity, 10, clMetal, 6, clRock, 4, clFood, 8),
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(82);
|
||||
yield 82;
|
||||
|
||||
g_Map.log("Creating berry bushes");
|
||||
group = new SimpleGroup([new SimpleObject(oBerryBush, 5, 7, 0, 3)], true, clFood);
|
||||
@ -360,7 +361,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2, clForest, 1, clHill, 1, clCity, 10, clMetal, 6, clRock, 4, clFood, 8),
|
||||
1.5 * numPlayers, 100
|
||||
);
|
||||
Engine.SetProgress(86);
|
||||
yield 86;
|
||||
|
||||
g_Map.log("Creating Fish");
|
||||
group = new SimpleGroup([new SimpleObject(oFish, 1, 1, 0, 3)], true, clFood);
|
||||
@ -368,7 +369,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[stayClasses(clWater, 1), avoidClasses(clFood, 8)],
|
||||
scaleByMapSize(40, 200), 100
|
||||
);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating Whales");
|
||||
group = new SimpleGroup([new SimpleObject(oWhale, 1, 1, 0, 3)], true, clFood);
|
||||
@ -376,7 +377,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[stayClasses(clWater, 1), avoidClasses(clFood, 8, clPlayer, 4, clIsland, 4)],
|
||||
scaleByMapSize(10, 40), 100
|
||||
);
|
||||
Engine.SetProgress(94);
|
||||
yield 94;
|
||||
|
||||
g_Map.log("Creating shipwrecks");
|
||||
group = new SimpleGroup([new SimpleObject(oShipwreck, 1, 1, 0, 3)], true, clFood);
|
||||
@ -384,7 +385,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[stayClasses(clWater, 1), avoidClasses(clFood, 8)],
|
||||
scaleByMapSize(6, 16), 100
|
||||
);
|
||||
Engine.SetProgress(98);
|
||||
yield 98;
|
||||
|
||||
g_Map.log("Creating shipwreck debris");
|
||||
group = new SimpleGroup([new SimpleObject(oShipDebris, 1, 2, 0, 4)], true, clFood);
|
||||
@ -392,7 +393,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[stayClasses(clWater, 1), avoidClasses(clFood, 8)],
|
||||
scaleByMapSize(10, 20), 100
|
||||
);
|
||||
Engine.SetProgress(99);
|
||||
yield 99;
|
||||
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(
|
||||
@ -411,5 +412,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterWaviness(3.0);
|
||||
setWaterType("ocean");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,8 +1,9 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
const day = g_MapSettings.Daytime !== undefined ? g_MapSettings.Daytime == "day" : randBool(2/3);
|
||||
const day = mapSettings.Daytime !== undefined ? mapSettings.Daytime == "day" : randBool(2/3);
|
||||
|
||||
// Spawn ships away from the shoreline, but patrol close to the shoreline
|
||||
const triggerPointShipSpawn = "trigger/trigger_point_A";
|
||||
@ -779,7 +780,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clPath, 1),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
createStragglerTrees(
|
||||
treeTypes,
|
||||
@ -802,7 +803,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
stragglerTrees * 7);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating animals on islands");
|
||||
createFood(
|
||||
@ -822,7 +823,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(98);
|
||||
yield 98;
|
||||
|
||||
g_Map.log("Creating treasures");
|
||||
createObjectGroupsByAreas(
|
||||
@ -1041,5 +1042,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterMurkiness(0.97);
|
||||
setWaterHeight(21);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const templateStone = "gaia/rock/temperate_small";
|
||||
const templateStoneMine = "gaia/rock/temperate_large";
|
||||
@ -119,7 +120,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Vector2D.add(mapCenter, new Vector2D(randFloat(minPlayerRadius, maxPlayerRadius), 0)
|
||||
.rotate(-playerAngle[i]).round());
|
||||
}
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -158,7 +159,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"count": 2
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Painting paths");
|
||||
const pathBlending = numPlayers <= 4;
|
||||
@ -178,7 +179,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clBaseResource, 4));
|
||||
}
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Placing expansion resources");
|
||||
for (let i = 0; i < numPlayers; ++i)
|
||||
@ -204,7 +205,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new TileClassPainter(clHill)
|
||||
]);
|
||||
}
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Placing temple");
|
||||
g_Map.placeEntityPassable(templateTemple, 0, mapCenter, randomAngle());
|
||||
@ -255,9 +256,9 @@ Engine.LoadLibrary("rmgen-common");
|
||||
const hVarHills = 5 * (1 + Math.sin(x / 10) * Math.sin(z / 10));
|
||||
g_Map.setHeight(position, g_Map.getHeight(position) + hVarMiddleHill + hVarHills + 1);
|
||||
}
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
placePlayersNomad(clPlayer, avoidClasses(clForest, 1, clBaseResource, 4, clHill, 4));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -123,7 +124,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightLand, 4),
|
||||
new TileClassPainter(clIsland)
|
||||
].concat(isNomad() ? [] : [new TileClassPainter(clPlayerIsland)]));
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
g_Map.log("Creating islands");
|
||||
createAreas(
|
||||
@ -135,7 +136,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clIsland, 6),
|
||||
scaleByMapSize(25, 80));
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
// Notice that the Constraints become much shorter when avoiding water
|
||||
// rather than staying on islands
|
||||
@ -144,7 +145,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(clWater),
|
||||
new HeightConstraint(-Infinity, heightShoreLower));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating undersea bumps");
|
||||
createAreas(
|
||||
@ -152,7 +153,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightSeaBump, 3),
|
||||
avoidClasses(clIsland, 2),
|
||||
scaleByMapSize(10, 50));
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Creating volcano");
|
||||
const areasVolcano = createAreas(
|
||||
@ -170,7 +171,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
200);
|
||||
|
||||
createBumps(avoidClasses(clWater, 0, clPlayer, 10, clVolcano, 0));
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating large bumps");
|
||||
createAreas(
|
||||
@ -178,7 +179,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new SmoothElevationPainter(ELEVATION_MODIFY, heightOffsetBump, 3),
|
||||
avoidClasses(clWater, 2, clVolcano, 0, clPlayer, 10),
|
||||
scaleByMapSize(20, 200));
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreas(
|
||||
@ -190,7 +191,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clWater, 1, clPlayer, 12, clVolcano, 0, clHill, 15),
|
||||
scaleByMapSize(4, 13));
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Painting corals");
|
||||
paintTerrainBasedOnHeight(-Infinity, heightCoralsLower, Elevation_IncludeMin_ExcludeMax, tWater);
|
||||
@ -212,7 +213,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new HeightPlacer(Elevation_IncludeMin_ExcludeMax, heightShoreUpper, heightLand),
|
||||
new TerrainPainter(tShoreUpper),
|
||||
avoidClasses(clVolcano, 0));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -222,7 +223,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 4, clVolcano, 2, clForest, 1, clDirt, 2, clGrass, 2, clHill, 1),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -250,7 +251,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aBush1
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -271,7 +272,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clRock, 4),
|
||||
clRock,
|
||||
scaleByMapSize(4, 16));
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createMines(
|
||||
@ -289,7 +290,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clRock, 4),
|
||||
clMetal,
|
||||
scaleByMapSize(4, 16));
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clWater, 12, clVolcano, 4, clMetal, 4, clRock, 4, clHill, 4));
|
||||
@ -308,7 +309,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
forestTrees,
|
||||
200);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -335,7 +336,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clRock, 4),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(87);
|
||||
yield 87;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -480,7 +481,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
20,
|
||||
areasVolcano);
|
||||
}
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
setSkySet("cumulus");
|
||||
setSunColor(0.87, 0.78, 0.49);
|
||||
@ -498,5 +499,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.51);
|
||||
setPPBloom(0.12);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -151,7 +152,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
const heightSeaGround = -6;
|
||||
const heightWaterLevel = 0;
|
||||
const heightShore = 0.5;
|
||||
const heightOffsetPath = -g_MapSettings.Size / 80;
|
||||
const heightOffsetPath = -mapSettings.Size / 80;
|
||||
const minHeight = -1;
|
||||
const maxHeight = 2;
|
||||
|
||||
@ -185,7 +186,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clTemple, 11, clCliff, 0, clStatue, 2, clSoldier, 3, clTower, 2, clTreasure, 1);
|
||||
|
||||
g_Map.LoadHeightmapImage("elephantine.png", minHeight, maxHeight);
|
||||
Engine.SetProgress(3);
|
||||
yield 3;
|
||||
|
||||
g_Map.log("Lowering sea ground");
|
||||
createArea(
|
||||
@ -195,13 +196,13 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new TileClassPainter(clWater)
|
||||
],
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(6);
|
||||
yield 6;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(1, scaleByMapSize(0.1, 0.5), 1));
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
g_Map.log("Marking islands");
|
||||
const areaIsland = createArea(
|
||||
@ -217,21 +218,21 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Infinity),
|
||||
new TileClassPainter(clIsland),
|
||||
avoidClasses(clPlayer, 0, clWater, 0));
|
||||
Engine.SetProgress(13);
|
||||
yield 13;
|
||||
|
||||
g_Map.log("Painting islands");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TerrainPainter(tGrass),
|
||||
stayClasses(clIsland, 0));
|
||||
Engine.SetProgress(16);
|
||||
yield 16;
|
||||
|
||||
g_Map.log("Painting water and shoreline");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TerrainPainter(tWater),
|
||||
new HeightConstraint(-Infinity, heightShore));
|
||||
Engine.SetProgress(19);
|
||||
yield 19;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": playerPlacementRiver(riverAngle, fractionToTiles(0.62)),
|
||||
@ -262,7 +263,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": pickRandom(aBushesDesert)
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(22);
|
||||
yield 22;
|
||||
|
||||
g_Map.log("Creating temple");
|
||||
const groupTemple = createObjectGroupsByAreas(
|
||||
@ -273,7 +274,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
1,
|
||||
200,
|
||||
[areaIsland]);
|
||||
Engine.SetProgress(34);
|
||||
yield 34;
|
||||
|
||||
g_Map.log("Creating pyramid");
|
||||
const groupPyramid = createObjectGroupsByAreas(
|
||||
@ -288,7 +289,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
1,
|
||||
200,
|
||||
[areaIsland]);
|
||||
Engine.SetProgress(37);
|
||||
yield 37;
|
||||
|
||||
g_Map.log("Painting city patches");
|
||||
const cityCenters = [
|
||||
@ -303,7 +304,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new DiskPlacer(cityCenter.radius, cityCenter.pos),
|
||||
new LayeredPainter([tRoadWildIsland, tRoadIsland], [2]),
|
||||
stayClasses(clIsland, 2)));
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Painting city path");
|
||||
if (cityCenters.length == 2)
|
||||
@ -314,11 +315,11 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new SmoothElevationPainter(ELEVATION_MODIFY, heightOffsetPath, 4),
|
||||
new TileClassPainter(clPath)
|
||||
]);
|
||||
Engine.SetProgress(42);
|
||||
yield 42;
|
||||
|
||||
createBumps(avoidClasses(clPlayer, 10, clWater, 2, clTemple, 10, clPath, 1), scaleByMapSize(10, 500),
|
||||
1, 8, 4, 0.2, 3);
|
||||
Engine.SetProgress(43);
|
||||
yield 43;
|
||||
|
||||
g_Map.log("Marking cliffs");
|
||||
createArea(
|
||||
@ -328,7 +329,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2),
|
||||
new SlopeConstraint(2, Infinity)
|
||||
]);
|
||||
Engine.SetProgress(44);
|
||||
yield 44;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -342,7 +343,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 4, clCliff, 4, clPlayer, 20, clRock, 10, clPath, 1),
|
||||
clRock,
|
||||
scaleByMapSize(6, 24));
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createMines(
|
||||
@ -356,7 +357,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 4, clCliff, 4, clPlayer, 20, clMetal, 10, clRock, 5, clPath, 1),
|
||||
clMetal,
|
||||
scaleByMapSize(6, 24));
|
||||
Engine.SetProgress(46);
|
||||
yield 46;
|
||||
|
||||
g_Map.log("Creating kushite towers");
|
||||
createObjectGroups(
|
||||
@ -370,7 +371,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
scaleByMapSize(4, 12),
|
||||
200);
|
||||
Engine.SetProgress(49);
|
||||
yield 49;
|
||||
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(400, 3000, 0.7);
|
||||
createForests(
|
||||
@ -378,7 +379,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidCollisions, avoidClasses(clIsland, 0, clPlayer, 20, clForest, 18, clWater, 2)],
|
||||
clForest,
|
||||
forestTrees / 2);
|
||||
Engine.SetProgress(52);
|
||||
yield 52;
|
||||
|
||||
createForests(
|
||||
[
|
||||
@ -391,7 +392,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[stayClasses(clIsland, 0), avoidClasses(clForest, 15, clWater, 2), avoidCollisions],
|
||||
clForest,
|
||||
forestTrees / 2);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createPatches(
|
||||
@ -400,7 +401,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 0, clIsland, 0, clForest, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(5, 30),
|
||||
clDirt);
|
||||
Engine.SetProgress(58);
|
||||
yield 58;
|
||||
|
||||
g_Map.log("Creating statues");
|
||||
createObjectGroupsByAreas(
|
||||
@ -414,7 +415,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(2, 10),
|
||||
400,
|
||||
[areaIsland]);
|
||||
Engine.SetProgress(61);
|
||||
yield 61;
|
||||
|
||||
g_Map.log("Creating treasure");
|
||||
createObjectGroupsByAreas(
|
||||
@ -424,7 +425,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(4, 10),
|
||||
100,
|
||||
areaCityPatch);
|
||||
Engine.SetProgress(62);
|
||||
yield 62;
|
||||
|
||||
g_Map.log("Creating hero");
|
||||
createObjectGroups(
|
||||
@ -437,7 +438,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
1,
|
||||
500);
|
||||
Engine.SetProgress(64);
|
||||
yield 64;
|
||||
|
||||
g_Map.log("Creating soldiers");
|
||||
createObjectGroups(
|
||||
@ -453,7 +454,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
scaleByMapSize(12, 60),
|
||||
200);
|
||||
Engine.SetProgress(67);
|
||||
yield 67;
|
||||
|
||||
g_Map.log("Creating berries");
|
||||
createObjectGroups(
|
||||
@ -462,7 +463,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidCollisions,
|
||||
scaleByMapSize(4, 12),
|
||||
250);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating rhinos");
|
||||
createObjectGroups(
|
||||
@ -471,7 +472,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidCollisions,
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
Engine.SetProgress(73);
|
||||
yield 73;
|
||||
|
||||
g_Map.log("Creating warthog");
|
||||
createObjectGroups(
|
||||
@ -480,7 +481,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidCollisions,
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
Engine.SetProgress(77);
|
||||
yield 77;
|
||||
|
||||
g_Map.log("Creating gazelles");
|
||||
createObjectGroups(
|
||||
@ -489,7 +490,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clIsland, 1), avoidCollisions],
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating giraffes");
|
||||
createObjectGroups(
|
||||
@ -502,7 +503,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidCollisions,
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
Engine.SetProgress(83);
|
||||
yield 83;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -517,7 +518,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidCollisions,
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
Engine.SetProgress(87);
|
||||
yield 87;
|
||||
}
|
||||
|
||||
g_Map.log("Creating elephants");
|
||||
@ -531,7 +532,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidCollisions,
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
Engine.SetProgress(88);
|
||||
yield 88;
|
||||
|
||||
g_Map.log("Creating crocodiles");
|
||||
createObjectGroups(
|
||||
@ -543,12 +544,12 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
Engine.SetProgress(89);
|
||||
yield 89;
|
||||
|
||||
g_Map.log("Creating hawk");
|
||||
for (let i = 0; i < scaleByMapSize(0, 2); ++i)
|
||||
g_Map.placeEntityAnywhere(oHawk, 0, mapCenter, randomAngle());
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating fish");
|
||||
createObjectGroups(
|
||||
@ -557,41 +558,41 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[stayClasses(clWater, 8), avoidClasses(clFood, 16)],
|
||||
scaleByMapSize(15, 80),
|
||||
50);
|
||||
Engine.SetProgress(91);
|
||||
yield 91;
|
||||
|
||||
createStragglerTrees(
|
||||
[oAcacia],
|
||||
avoidCollisions,
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
Engine.SetProgress(93);
|
||||
yield 93;
|
||||
|
||||
placePlayersNomad(clPlayer, [avoidCollisions, avoidClasses(clIsland, 0)]);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
createDecoration(
|
||||
aBushesDesert.map(bush => [new SimpleObject(bush, 0, 3, 2, 4)]),
|
||||
aBushesDesert.map(bush => scaleByMapSize(20, 150) * randIntInclusive(1, 3)),
|
||||
[avoidClasses(clIsland, 0), avoidCollisions]);
|
||||
Engine.SetProgress(96);
|
||||
yield 96;
|
||||
|
||||
createDecoration(
|
||||
aBushesIslands.map(bush => [new SimpleObject(bush, 0, 4, 2, 4)]),
|
||||
aBushesIslands.map(bush => scaleByMapSize(20, 150) * randIntInclusive(1, 3)),
|
||||
[stayClasses(clIsland, 0), avoidCollisions]);
|
||||
Engine.SetProgress(97);
|
||||
yield 97;
|
||||
|
||||
createDecoration(
|
||||
[[new SimpleObject(aRock, 0, 4, 2, 4)]],
|
||||
[[scaleByMapSize(80, 500)]],
|
||||
[avoidClasses(clIsland, 0), avoidCollisions]);
|
||||
Engine.SetProgress(98);
|
||||
yield 98;
|
||||
|
||||
createDecoration(
|
||||
aBushesShoreline.map(bush => [new SimpleObject(bush, 0, 3, 2, 4)]),
|
||||
aBushesShoreline.map(bush => scaleByMapSize(200, 1000)),
|
||||
[new HeightConstraint(heightWaterLevel, heightShore), avoidCollisions]);
|
||||
Engine.SetProgress(99);
|
||||
yield 99;
|
||||
|
||||
g_Environment = {
|
||||
"SkySet": "cloudless",
|
||||
@ -648,5 +649,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
};
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -14,7 +15,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land));
|
||||
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
const teamsArray = getTeamsArray();
|
||||
const startAngle = randomAngle();
|
||||
@ -26,7 +27,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
startAngle,
|
||||
undefined),
|
||||
false);
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
// Change the starting angle and add the players again
|
||||
let rotation = Math.PI;
|
||||
@ -45,7 +46,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
startAngle + rotation,
|
||||
undefined),
|
||||
false);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -92,7 +93,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -125,7 +126,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -179,7 +180,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["few", "normal", "many", "tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -234,7 +235,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": g_AllAmounts
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
placePlayersNomad(
|
||||
g_TileClasses.player,
|
||||
@ -246,5 +247,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_TileClasses.mountain, 4,
|
||||
g_TileClasses.animals, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tPrimary = "temp_grass_long";
|
||||
const tGrass = ["temp_grass", "temp_grass", "temp_grass_d"];
|
||||
@ -91,7 +92,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
paintRiver({
|
||||
"parallel": false,
|
||||
@ -112,7 +113,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
});
|
||||
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
createTributaryRivers(
|
||||
startAngle,
|
||||
@ -128,14 +129,14 @@ Engine.LoadLibrary("rmgen-common");
|
||||
paintTerrainBasedOnHeight(-5, 1, 1, tWater);
|
||||
paintTerrainBasedOnHeight(1, heightLand, 1, tShore);
|
||||
paintTileClassBasedOnHeight(-6, 0.5, 1, clWater);
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
createBumps(avoidClasses(clWater, 5, clPlayer, 20));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
createHills([tCliff, tCliff, tHill], avoidClasses(clPlayer, 20, clHill, 15, clWater, 5), clHill,
|
||||
scaleByMapSize(1, 4) * numPlayers);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(500, 3000, 0.7);
|
||||
createForests(
|
||||
@ -143,7 +144,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 20, clForest, 17, clHill, 0, clWater, 6),
|
||||
clForest,
|
||||
forestTrees);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -162,7 +163,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 6),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -184,7 +185,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 2),
|
||||
clMetal
|
||||
);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -270,5 +271,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clWater, 4, clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tHillDark = "cliff volcanic light";
|
||||
const tHillMedium1 = "ocean_rock_a";
|
||||
@ -109,7 +110,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
]);
|
||||
}
|
||||
|
||||
Engine.SetProgress(8);
|
||||
yield 8;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -136,10 +137,10 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
createVolcano(mapCenter, clHill, tHillVeryDark, undefined, false, ELEVATION_SET);
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating lakes");
|
||||
createAreas(
|
||||
@ -151,12 +152,12 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clPlayer, 0, clHill, 2, clWater, 12),
|
||||
Math.round(scaleByMapSize(6, 12)));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
createBumps(avoidClasses(clPlayer, 0, clHill, 0), scaleByMapSize(50, 300), 1, 10, 3, 0,
|
||||
scaleByMapSize(4, 10));
|
||||
paintTileClassBasedOnHeight(10, 100, 0, clBumps);
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreas(
|
||||
@ -168,7 +169,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clPlayer, 0, clHill, 15, clWater, 2, clBaseResource, 2),
|
||||
scaleByMapSize(2, 8) * numPlayers);
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(1200, 3000, 0.7);
|
||||
@ -191,7 +192,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clHill, 0,
|
||||
clWater, 2),
|
||||
num);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating hill patches");
|
||||
for (const patchSize of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -216,7 +217,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clPlayer, 0),
|
||||
scaleByMapSize(20, 80));
|
||||
}
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
createLayeredPatches(
|
||||
@ -232,7 +233,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clPlayer, 0),
|
||||
scaleByMapSize(3, 8),
|
||||
clDirt);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -255,7 +256,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
100,
|
||||
100);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating small stone quarries");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -272,7 +273,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
100,
|
||||
100);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -290,7 +291,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
100,
|
||||
100);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -311,7 +312,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
500,
|
||||
1);
|
||||
}
|
||||
Engine.SetProgress(67);
|
||||
yield 67;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -340,7 +341,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clPlayer, 0,
|
||||
clHill, 0)
|
||||
]);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -362,7 +363,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clPlayer, 0,
|
||||
clHill, 0
|
||||
));
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -382,7 +383,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clFood, 20)
|
||||
],
|
||||
clFood);
|
||||
Engine.SetProgress(78);
|
||||
yield 78;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -402,7 +403,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
stayClasses(clForest, 2)
|
||||
],
|
||||
clFood);
|
||||
Engine.SetProgress(81);
|
||||
yield 81;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -416,7 +417,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 1, clForest, 0, clPlayer, 0, clHill, 1, clFood, 10)
|
||||
],
|
||||
clFood);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree, oTree2, oTree3, oTree4, oBush],
|
||||
@ -433,7 +434,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating straggler bushes");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -453,7 +454,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clRock, 4)
|
||||
],
|
||||
stragglerTrees);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating rain drops");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -464,7 +465,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
0,
|
||||
avoidClasses(clRain, 5),
|
||||
scaleByMapSize(80, 250));
|
||||
Engine.SetProgress(98);
|
||||
yield 98;
|
||||
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clWater, 4, clHill, 4, clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
@ -478,5 +479,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
setPPEffect("hdr");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,8 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
if (g_MapSettings.Biome)
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
setBiome("fields_of_meroe/dry");
|
||||
@ -136,7 +137,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
g_Map.log("Creating cataracts");
|
||||
for (const x of [fractionToTiles(randFloat(0.15, 0.25)), fractionToTiles(randFloat(0.75, 0.85))])
|
||||
@ -208,7 +209,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"count": 3
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Getting random coordinates for Kushite settlements");
|
||||
const kushiteTownPositions = [];
|
||||
@ -247,7 +248,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clPlayer, 20, clForest, 5, clKushiteVillages, 30, clRiver, 10),
|
||||
scaleByMapSize(1, 7),
|
||||
200);
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -266,7 +267,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clPlayer, 3, clRiver, 20, clDunes, 10, clKushiteVillages, 10),
|
||||
scaleByMapSize(1, 3) * numPlayers * 3);
|
||||
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(400, 2000, 0.7);
|
||||
createForests(
|
||||
@ -274,7 +275,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clPlayer, 20, clForest, 20, clDunes, 2, clRiver, 20, clKushiteVillages, 10),
|
||||
clForest,
|
||||
forestTrees);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -291,7 +292,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TerrainPainter(tFarmland),
|
||||
avoidClasses(clDunes, 3, clForest, 3, clPlayer, 5, clKushiteVillages, 5, clRiver, 10),
|
||||
scaleByMapSize(1, 10));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createObjectGroups(
|
||||
@ -362,7 +363,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest, 4),
|
||||
scaleByMapSize(2, 8),
|
||||
50);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating gazelle");
|
||||
createObjectGroups(
|
||||
@ -424,7 +425,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[stayClasses(clRiver, 4), avoidClasses(clFood, 16, clCataract, 10)],
|
||||
scaleByMapSize(15, 80),
|
||||
50);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createStragglerTrees(
|
||||
[oBaobab, oAcacia],
|
||||
@ -460,7 +461,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
stragglerTrees * 10);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating reeds on the shore");
|
||||
createObjectGroups(
|
||||
@ -506,7 +507,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clForest, 0, clPlayer, 0, clDunes, 0, clRiver, 15, clMetal, 4, clRock, 4),
|
||||
scaleByMapSize(50, 500),
|
||||
50);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating rain drops");
|
||||
if (aRain)
|
||||
@ -515,7 +516,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
0,
|
||||
avoidClasses(clRain, 5),
|
||||
scaleByMapSize(60, 200));
|
||||
Engine.SetProgress(98);
|
||||
yield 98;
|
||||
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(
|
||||
@ -542,5 +543,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.6);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -120,7 +121,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating central island");
|
||||
createArea(
|
||||
@ -231,7 +232,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
clForest,
|
||||
stragglerTreesMainIsland);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
const numb = currentBiome() == "generic/savanna" ? 3 : 1;
|
||||
@ -275,7 +276,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -288,7 +289,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
const planetm = currentBiome() == "generic/india" ? 8 : 1;
|
||||
createDecoration(
|
||||
@ -331,5 +332,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setSkySet(pickRandom(["cloudless", "cumulus", "overcast"]));
|
||||
setWaterMurkiness(0.4);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrass = ["temperate_grass_04", "temperate_grass_03", "temperate_grass_04"];
|
||||
const tForestFloor = "temperate_forestfloor_01";
|
||||
@ -140,7 +141,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 7, clWater, 20),
|
||||
numLakes);
|
||||
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Creating reeds");
|
||||
createObjectGroupsByAreasDeprecated(
|
||||
@ -151,7 +152,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
numLakes, 100,
|
||||
waterAreas);
|
||||
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Creating fish");
|
||||
createObjectGroupsByAreasDeprecated(
|
||||
@ -164,14 +165,14 @@ Engine.LoadLibrary("rmgen-common");
|
||||
numLakes / 4,
|
||||
50,
|
||||
waterAreas);
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
createBumps(avoidClasses(clWater, 2, clPlayer, 5));
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
createHills([tCliff, tCliff, tHill], avoidClasses(clPlayer, 5, clWater, 5, clHill, 15), clHill,
|
||||
scaleByMapSize(1, 4) * numPlayers);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(500, 2500, 0.7);
|
||||
@ -191,7 +192,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clPlayer, 5, clWater, 3, clForest, 15, clHill, 1),
|
||||
num);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -201,7 +202,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 1),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
createPatches(
|
||||
@ -210,7 +211,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 1),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -223,7 +224,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clWater, 0, clForest, 1, clPlayer, 5, clRock, 10, clHill, 1),
|
||||
clRock);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -232,7 +233,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clMetal,
|
||||
avoidClasses(clWater, 0, clForest, 1, clPlayer, 5, clMetal, 10, clRock, 5, clHill, 1)
|
||||
);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -250,7 +251,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapAreaAbsolute(13)
|
||||
],
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 1, clHill, 0));
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -263,7 +264,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 6, clHill, 1, clFood, 20),
|
||||
clFood);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -275,14 +276,14 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2, clForest, 0, clPlayer, 6, clHill, 1, clFood, 10),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
createStragglerTrees(
|
||||
[oOak, oBeech, oPine],
|
||||
avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 1, clMetal, 6, clRock, 6),
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clWater, 2, clHill, 2, clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
@ -302,5 +303,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPBloom(0.38);
|
||||
setPPEffect("hdr");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -18,12 +19,12 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land));
|
||||
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
// Note: `|| pickRandom(...)` is needed for atlas.
|
||||
const pattern = g_MapSettings.TeamPlacement ||
|
||||
const pattern = mapSettings.TeamPlacement ||
|
||||
pickRandom(["line", "radial", "randomGroup", "stronghold"]);
|
||||
createBases(
|
||||
...playerPlacementByPattern(
|
||||
@ -34,7 +35,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
undefined),
|
||||
g_PlayerbaseTypes[pattern].walls);
|
||||
}
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
const features = [
|
||||
{
|
||||
@ -135,7 +136,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
});
|
||||
|
||||
addElements(shuffleArray(features));
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -168,7 +169,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -223,7 +224,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["few", "normal", "many", "tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -278,7 +279,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": g_AllAmounts
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
placePlayersNomad(
|
||||
g_TileClasses.player,
|
||||
@ -292,5 +293,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_TileClasses.plateau, 4,
|
||||
g_TileClasses.animals, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -229,7 +230,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -247,7 +248,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -278,7 +279,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(400, 2000),
|
||||
100);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
let planetm = 1;
|
||||
|
||||
@ -302,7 +303,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -335,5 +336,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clWater, 4, clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrass = ["medit_grass_field_a", "medit_grass_field_b"];
|
||||
const tForestFloorC = "medit_plants_dirt";
|
||||
@ -117,7 +118,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
paintRiver({
|
||||
"parallel": true,
|
||||
@ -158,7 +159,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -176,7 +177,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clForest, 0, clDirt, 3, clPlayer, 8, clRiver, 1), stayClasses(clLand, 7)],
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -201,7 +202,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
clMetal
|
||||
);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -232,7 +233,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
stayClasses(clShallow, 0));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -266,7 +267,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clLand, 2, clRiver, 1),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oPoplar, oCarob, oApple],
|
||||
@ -298,5 +299,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.51);
|
||||
setPPBloom(0.12);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,10 +2,11 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
if (g_MapSettings.Biome)
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
// TODO: Replace ugly default for atlas by a dropdown
|
||||
@ -113,7 +114,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aRockMedium
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating the gulf");
|
||||
const gulfLakePositions = [
|
||||
@ -196,7 +197,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -214,7 +215,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clLake, 6, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -233,7 +234,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clLake, 2, clForest, 0, clPlayer, scaleByMapSize(15, 25), clHill, 1, clMetal, 10),
|
||||
0.9
|
||||
);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -251,7 +252,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(bushCount.min, bushCount.max)
|
||||
],
|
||||
avoidClasses(clLake, 0, clForest, 0, clPlayer, 5, clHill, 0, clBaseResource, 5));
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -284,7 +285,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clFood);
|
||||
}
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree3],
|
||||
@ -296,5 +297,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clLake, 4, clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -20,7 +21,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land));
|
||||
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
const mapSize = g_Map.getSize();
|
||||
const mapCenter = g_Map.getCenter();
|
||||
@ -35,19 +36,19 @@ Engine.LoadLibrary("rmbiome");
|
||||
startAngle,
|
||||
undefined),
|
||||
true);
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
addCenterLake();
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
if (mapSize >= 192)
|
||||
{
|
||||
addHarbors();
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
}
|
||||
|
||||
addSpines();
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -130,7 +131,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": g_AllAmounts
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -189,7 +190,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
]));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -248,7 +249,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
]));
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -284,7 +285,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
]);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
placePlayersNomad(
|
||||
g_TileClasses.player,
|
||||
@ -299,7 +300,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_TileClasses.mountain, 4,
|
||||
g_TileClasses.animals, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
|
||||
function addCenterLake()
|
||||
{
|
||||
|
@ -18,6 +18,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -45,7 +46,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
const heightmapHellas = convertHeightmap1Dto2D(Engine.LoadHeightmapImage("maps/random/hellas.png"));
|
||||
const biomes = Engine.ReadJSONFile("maps/random/hellas_biomes.json");
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const heightSeaGround = heightScale(-6);
|
||||
const heightReedsMin = heightScale(-2);
|
||||
@ -145,7 +146,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
createArea(
|
||||
new DiskPlacer(fractionToTiles(0.5) - MAP_BORDER_WIDTH, mapCenter),
|
||||
new SmoothingPainter(1, 0.5, 1));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
clCliffs = g_Map.createTileClass();
|
||||
|
||||
@ -188,7 +189,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
g_Map.log("Too few player locations, starting over");
|
||||
}
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -199,7 +200,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new ClumpPlacer(diskArea(playerRadius), 0.95, 0.6, Infinity, position),
|
||||
new SmoothElevationPainter(ELEVATION_SET, g_Map.getHeight(position),
|
||||
playerRadius / 2));
|
||||
Engine.SetProgress(38);
|
||||
yield 38;
|
||||
}
|
||||
|
||||
g_Map.log("Painting lowlands");
|
||||
@ -207,14 +208,14 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new MapBoundsPlacer(),
|
||||
new TerrainPainter(biomes.lowlands.terrains.main),
|
||||
constraintLowlands);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Painting highlands");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TerrainPainter(biomes.highlands.terrains.main),
|
||||
constraintHighlands);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Painting mountains");
|
||||
createArea(
|
||||
@ -224,14 +225,14 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2),
|
||||
constraintMountains
|
||||
]);
|
||||
Engine.SetProgress(48);
|
||||
yield 48;
|
||||
|
||||
g_Map.log("Painting water and shoreline");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TerrainPainter(biomes.water.terrains.main),
|
||||
new HeightConstraint(-Infinity, heightShoreline));
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Painting cliffs");
|
||||
createArea(
|
||||
@ -241,7 +242,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2),
|
||||
new SlopeConstraint(2, Infinity)
|
||||
]);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
for (let i = 0; i < numPlayers; ++i)
|
||||
{
|
||||
@ -287,7 +288,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
// No decoratives
|
||||
});
|
||||
}
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Placing docks");
|
||||
placeDocks(
|
||||
@ -301,7 +302,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clDock, 50), new StaticConstraint(avoidClasses(clPlayer, 30, clCliffs, 8))],
|
||||
0,
|
||||
50);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(600, 4000, 0.7);
|
||||
const biomeTreeRatioHighlands = 0.4;
|
||||
@ -321,7 +322,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
forestTrees * (biome == "highlands" ? biomeTreeRatioHighlands :
|
||||
1 - biomeTreeRatioHighlands));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
const minesStone = [
|
||||
@ -335,7 +336,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clForest, 1, clPlayer, 20, clRock, 18, clCliffs, 2, clWater, 2, clDock, 6)],
|
||||
scaleByMapSize(2, 12),
|
||||
50);
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
const minesMetal = [
|
||||
@ -356,7 +357,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clDock, 6)],
|
||||
scaleByMapSize(2, 12),
|
||||
50);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
for (const biome of ["lowlands", "highlands"])
|
||||
createStragglerTrees(
|
||||
@ -376,7 +377,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
stragglerTrees * (biome == "highlands" ? biomeTreeRatioHighlands * 4 :
|
||||
1 - biomeTreeRatioHighlands));
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -402,7 +403,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
constraintHighlands
|
||||
],
|
||||
clFood);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -428,7 +429,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
constraintLowlands
|
||||
],
|
||||
clFood);
|
||||
Engine.SetProgress(93);
|
||||
yield 93;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -461,7 +462,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[stayClasses(clWater, 8), avoidClasses(clFood, 8, clDock, 6)],
|
||||
scaleByMapSize(15, 50),
|
||||
100);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const biome of ["lowlands", "highlands"])
|
||||
@ -475,7 +476,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
scaleByMapSize(15, 45) / biomes[biome].terrains.patches.length,
|
||||
clDirt);
|
||||
Engine.SetProgress(96);
|
||||
yield 96;
|
||||
|
||||
for (const biome of ["lowlands", "highlands"])
|
||||
{
|
||||
@ -515,7 +516,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 4, clPlayer, 15, clForest, 1, clRock, 4, clMetal, 4),
|
||||
]);
|
||||
}
|
||||
Engine.SetProgress(98);
|
||||
yield 98;
|
||||
|
||||
g_Map.log("Creating temple");
|
||||
createObjectGroups(
|
||||
@ -611,7 +612,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clFood, 2, clCliffs, 2, clWater, 15));
|
||||
Engine.SetProgress(99);
|
||||
yield 99;
|
||||
|
||||
setSkySet("sunny");
|
||||
setSunColor(0.988166, 0.929297, 0.693819);
|
||||
@ -628,5 +629,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPContrast(0.62);
|
||||
setPPBloom(0.12);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -19,7 +20,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land));
|
||||
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
const teamsArray = getTeamsArray();
|
||||
const startAngle = randomAngle();
|
||||
@ -31,10 +32,10 @@ Engine.LoadLibrary("rmbiome");
|
||||
startAngle,
|
||||
undefined),
|
||||
false);
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
placeBarriers();
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -87,7 +88,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["few"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -122,7 +123,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -180,7 +181,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["few", "normal", "many", "tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -238,7 +239,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": g_AllAmounts
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
placePlayersNomad(
|
||||
g_TileClasses.player,
|
||||
@ -253,7 +254,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_TileClasses.mountain, 4,
|
||||
g_TileClasses.animals, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
|
||||
function placeBarriers()
|
||||
{
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -102,7 +103,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
paintRiver({
|
||||
"parallel": true,
|
||||
@ -123,7 +124,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
createTerrain(height < heightShore1 ? tWater : tShore).place(position);
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Marking highlands area");
|
||||
createArea(
|
||||
@ -145,7 +146,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[stayClasses(clWater, 2), avoidClasses(clFood, 3)],
|
||||
numPlayers,
|
||||
50);
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -154,7 +155,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
stayClasses(clHighlands, 1),
|
||||
scaleByMapSize(300, 600));
|
||||
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreas(
|
||||
@ -167,7 +168,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clPlayer, 20, clWater, 5, clHill, 15, clHighlands, 5),
|
||||
scaleByMapSize(1, 4) * numPlayers);
|
||||
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Creating mainland forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(1000, 3500, 0.85);
|
||||
@ -193,7 +194,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clBaseResource, 3,
|
||||
clHighlands, 2),
|
||||
numberOfForests);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
}
|
||||
|
||||
g_Map.log("Creating highland forests");
|
||||
@ -223,7 +224,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
30);
|
||||
}
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -236,7 +237,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 4),
|
||||
scaleByMapSize(15, 45));
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const size of [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)])
|
||||
@ -252,7 +253,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clBaseResource, 6),
|
||||
scaleByMapSize(15, 45));
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -279,7 +280,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(5, 20), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -291,7 +292,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0),
|
||||
scaleByMapSize(16, 262), 50
|
||||
);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -370,7 +371,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 3, clHill, 2, clPlayer, 2, clDirt, 1, clForest, 0),
|
||||
scaleByMapSize(13, 200)
|
||||
);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -387,5 +388,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setWaterWaviness(2.0);
|
||||
setWaterType("ocean");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrass1 = "savanna_grass_a";
|
||||
const tDirt1 = "savanna_dirt_a";
|
||||
@ -75,7 +76,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -116,7 +117,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
paintTerrainBasedOnHeight(1, 2.4, 0, tShore);
|
||||
paintTerrainBasedOnHeight(-8, 1, 2, tWater);
|
||||
paintTileClassBasedOnHeight(-6, 0, 1, clWater);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
for (let i = 0; i < scaleByMapSize(12, 30); ++i)
|
||||
@ -137,7 +138,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 20, clMetal, 10, clRock, 8, clWater, 4),
|
||||
scaleByMapSize(2, 12), 100
|
||||
);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -149,7 +150,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 7, clWater, 1),
|
||||
scaleByMapSize(200, 1200), 1
|
||||
);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating boar");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -228,7 +229,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clPlayer, 20, clFood, 12, clRock, 4, clMetal, 4),
|
||||
randIntInclusive(1, 4) * numPlayers + 2, 50
|
||||
);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating trees");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -270,5 +271,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPContrast(0.57031);
|
||||
setPPBloom(0.34);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const g_InitialMineDistance = 14;
|
||||
const g_InitialTrees = 50;
|
||||
@ -207,7 +208,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
}
|
||||
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating big islands");
|
||||
createAreas(
|
||||
@ -245,7 +246,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(6, 55),
|
||||
1);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
@ -256,7 +257,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
unPaintTileClassBasedOnHeight(-10, 10, 3, clLand);
|
||||
paintTileClassBasedOnHeight(0, 5, 3, clLand);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createBumps(avoidClasses(clPlayer, 20));
|
||||
|
||||
@ -451,7 +452,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
group = new SimpleGroup(
|
||||
@ -478,7 +479,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
setSunElevation(randFloat(1/5, 1/3) * Math.PI);
|
||||
setWaterWaviness(2);
|
||||
|
||||
Engine.SetProgress(100);
|
||||
yield 100;
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -212,7 +213,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
num);
|
||||
}
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
g_Map.log("Creating dirt patches");
|
||||
const numberOfPatches = scaleByMapSize(15, 45) * (currentBiome() == "generic/savanna" ? 3 : 1);
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -238,7 +239,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 0), stayClasses(clLand, 6)],
|
||||
numberOfPatches);
|
||||
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -268,7 +269,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -292,7 +293,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(8, 131), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating deer");
|
||||
group = new SimpleGroup(
|
||||
@ -304,7 +305,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating sheep");
|
||||
group = new SimpleGroup(
|
||||
@ -336,7 +337,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
25 * numPlayers, 60
|
||||
);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -360,7 +361,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
group = new SimpleGroup(
|
||||
@ -374,7 +375,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -396,5 +397,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setSunElevation(randFloat(1/5, 1/3) * Math.PI);
|
||||
setWaterWaviness(2);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("heightmap");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -72,7 +73,7 @@ Engine.LoadLibrary("heightmap");
|
||||
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" :
|
||||
const oTower = mapSettings.Size >= 256 && getDifficulty() >= 3 ? "structures/kush/defense_tower" :
|
||||
"structures/kush/sentry_tower";
|
||||
const oHouse = "structures/kush/house";
|
||||
const oMarket = "structures/kush/market";
|
||||
@ -144,7 +145,7 @@ Engine.LoadLibrary("heightmap");
|
||||
...oPalms.map(tree => tForestFloorFertile + TERRAIN_SEPARATOR + tree),
|
||||
tForestFloorFertile];
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const minHeightSource = 3;
|
||||
const maxHeightSource = 800;
|
||||
@ -343,7 +344,7 @@ Engine.LoadLibrary("heightmap");
|
||||
"overlap": 0.05
|
||||
};
|
||||
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
g_Map.log("Loading hill heightmap");
|
||||
createArea(
|
||||
@ -420,7 +421,7 @@ Engine.LoadLibrary("heightmap");
|
||||
"meanderShort": 40,
|
||||
"meanderLong": 0
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Computing player locations");
|
||||
const playerIDs = sortAllPlayers();
|
||||
@ -562,7 +563,7 @@ Engine.LoadLibrary("heightmap");
|
||||
previousPassageY = y;
|
||||
areasPassages.push(area);
|
||||
}
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Marking hill");
|
||||
createArea(
|
||||
@ -597,7 +598,7 @@ Engine.LoadLibrary("heightmap");
|
||||
new SlopeConstraint(-Infinity, 2)
|
||||
]);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
for (let i = 0; i < numPlayers; ++i)
|
||||
{
|
||||
@ -679,7 +680,7 @@ Engine.LoadLibrary("heightmap");
|
||||
50,
|
||||
[areaPyramids]);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
// The city is a circle segment of this maximum size
|
||||
g_Map.log("Computing city grid");
|
||||
@ -740,7 +741,7 @@ Engine.LoadLibrary("heightmap");
|
||||
8, 0, 0, Infinity),
|
||||
new TileClassPainter(clPath)));
|
||||
}
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Placing kushite temples");
|
||||
const entitiesTemples = [];
|
||||
@ -1007,7 +1008,7 @@ Engine.LoadLibrary("heightmap");
|
||||
new NearTileClassConstraint(clPath, pathWidth + 1)
|
||||
]);
|
||||
}
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Finding road starting points");
|
||||
const roadStartLocations = shuffleArray(
|
||||
@ -1098,7 +1099,7 @@ Engine.LoadLibrary("heightmap");
|
||||
20,
|
||||
[areaRoadPalms]);
|
||||
}
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Marking city bush area");
|
||||
const areaCityBushes =
|
||||
@ -1194,7 +1195,7 @@ Engine.LoadLibrary("heightmap");
|
||||
4,
|
||||
0,
|
||||
3);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Setting up common constraints and areas");
|
||||
const nearWater = new NearTileClassConstraint(clWater, 3);
|
||||
@ -1389,7 +1390,7 @@ Engine.LoadLibrary("heightmap");
|
||||
50,
|
||||
[areaFertileLand]);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Marking irrigation canal tree area");
|
||||
const areaIrrigationCanalTrees = createArea(
|
||||
@ -1535,7 +1536,7 @@ Engine.LoadLibrary("heightmap");
|
||||
scaleByMapSize(20, 120),
|
||||
50);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
avoidCollisions = new StaticConstraint(avoidCollisions);
|
||||
|
||||
@ -1611,5 +1612,5 @@ Engine.LoadLibrary("heightmap");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrass = [
|
||||
"tropic_grass_c",
|
||||
@ -101,7 +102,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
paintRiver({
|
||||
"parallel": true,
|
||||
@ -153,7 +154,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
paintTerrainBasedOnHeight(0, 1, 1, tShore);
|
||||
paintTileClassBasedOnHeight(-6, 0.5, 1, clWater);
|
||||
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreasInAreas(
|
||||
@ -190,7 +191,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 20, clForest, 10, clHill, 0, clWater, 8),
|
||||
num);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -269,7 +270,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
8 * scaleByMapSize(13, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
group = new SimpleGroup(
|
||||
@ -283,7 +284,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
8 * scaleByMapSize(13, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -294,7 +295,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
8 * scaleByMapSize(13, 200), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(96);
|
||||
yield 96;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree, oPalm],
|
||||
@ -312,7 +313,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(97);
|
||||
yield 97;
|
||||
|
||||
g_Map.log("Creating berry bush");
|
||||
group = new SimpleGroup(
|
||||
@ -365,5 +366,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPBloom(0.6);
|
||||
|
||||
setSkySet("cirrus");
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -135,7 +136,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
|
||||
|
||||
@ -157,7 +158,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -175,7 +176,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -193,7 +194,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 3, clForest, 1, clPlayer, scaleByMapSize(20, 35), clHill, 1, clMetal, 10)
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
let planetm = 1;
|
||||
|
||||
@ -217,7 +218,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -251,7 +252,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clFood, 20), stayClasses(clWater, 6)],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -265,5 +266,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setWaterWaviness(4.0);
|
||||
setWaterType("lake");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tOceanDepths = "medit_sea_depths";
|
||||
const tOceanRockDeep = "medit_sea_coral_deep";
|
||||
@ -125,7 +126,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clWater.add(position);
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
g_Map.log("Painting elevation");
|
||||
const noise0 = new Noise2D(scaleByMapSize(4, 16));
|
||||
@ -194,7 +195,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
g_Map.setHeight(position, h);
|
||||
}
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Painting terrain");
|
||||
const noise6 = new Noise2D(scaleByMapSize(10, 40));
|
||||
@ -333,7 +334,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
createTerrain(t).place(position);
|
||||
}
|
||||
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [primeSortAllPlayers(), playerPosition],
|
||||
@ -369,7 +370,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
let group = new SimpleGroup(
|
||||
@ -384,7 +385,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 4, clCliff, 2),
|
||||
scaleByMapSize(9, 146), 50
|
||||
);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Creating rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -398,7 +399,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2, clCliff, 1),
|
||||
scaleByMapSize(9, 146), 50
|
||||
);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating large stone mines");
|
||||
group = new SimpleGroup(
|
||||
@ -423,7 +424,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clForest, 4, clWater, 1, clPlayer, 40, clMetal, 50, clCliff, 3),
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
createStragglerTrees(
|
||||
[oCarob, oBeech, oLombardyPoplar, oLombardyPoplar, oPine],
|
||||
@ -431,7 +432,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
scaleByMapSize(10, 190));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating straggler cypresses");
|
||||
group = new SimpleGroup(
|
||||
@ -442,7 +443,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 5, clCliff, 4, clForest, 2, clPlayer, 15, clMetal, 6, clRock, 6),
|
||||
scaleByMapSize(5, 75), 50
|
||||
);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating sheep");
|
||||
group = new SimpleGroup([new SimpleObject(oSheep, 2, 4, 0, 2)], true, clFood);
|
||||
@ -457,7 +458,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clFood, 8),
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating fish");
|
||||
createObjectGroups(
|
||||
@ -470,7 +471,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
scaleByMapSize(8, 32));
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating deer");
|
||||
group = new SimpleGroup(
|
||||
@ -488,7 +489,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clFood, 8),
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating berry bushes");
|
||||
group = new SimpleGroup([new SimpleObject(oBerryBush, 5, 7, 0, 3)], true, clFood);
|
||||
@ -514,5 +515,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterType("ocean");
|
||||
setWaterMurkiness(0.8);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -24,7 +25,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land));
|
||||
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
createBases(
|
||||
...playerPlacementByPattern(
|
||||
@ -34,10 +35,10 @@ Engine.LoadLibrary("rmbiome");
|
||||
startAngle,
|
||||
undefined),
|
||||
true);
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
createSunkenTerrain();
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -133,7 +134,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["scarce"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -233,7 +234,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -348,7 +349,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -366,7 +367,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -384,7 +385,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["scarce"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -401,7 +402,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -418,7 +419,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["scarce"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
placePlayersNomad(
|
||||
g_TileClasses.player,
|
||||
@ -431,7 +432,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_TileClasses.animals, 2)
|
||||
]);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
|
||||
function createSunkenTerrain()
|
||||
{
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tPrimary = "temp_grass_long";
|
||||
const tGrass = ["temp_grass", "temp_grass", "temp_grass_d"];
|
||||
@ -103,7 +104,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
const riverPositions = [
|
||||
new Vector2D(mapBounds.left + 1, mapCenter.y),
|
||||
@ -116,7 +117,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(0.5, 2), 0.1, 0.01),
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightSeaGround, 4),
|
||||
avoidClasses(clPlayer, 4));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Creating small puddles at the map border to ensure players being separated");
|
||||
for (const riverPosition of riverPositions)
|
||||
@ -124,7 +125,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new ClumpPlacer(diskArea(scaleByMapSize(5, 10)), 0.95, 0.6, Infinity, riverPosition),
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightSeaGround, 2),
|
||||
avoidClasses(clPlayer, 8));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating the shallows of the main river");
|
||||
for (let i = 0; i <= randIntInclusive(3, scaleByMapSize(4, 6)); ++i)
|
||||
@ -142,7 +143,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"tileClass": clShallow
|
||||
});
|
||||
}
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
createTributaryRivers(
|
||||
startAngle,
|
||||
@ -155,13 +156,13 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clShallow,
|
||||
avoidClasses(clPlayer, 3, clBaseResource, 4));
|
||||
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
paintTerrainBasedOnHeight(-5, 1, 1, tWater);
|
||||
paintTerrainBasedOnHeight(1, 2, 1, pForestR);
|
||||
paintTileClassBasedOnHeight(-6, 0.5, 1, clWater);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -170,7 +171,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2, clPlayer, 15),
|
||||
scaleByMapSize(100, 200)
|
||||
);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(500, 2500, 0.7);
|
||||
createForests(
|
||||
@ -178,7 +179,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 15, clWater, 3, clForest, 16, clHill, 1),
|
||||
clForest,
|
||||
forestTrees);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -200,7 +201,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 6),
|
||||
scaleByMapSize(15, 45)
|
||||
);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -227,7 +228,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(86);
|
||||
yield 86;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -336,5 +337,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterType("lake");
|
||||
setWaterMurkiness(0.80);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -32,6 +32,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -79,7 +80,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"props/flora/grass_soft_dry_small_tall"
|
||||
].map(actorTemplate);
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const heightSeaGround = heightScale(-3);
|
||||
const heightWaterLevel = heightScale(0);
|
||||
@ -111,7 +112,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
const heightmapWaterThreshold =
|
||||
convertHeightmap1Dto2D(Engine.LoadHeightmapImage(
|
||||
"maps/random/lower_nubia_water_threshold.png"));
|
||||
Engine.SetProgress(3);
|
||||
yield 3;
|
||||
|
||||
g_Map.log("Composing heightmap");
|
||||
const heightmapCombined = [];
|
||||
@ -126,13 +127,13 @@ Engine.LoadLibrary("rmgen-common");
|
||||
heightmapCombined[x][y] = heightmapLandThreshold[x][y] ||
|
||||
heightmapWaterThreshold[x][y] ? heightmapLand[x][y] : minHeight;
|
||||
}
|
||||
Engine.SetProgress(6);
|
||||
yield 6;
|
||||
|
||||
g_Map.log("Applying heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new HeightmapPainter(heightmapCombined, minHeight, maxHeight));
|
||||
Engine.SetProgress(9);
|
||||
yield 9;
|
||||
|
||||
g_Map.log("Lowering sea ground");
|
||||
createArea(
|
||||
@ -142,7 +143,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new TileClassPainter(clWater)
|
||||
],
|
||||
new HeightConstraint(-Infinity, heightSeaGround));
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Creating Nile passages");
|
||||
const riverAngle = Math.PI * 3 / 4;
|
||||
@ -169,41 +170,41 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPassage, scaleByMapSize(15, 25))
|
||||
]);
|
||||
}
|
||||
Engine.SetProgress(18);
|
||||
yield 18;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(1, scaleByMapSize(0.5, 1), 1));
|
||||
Engine.SetProgress(22);
|
||||
yield 22;
|
||||
|
||||
g_Map.log("Marking water");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(clWater),
|
||||
new HeightConstraint(-Infinity, heightSeaGround));
|
||||
Engine.SetProgress(28);
|
||||
yield 28;
|
||||
|
||||
g_Map.log("Marking cliffs");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(clCliff),
|
||||
new SlopeConstraint(2, Infinity));
|
||||
Engine.SetProgress(32);
|
||||
yield 32;
|
||||
|
||||
g_Map.log("Painting water and shoreline");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TerrainPainter(tWater),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Painting plateau");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TerrainPainter(tPlateau),
|
||||
new HeightConstraint(heightPlateau2, Infinity));
|
||||
Engine.SetProgress(38);
|
||||
yield 38;
|
||||
|
||||
let playerIDs = [];
|
||||
let playerPosition = [];
|
||||
@ -220,7 +221,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
position),
|
||||
new SmoothElevationPainter(ELEVATION_SET, g_Map.getHeight(position), 6));
|
||||
}
|
||||
Engine.SetProgress(43);
|
||||
yield 43;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -268,7 +269,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": pickRandom(aBushes)
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Painting lower cliffs");
|
||||
createArea(
|
||||
@ -278,7 +279,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new SlopeConstraint(2, Infinity),
|
||||
new NearTileClassConstraint(clWater, 2)
|
||||
]);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Painting upper cliffs");
|
||||
createArea(
|
||||
@ -288,7 +289,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2),
|
||||
new SlopeConstraint(2, Infinity)
|
||||
]);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -302,7 +303,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 4, clCliff, 4, clPlayer, 20, clRock, 10),
|
||||
clRock,
|
||||
scaleByMapSize(10, 30));
|
||||
Engine.SetProgress(63);
|
||||
yield 63;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createMines(
|
||||
@ -316,7 +317,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 4, clCliff, 4, clPlayer, 20, clMetal, 10, clRock, 5),
|
||||
clMetal,
|
||||
scaleByMapSize(10, 30));
|
||||
Engine.SetProgress(67);
|
||||
yield 67;
|
||||
|
||||
g_Map.log("Creating pyramid");
|
||||
createObjectGroups(
|
||||
@ -328,7 +329,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
1,
|
||||
500);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating trees near the Nile");
|
||||
createObjectGroups(
|
||||
@ -349,7 +350,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
scaleByMapSize(100, 1000),
|
||||
200);
|
||||
Engine.SetProgress(73);
|
||||
yield 73;
|
||||
|
||||
const avoidCollisions = avoidClasses(
|
||||
clPlayer, 12,
|
||||
@ -374,7 +375,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidCollisions, avoidClasses(clWater, 10, clForest, 4)],
|
||||
scaleByMapSize(10, 180),
|
||||
10);
|
||||
Engine.SetProgress(77);
|
||||
yield 77;
|
||||
|
||||
g_Map.log("Creating gazelles");
|
||||
createObjectGroups(
|
||||
@ -383,7 +384,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidCollisions,
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -399,7 +400,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
}
|
||||
Engine.SetProgress(83);
|
||||
yield 83;
|
||||
|
||||
g_Map.log("Creating elephants");
|
||||
createObjectGroups(
|
||||
@ -412,7 +413,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidCollisions,
|
||||
scaleByMapSize(2, 10),
|
||||
50);
|
||||
Engine.SetProgress(86);
|
||||
yield 86;
|
||||
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(
|
||||
@ -423,12 +424,12 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clFood, 2,
|
||||
clCliff, 2,
|
||||
clPyramid, 6));
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating hawk");
|
||||
for (let i = 0; i < scaleByMapSize(0, 2); ++i)
|
||||
g_Map.placeEntityAnywhere(oHawk, 0, mapCenter, randomAngle());
|
||||
Engine.SetProgress(91);
|
||||
yield 91;
|
||||
|
||||
createDecoration(
|
||||
aBushes.map(bush => [new SimpleObject(bush, 0, 3, 2, 4)]),
|
||||
@ -438,13 +439,13 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new HeightConstraint(heightWaterLevel, Infinity),
|
||||
avoidClasses(clForest, 0)
|
||||
]);
|
||||
Engine.SetProgress(92);
|
||||
yield 92;
|
||||
|
||||
createDecoration(
|
||||
[[new SimpleObject(aRock, 0, 4, 2, 4)]],
|
||||
[[scaleByMapSize(100, 600)]],
|
||||
avoidClasses(clWater, 0));
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
setWindAngle(-0.43);
|
||||
setWaterTint(0.161, 0.286, 0.353);
|
||||
@ -468,5 +469,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -88,7 +89,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
createBumps(avoidClasses(clPlayer, 20));
|
||||
|
||||
@ -106,7 +107,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -124,7 +125,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -142,7 +143,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clForest, 1, clPlayer, scaleByMapSize(20, 35), clHill, 1, clMetal, 10)
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
let planetm = 1;
|
||||
|
||||
@ -166,7 +167,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clForest, 0, clPlayer, 10, clHill, 0));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -180,7 +181,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clMetal, 4, clRock, 4, clFood, 20),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -192,7 +193,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clMetal, 4, clRock, 4, clFood, 10),
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -202,5 +203,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
placePlayersNomad(clPlayer, avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setBiome("generic/aegean");
|
||||
|
||||
@ -55,7 +56,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_medit_sm_dry.xml";
|
||||
g_Decoratives.reeds = "actor|props/flora/reeds_pond_lush_a.xml";
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const heightSeaGround = heightScale(scaleByMapSize(-6, -4));
|
||||
const heightWaterLevel = heightScale(0);
|
||||
@ -67,7 +68,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
initTileClasses(["shoreline"]);
|
||||
|
||||
g_Map.LoadHeightmapImage("marmara.png", 0, 10);
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Lowering sea ground");
|
||||
createArea(
|
||||
@ -75,27 +76,27 @@ Engine.LoadLibrary("rmbiome");
|
||||
// Keep water impassable on all mapsizes
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightSeaGround, scaleByMapSize(1, 3)),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(1, scaleByMapSize(0.1, 0.2), 1));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Marking water");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.water),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Marking land");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land),
|
||||
avoidClasses(g_TileClasses.water, 0));
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Painting shoreline");
|
||||
createArea(
|
||||
@ -105,7 +106,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(g_TileClasses.shoreline)
|
||||
],
|
||||
new HeightConstraint(-Infinity, heightShoreline));
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Painting cliffs");
|
||||
createArea(
|
||||
@ -118,7 +119,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(g_TileClasses.water, 2),
|
||||
new SlopeConstraint(2, Infinity)
|
||||
]);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -139,7 +140,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
position),
|
||||
new SmoothElevationPainter(ELEVATION_SET, g_Map.getHeight(position), 6));
|
||||
}
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -172,7 +173,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -244,7 +245,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -310,7 +311,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Adding reeds");
|
||||
createObjectGroups(
|
||||
@ -329,7 +330,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
scaleByMapSize(50, 400),
|
||||
2);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
placePlayersNomad(
|
||||
g_Map.createTileClass(),
|
||||
@ -370,5 +371,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -28,7 +29,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
const tSnowedRocks = ["alpine_cliff_b", "alpine_cliff_snow"];
|
||||
setBiome("generic/aegean");
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const heightSeaGround = heightScale(-6);
|
||||
const heightWaterLevel = heightScale(0);
|
||||
@ -41,7 +42,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
const mapBounds = g_Map.getBounds();
|
||||
|
||||
g_Map.LoadHeightmapImage("mediterranean.png", 0, 40);
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
initTileClasses([
|
||||
"autumn",
|
||||
@ -105,27 +106,27 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightSeaGround, 2),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(1, scaleByMapSize(0.3, 0.8), 1));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Marking water");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.water),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Marking land");
|
||||
createArea(
|
||||
new DiskPlacer(fractionToTiles(0.5), mapCenter),
|
||||
new TileClassPainter(g_TileClasses.land),
|
||||
avoidClasses(g_TileClasses.water, 0));
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Marking climate zones");
|
||||
for (const zone of climateZones)
|
||||
@ -144,7 +145,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
zone.constraint
|
||||
]);
|
||||
}
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Fuzzing biome borders");
|
||||
for (const zone of climateZones)
|
||||
@ -171,7 +172,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(20, 60),
|
||||
g_TileClasses.dirt);
|
||||
}
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -198,7 +199,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
createBase(playerIDs[i], playerPosition[i], mapSize >= 384);
|
||||
}
|
||||
}
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
for (const zone of climateZones)
|
||||
{
|
||||
@ -388,7 +389,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
]);
|
||||
}
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Painting water");
|
||||
createArea(
|
||||
@ -408,7 +409,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_TileClasses.player, 6)
|
||||
]);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Placing fish");
|
||||
g_Gaia.fish = "gaia/fish/generic";
|
||||
@ -424,7 +425,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Placing whale");
|
||||
g_Gaia.fish = "gaia/fauna_whale_fin";
|
||||
@ -442,7 +443,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["scarce"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
placePlayersNomad(
|
||||
g_Map.createTileClass(),
|
||||
@ -480,5 +481,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -101,7 +102,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
findLocationInDirectionBasedOnHeight(playerPosition[i], mapCenter, -3, 2.6, 3);
|
||||
g_Map.placeEntityPassable(oDock, playerIDs[i], dockLocation, playerAngle[i] + Math.PI);
|
||||
}
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -136,7 +137,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Create the continent body");
|
||||
const continentPosition =
|
||||
@ -149,7 +150,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(clLand)
|
||||
],
|
||||
avoidClasses(clIsland, 8));
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating shore jaggedness");
|
||||
createAreas(
|
||||
@ -168,7 +169,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
paintTerrainBasedOnHeight(1, 3, 0, tShore);
|
||||
paintTerrainBasedOnHeight(-8, 1, 2, tWater);
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -177,7 +178,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clIsland, 10), stayClasses(clLand, 3)],
|
||||
scaleByMapSize(100, 200)
|
||||
);
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreas(
|
||||
@ -190,7 +191,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clIsland, 10, clHill, 15), stayClasses(clLand, 7)],
|
||||
scaleByMapSize(1, 4) * numPlayers
|
||||
);
|
||||
Engine.SetProgress(34);
|
||||
yield 34;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(...rBiomeTreeCount(1));
|
||||
@ -212,7 +213,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
[avoidClasses(clPlayer, 6, clForest, 10, clHill, 0), stayClasses(clLand, 7)],
|
||||
num);
|
||||
Engine.SetProgress(38);
|
||||
yield 38;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -238,7 +239,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
scaleByMapSize(15, 45));
|
||||
|
||||
Engine.SetProgress(42);
|
||||
yield 42;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const size of [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)])
|
||||
@ -247,7 +248,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TerrainPainter(tTier4Terrain),
|
||||
[avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clIsland, 0), stayClasses(clLand, 7)],
|
||||
scaleByMapSize(15, 45));
|
||||
Engine.SetProgress(46);
|
||||
yield 46;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -259,7 +260,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1), stayClasses(clLand, 7)],
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating small stone quarries");
|
||||
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2, 5, 1, 3)], true, clRock);
|
||||
@ -267,7 +268,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1), stayClasses(clLand, 7)],
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
Engine.SetProgress(54);
|
||||
yield 54;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1, 1, 0, 4)], true, clMetal);
|
||||
@ -278,7 +279,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
Engine.SetProgress(58);
|
||||
yield 58;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -290,7 +291,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clPlayer, 0, clHill, 0), stayClasses(clLand, 6)],
|
||||
scaleByMapSize(16, 262), 50
|
||||
);
|
||||
Engine.SetProgress(62);
|
||||
yield 62;
|
||||
|
||||
g_Map.log("Creating large decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -302,7 +303,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clPlayer, 0, clHill, 0), stayClasses(clLand, 6)],
|
||||
scaleByMapSize(8, 131), 50
|
||||
);
|
||||
Engine.SetProgress(66);
|
||||
yield 66;
|
||||
|
||||
g_Map.log("Creating deer");
|
||||
group = new SimpleGroup(
|
||||
@ -313,7 +314,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clPlayer, 10, clHill, 1, clFood, 20), stayClasses(clLand, 7)],
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating sheep");
|
||||
group = new SimpleGroup(
|
||||
@ -324,7 +325,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clPlayer, 10, clHill, 1, clFood, 20), stayClasses(clLand, 7)],
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(74);
|
||||
yield 74;
|
||||
|
||||
g_Map.log("Creating fruit bush");
|
||||
group = new SimpleGroup(
|
||||
@ -335,7 +336,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clPlayer, 8, clHill, 1, clFood, 20), stayClasses(clLand, 7)],
|
||||
randIntInclusive(1, 4) * numPlayers + 2, 50
|
||||
);
|
||||
Engine.SetProgress(78);
|
||||
yield 78;
|
||||
|
||||
g_Map.log("Creating fish");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -344,7 +345,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clLand, 2, clPlayer, 2, clHill, 0, clFood, 20),
|
||||
25 * numPlayers, 60
|
||||
);
|
||||
Engine.SetProgress(82);
|
||||
yield 82;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -355,7 +356,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
|
||||
Engine.SetProgress(86);
|
||||
yield 86;
|
||||
|
||||
const planetm = currentBiome() == "generic/india" ? 8 : 1;
|
||||
|
||||
@ -367,7 +368,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clHill, 2, clPlayer, 2, clDirt, 0), stayClasses(clLand, 6)],
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
group = new SimpleGroup(
|
||||
@ -380,7 +381,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clHill, 2, clPlayer, 2, clDirt, 1, clForest, 0), stayClasses(clLand, 6)],
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
Engine.SetProgress(94);
|
||||
yield 94;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -390,7 +391,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clHill, 1, clPlayer, 1, clDirt, 1), stayClasses(clLand, 6)],
|
||||
planetm * scaleByMapSize(13, 200), 50
|
||||
);
|
||||
Engine.SetProgress(98);
|
||||
yield 98;
|
||||
|
||||
setSkySet(pickRandom(["cirrus", "cumulus", "sunny"]));
|
||||
setSunRotation(randomAngle());
|
||||
@ -403,5 +404,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2)
|
||||
]);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,8 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
if (g_MapSettings.Biome)
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
setBiome("generic/sahara");
|
||||
@ -117,7 +118,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
g_Map.log("Creating dune patches");
|
||||
createAreas(
|
||||
@ -128,7 +129,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clPatch, 2, clPlayer, 0),
|
||||
scaleByMapSize(5, 20));
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Creating sand patches");
|
||||
createAreas(
|
||||
@ -139,7 +140,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clPatch, 2, clPlayer, 0),
|
||||
scaleByMapSize(15, 50));
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createAreas(
|
||||
@ -150,7 +151,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clPatch, 2, clPlayer, 0),
|
||||
scaleByMapSize(15, 50));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Creating oasis");
|
||||
createArea(
|
||||
@ -169,7 +170,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(clOasis)
|
||||
]);
|
||||
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating oasis wildlife");
|
||||
let num = Math.round(Math.PI * oasisRadius / 8);
|
||||
@ -217,7 +218,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
createObjectGroup(
|
||||
new SimpleGroup([new SimpleObject(oFish, 1, 1, 0, 1)], true, clFood, fishPosition), 0);
|
||||
}
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Creating level 1 hills");
|
||||
let hillAreas = createAreas(
|
||||
@ -230,7 +231,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clOasis, 3, clPlayer, 0, clHill1, 10),
|
||||
scaleByMapSize(10, 20), 100
|
||||
);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating small level 1 hills");
|
||||
hillAreas = hillAreas.concat(
|
||||
@ -245,7 +246,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(15, 25),
|
||||
100));
|
||||
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Creating decorative rocks");
|
||||
createObjectGroupsByAreasDeprecated(
|
||||
@ -257,7 +258,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(40, 200), 50,
|
||||
hillAreas);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating level 2 hills");
|
||||
createAreasInAreas(
|
||||
@ -271,7 +272,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
50,
|
||||
hillAreas);
|
||||
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating level 3 hills");
|
||||
createAreas(
|
||||
@ -284,7 +285,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(15, 25),
|
||||
50
|
||||
);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -294,7 +295,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(100, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(500, 2500, 0.5);
|
||||
@ -309,7 +310,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
num,
|
||||
50);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
oMetalSmall,
|
||||
@ -325,7 +326,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clRock,
|
||||
avoidClasses(clOasis, 2, clForest, 0, clPlayer, scaleByMapSize(15, 25), clHill1, 1, clMetal, 10)
|
||||
);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating gazelles");
|
||||
let group = new SimpleGroup([new SimpleObject(oGazelle, 5, 7, 0, 4)], true, clFood);
|
||||
@ -347,14 +348,14 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clOasis, 1, clForest, 0, clPlayer, 5, clHill1, 1, clFood, 10),
|
||||
scaleByMapSize(5, 20), 50
|
||||
);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oDatePalm, oSDatePalm],
|
||||
avoidClasses(clOasis, 1, clForest, 0, clHill1, 1, clPlayer, 4, clMetal, 6, clRock, 6),
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup([new RandomObject(aBushes, 2, 3, 0, 2)]);
|
||||
@ -377,5 +378,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setWaterType("clap");
|
||||
setWaterHeight(20);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
globalThis.g_Map = new RandomMap(0, "grass1_spring");
|
||||
|
||||
@ -10,5 +11,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
placePlayersNomad(g_Map.createTileClass());
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setBiome("generic/savanna");
|
||||
|
||||
@ -43,7 +44,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_Decoratives.bushMedium = "actor|props/flora/bush_desert_dry_a.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_dry_a.xml";
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const heightHighlands = heightScale(45);
|
||||
const heightEden = heightScale(60);
|
||||
@ -90,26 +91,26 @@ Engine.LoadLibrary("rmbiome");
|
||||
initTileClasses(["eden", "highlands"]);
|
||||
|
||||
g_Map.LoadHeightmapImage("ngorongoro.png", 0, heightMax);
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(1, scaleByMapSize(0.1, 0.5), 1));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Marking land");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land));
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Marking eden");
|
||||
createArea(
|
||||
new DiskPlacer(fractionToTiles(0.14), mapCenter),
|
||||
new TileClassPainter(g_TileClasses.eden),
|
||||
new HeightConstraint(-Infinity, heightEden));
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Marking highlands");
|
||||
createArea(
|
||||
@ -119,7 +120,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new HeightConstraint(heightHighlands, Infinity),
|
||||
avoidClasses(g_TileClasses.eden, 0)
|
||||
]);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Painting cliffs");
|
||||
createArea(
|
||||
@ -129,7 +130,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(g_TileClasses.mountain),
|
||||
],
|
||||
new SlopeConstraint(2, Infinity));
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -288,7 +289,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Render highlands");
|
||||
setBiomeHighlands();
|
||||
@ -399,7 +400,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Render eden");
|
||||
setBiomeEden();
|
||||
@ -541,7 +542,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["scarce"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
placePlayersNomad(
|
||||
g_Map.createTileClass(),
|
||||
@ -571,5 +572,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tSnowA = ["polar_snow_b"];
|
||||
const tSnowB = "polar_ice_snow";
|
||||
@ -78,7 +79,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
paintRiver({
|
||||
"parallel": true,
|
||||
@ -138,7 +139,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
paintTerrainBasedOnHeight(1, 2.8, 1, tShoreBlend);
|
||||
paintTileClassBasedOnHeight(-6, 0.5, 1, clWater);
|
||||
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreas(
|
||||
@ -180,7 +181,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
[avoidClasses(clRock, 6), stayClasses(clWater, 4)],
|
||||
scaleByMapSize(4, 16),
|
||||
100);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -237,7 +238,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1),
|
||||
scaleByMapSize(8, 32), 100
|
||||
);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createStragglerTrees(
|
||||
[oPine],
|
||||
@ -255,7 +256,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating sheep");
|
||||
group = new SimpleGroup(
|
||||
@ -302,5 +303,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPEffect("hdr");
|
||||
|
||||
setSkySet("fog");
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tSand = [
|
||||
"desert_sand_dunes_100",
|
||||
@ -138,7 +139,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
createObjectGroup(new SimpleGroup([new SimpleObject(aReedsA, 1, 3, 0, 0)], true, undefined,
|
||||
reedsPosition), 0);
|
||||
}
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -169,7 +170,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
// Starting trees were set above
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating central oasis");
|
||||
createArea(
|
||||
@ -182,7 +183,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new TileClassPainter(clOasis)
|
||||
]);
|
||||
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -208,7 +209,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 10, clBaseResource, 6, clOasis, 4, clForest, 4),
|
||||
scaleByMapSize(15, 50));
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
if (mapSize > 150 && randBool())
|
||||
{
|
||||
@ -267,7 +268,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clHill, 1),
|
||||
scaleByMapSize(6, 25), 100
|
||||
);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup([new SimpleObject(aRock, 2, 4, 0, 2)], true, undefined);
|
||||
@ -280,7 +281,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clFood, 20),
|
||||
30, scaleByMapSize(10, 50));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating camels");
|
||||
group = new SimpleGroup(
|
||||
@ -291,7 +292,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clOasis, 3, clForest, 0, clPlayer, 10, clHill, 1, clFood, 20),
|
||||
1 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating gazelles");
|
||||
group = new SimpleGroup(
|
||||
@ -302,7 +303,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clOasis, 3, clForest, 0, clPlayer, 10, clHill, 1, clFood, 20),
|
||||
1 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating oasis animals");
|
||||
for (let i = 0; i < scaleByMapSize(5, 30); ++i)
|
||||
@ -324,7 +325,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
animalPos),
|
||||
0);
|
||||
}
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -396,5 +397,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterMurkiness(0.5);
|
||||
setAmbientColor(0.501961, 0.501961, 0.501961);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,8 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
if (g_MapSettings.Biome)
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
// TODO: Replace ugly default for atlas by a dropdown
|
||||
@ -90,7 +91,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
g_Map.log("Creating rock patches");
|
||||
createAreas(
|
||||
@ -101,7 +102,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clPatch, 2, clPlayer, 0),
|
||||
scaleByMapSize(5, 20));
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Creating secondary rock patches");
|
||||
createAreas(
|
||||
@ -112,7 +113,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clPatch, 2, clPlayer, 4),
|
||||
scaleByMapSize(15, 50));
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createAreas(
|
||||
@ -127,7 +128,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
avoidClasses(clPatch, 2, clPlayer, 4),
|
||||
scaleByMapSize(15, 50));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Creating centeral plateau");
|
||||
createArea(
|
||||
@ -145,7 +146,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(clCP)
|
||||
],
|
||||
avoidClasses(clPlayer, 18));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
for (let i = 0; i < scaleByMapSize(20, 80); ++i)
|
||||
@ -160,7 +161,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
tCliff,
|
||||
clHill,
|
||||
14);
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(500, 2500, 0.7);
|
||||
@ -187,7 +188,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clHill, 1,
|
||||
clCP, 1),
|
||||
num);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -265,7 +266,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
5 * scaleByMapSize(5, 30), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -278,7 +279,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(16, 262), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -291,7 +292,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(8, 131), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating goat");
|
||||
group = new SimpleGroup(
|
||||
@ -333,7 +334,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
createStragglerTrees(
|
||||
[oOak],
|
||||
@ -350,5 +351,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
placePlayersNomad(clPlayer, avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tCity = "medit_city_pavement";
|
||||
const tCityPlaza = "medit_city_pavement";
|
||||
@ -110,7 +111,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aBush1
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
paintRiver({
|
||||
"parallel": true,
|
||||
@ -124,7 +125,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"meanderShort": 20,
|
||||
"meanderLong": 0
|
||||
});
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
paintTileClassBasedOnHeight(-Infinity, heightLand, Elevation_ExcludeMin_ExcludeMax, clWater);
|
||||
paintTerrainBasedOnHeight(-Infinity, heightShore, Elevation_ExcludeMin_ExcludeMax, tWater);
|
||||
@ -161,7 +162,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 20, clForest, 10, clWater, 1, clHill, 1, clBaseResource, 3),
|
||||
num,
|
||||
50);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -175,7 +176,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clForest, 0, clGrass, 5, clPlayer, 10, clWater, 4, clDirt, 5, clHill, 1),
|
||||
scaleByMapSize(15, 45));
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -189,7 +190,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clForest, 0, clDirt, 5, clPlayer, 10, clWater, 4, clGrass, 5, clHill, 1),
|
||||
scaleByMapSize(15, 45));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating cyprus");
|
||||
createAreas(
|
||||
@ -249,7 +250,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -277,7 +278,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clPlayer, 0, clHill, 1),
|
||||
scaleByMapSize(40, 360), 50
|
||||
);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating fish");
|
||||
group = new SimpleGroup([new SimpleObject(oFish, 1, 3, 2, 6)], true, clFood);
|
||||
@ -316,7 +317,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clForest, 0, clPlayer, 15, clHill, 1, clFood, 7),
|
||||
randIntInclusive(1, 4) * numPlayers + 2, 50
|
||||
);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
const stragglerTreeConfig = [
|
||||
[1, avoidClasses(clForest, 0, clWater, 4, clPlayer, 8, clMetal, 6, clHill, 1)],
|
||||
@ -355,5 +356,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clWater, 4, clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
const tPrimary = ["alpine_snow_01"];
|
||||
const tSecondary = "alpine_snow_02";
|
||||
@ -84,7 +85,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"types": treasures
|
||||
},
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating central lake");
|
||||
createArea(
|
||||
@ -103,7 +104,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clPlayer, 20));
|
||||
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating small lakes");
|
||||
createAreas(
|
||||
@ -116,17 +117,17 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 20),
|
||||
scaleByMapSize(10, 16),
|
||||
1);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
createHills(
|
||||
[tSecondary, tSecondary, tSecondary],
|
||||
avoidClasses(clPlayer, 20, clHill, 35),
|
||||
clHill,
|
||||
scaleByMapSize(20, 240));
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating glacier patches");
|
||||
createPatches(
|
||||
@ -135,7 +136,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createMines(
|
||||
@ -156,7 +157,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clWater, 3, clPlayer, 20, clMetal, 18, clRock, 5, clHill, 2),
|
||||
clMetal);
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -182,7 +183,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapAreaAbsolute(8)
|
||||
],
|
||||
[stayClasses(clWater, 4), avoidClasses(clHill, 2)]);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -221,7 +222,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
[avoidClasses(clFood, 12, clHill, 5), stayClasses(clWater, 6)],
|
||||
clFood);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
// Create trigger points where wolves spawn
|
||||
createObjectGroupsDeprecated(
|
||||
@ -230,9 +231,9 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2, clMetal, 4, clRock, 4, clPlayer, 15, clHill, 2, clArcticWolf, 20),
|
||||
1000,
|
||||
100);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
if (g_MapSettings.Daytime !== undefined ? g_MapSettings.Daytime == "dawn" : randBool(1/3))
|
||||
if (mapSettings.Daytime !== undefined ? mapSettings.Daytime == "dawn" : randBool(1/3))
|
||||
{
|
||||
setSkySet("sunset 1");
|
||||
setSunColor(0.8, 0.7, 0.6);
|
||||
@ -276,5 +277,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.45);
|
||||
setPPBloom(0.4);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setBiome("generic/aegean");
|
||||
|
||||
@ -78,7 +79,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"actor|props/special/eyecandy/vase_rome_a.xml"
|
||||
];
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const heightSeaGround = heightScale(-30);
|
||||
const heightDockMin = heightScale(-6);
|
||||
@ -95,34 +96,34 @@ Engine.LoadLibrary("rmbiome");
|
||||
initTileClasses(["decorative", "lava", "dock"]);
|
||||
|
||||
g_Map.LoadHeightmapImage("pompeii.png", 0, heightMountains);
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Lowering sea ground");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightSeaGround, 2),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(1, 0.8, 1));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Marking water");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.water),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Marking land");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land),
|
||||
avoidClasses(g_TileClasses.water, 0));
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Painting cliffs");
|
||||
createArea(
|
||||
@ -135,7 +136,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(g_TileClasses.water, 2),
|
||||
new SlopeConstraint(2, Infinity)
|
||||
]);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Painting lava");
|
||||
const areaVesuv = createArea(
|
||||
@ -148,7 +149,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(g_TileClasses.lava)
|
||||
],
|
||||
new HeightConstraint(heightLavaVesuv, Infinity));
|
||||
Engine.SetProgress(46);
|
||||
yield 46;
|
||||
|
||||
g_Map.log("Adding smoke");
|
||||
createObjectGroupsByAreas(
|
||||
@ -163,7 +164,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(4, 12),
|
||||
20,
|
||||
[areaVesuv]);
|
||||
Engine.SetProgress(48);
|
||||
yield 48;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -184,7 +185,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
position),
|
||||
new SmoothElevationPainter(ELEVATION_SET, g_Map.getHeight(position), 6));
|
||||
}
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Placing docks");
|
||||
const dockTypes = [
|
||||
@ -208,7 +209,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
0,
|
||||
50);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -239,7 +240,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -290,7 +291,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -337,7 +338,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Adding gatherable stone statues");
|
||||
createObjectGroups(
|
||||
@ -357,7 +358,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
),
|
||||
5 * scaleByMapSize(1, 4),
|
||||
50);
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Adding stone ruins");
|
||||
createObjectGroups(
|
||||
@ -380,7 +381,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
),
|
||||
scaleByMapSize(1, 4),
|
||||
20);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Adding shipwrecks");
|
||||
createObjectGroups(
|
||||
@ -395,7 +396,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
scaleByMapSize(1, 5),
|
||||
20);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Adding more statues");
|
||||
createObjectGroups(
|
||||
@ -412,7 +413,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
),
|
||||
scaleByMapSize(3, 15),
|
||||
30);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Adding skeletons");
|
||||
createObjectGroups(
|
||||
@ -431,7 +432,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
),
|
||||
scaleByMapSize(1, 5),
|
||||
50);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
placePlayersNomad(
|
||||
g_Map.createTileClass(),
|
||||
@ -468,5 +469,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -231,7 +232,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating the pyreneans");
|
||||
const mountainVec = new Vector2D(mountainLength, 0).rotate(-startAngle);
|
||||
@ -239,7 +240,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
const mountainDirection = mountainVec.clone().normalize();
|
||||
createPyreneans();
|
||||
paintTileClassBasedOnHeight(heightPyreneans, Infinity, Elevation_ExcludeMin_ExcludeMax, clPyrenneans);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
/**
|
||||
* Generates the mountain peak noise.
|
||||
@ -310,7 +311,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"tileClass": clPass
|
||||
});
|
||||
}
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Smoothing the pyreneans");
|
||||
createArea(
|
||||
@ -332,7 +333,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(5, 0.9, 1),
|
||||
new NearTileClassConstraint(clWater, 5));
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreas(
|
||||
@ -359,7 +360,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clPlayer, 20, clPyrenneans, 0, clForest, 7, clWater, 2),
|
||||
num);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating lone trees");
|
||||
num = scaleByMapSize(80, 400);
|
||||
@ -435,7 +436,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clForest, 0, clPyrenneans, 5, clHill, 0, clDirt, 5, clPlayer, 6),
|
||||
scaleByMapSize(15, 45));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
// making more in dirt areas so as to appear different
|
||||
g_Map.log("Creating small grass tufts");
|
||||
@ -455,7 +456,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clHill, 2, clPlayer, 5, clDirt, 1, clForest, 0, clPyrenneans, 2),
|
||||
scaleByMapSize(13, 200));
|
||||
createObjectGroupsDeprecated(group, 0, stayClasses(clDirt, 1), scaleByMapSize(13, 200), 10);
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -466,7 +467,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
createObjectGroupsDeprecated(group, 0,
|
||||
avoidClasses(clWater, 2, clPlayer, 1, clPyrenneans, 1), scaleByMapSize(13, 200), 50);
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -489,7 +490,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clMetal, 10)
|
||||
);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup([new SimpleObject(aRockMedium, 1, 3, 0, 1)], true);
|
||||
@ -505,7 +506,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
createObjectGroupsDeprecated(group, 0, avoidClasses(clWater, 0, clForest, 0, clPlayer, 0),
|
||||
scaleByMapSize(8, 131), 50);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating deer");
|
||||
group = new SimpleGroup([new SimpleObject(oDeer, 5, 7, 0, 4)], true, clFood);
|
||||
@ -546,5 +547,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterMurkiness(0.83);
|
||||
setWaterHeight(heightWaterLevel);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setBiome("generic/alpine");
|
||||
|
||||
@ -50,7 +51,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_Decoratives.reeds = "actor|props/flora/reeds_pond_lush_a.xml";
|
||||
g_Decoratives.lillies = "actor|props/flora/water_lillies.xml";
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const heightReedsMin = heightScale(-2);
|
||||
const heightShallow = heightScale(-1);
|
||||
@ -67,13 +68,13 @@ Engine.LoadLibrary("rmbiome");
|
||||
initTileClasses(["shoreline", "shallows"]);
|
||||
|
||||
g_Map.LoadHeightmapImage("ratumacos.png", -3, 20);
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(1, 0.1, 1));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Creating shallows");
|
||||
for (let i = 0; i < scaleByMapSize(5, 12); ++i)
|
||||
@ -101,14 +102,14 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(g_TileClasses.water)
|
||||
],
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Marking land");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land),
|
||||
avoidClasses(g_TileClasses.water, 0));
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Painting shoreline");
|
||||
createArea(
|
||||
@ -118,7 +119,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(g_TileClasses.shoreline)
|
||||
],
|
||||
new HeightConstraint(heightWaterLevel, heightShoreline));
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": playerPlacementRiver(riverAngle, fractionToTiles(0.6)),
|
||||
@ -315,7 +316,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -328,7 +329,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
new HeightConstraint(heightReedsMin, heightShoreline)
|
||||
);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Placing fish");
|
||||
addElements([
|
||||
@ -343,7 +344,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["few"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
placePlayersNomad(
|
||||
g_Map.createTileClass(),
|
||||
@ -379,5 +380,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -54,7 +55,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_medit_sm_dry.xml";
|
||||
g_Decoratives.dust = "actor|particle/dust_storm_reddish.xml";
|
||||
|
||||
const heightScale = num => num * g_MapSettings.Size / 320;
|
||||
const heightScale = num => num * mapSettings.Size / 320;
|
||||
|
||||
const heightSeaGround = heightScale(-4);
|
||||
const heightReedsMin = heightScale(-2);
|
||||
@ -69,34 +70,34 @@ Engine.LoadLibrary("rmbiome");
|
||||
initTileClasses(["shoreline"]);
|
||||
|
||||
g_Map.LoadHeightmapImage("red_sea.png", 0, 25);
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Lowering sea ground");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightSeaGround, 2),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Smoothing heightmap");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new SmoothingPainter(1, scaleByMapSize(0.1, 0.5), 1));
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Marking water");
|
||||
createArea(
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.water),
|
||||
new HeightConstraint(-Infinity, heightWaterLevel));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Marking land");
|
||||
createArea(
|
||||
new DiskPlacer(fractionToTiles(0.5), mapCenter),
|
||||
new TileClassPainter(g_TileClasses.land),
|
||||
avoidClasses(g_TileClasses.water, 0));
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
g_Map.log("Painting shoreline");
|
||||
createArea(
|
||||
@ -106,7 +107,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new TileClassPainter(g_TileClasses.shoreline)
|
||||
],
|
||||
new HeightConstraint(-Infinity, heightShoreline));
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Painting cliffs");
|
||||
createArea(
|
||||
@ -119,7 +120,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(g_TileClasses.water, 2),
|
||||
new SlopeConstraint(2, Infinity)
|
||||
]);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -188,7 +189,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["few"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
// Ensure initial forests
|
||||
addElements([{
|
||||
@ -206,7 +207,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["tons"]
|
||||
}]);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -266,7 +267,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -296,7 +297,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Painting dirt patches");
|
||||
const dirtPatches = [
|
||||
@ -326,7 +327,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
dirtPatch.count,
|
||||
g_TileClasses.dirt,
|
||||
0.5);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Adding reeds");
|
||||
createObjectGroups(
|
||||
@ -341,7 +342,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new HeightConstraint(heightReedsMin, heightReedsMax),
|
||||
scaleByMapSize(10, 25),
|
||||
5);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Adding dust");
|
||||
createObjectGroups(
|
||||
@ -353,7 +354,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
scaleByMapSize(10, 50),
|
||||
20);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
placePlayersNomad(
|
||||
g_Map.createTileClass(),
|
||||
@ -390,5 +391,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrass = ["temp_grass", "temp_grass", "temp_grass_d"];
|
||||
const tForestFloor = "temp_plants_bog";
|
||||
@ -80,7 +81,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -114,7 +115,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
0,
|
||||
stayClasses(clWater, 1),
|
||||
scaleByMapSize(400, 2000), 100);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -141,7 +142,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clPlayer, 20, clWater, 0, clForest, 10),
|
||||
num);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating mud patches");
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -179,7 +180,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -192,7 +193,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(16, 262), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating large decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -205,7 +206,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(8, 131), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating deer");
|
||||
group = new SimpleGroup(
|
||||
@ -227,7 +228,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating rabbit");
|
||||
group = new SimpleGroup(
|
||||
@ -259,7 +260,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
randIntInclusive(1, 4) * numPlayers + 2, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
createStragglerTrees(
|
||||
[oOak, oBeech],
|
||||
@ -267,7 +268,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating small grass tufts");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -276,7 +277,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 2, clPlayer, 13, clDirt, 0),
|
||||
scaleByMapSize(13, 200));
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -289,7 +290,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 3, clPlayer, 13, clDirt, 1, clForest, 0),
|
||||
scaleByMapSize(13, 200));
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -321,5 +322,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.44);
|
||||
setPPBloom(0.3);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrass = [
|
||||
"tropic_grass_c",
|
||||
@ -126,7 +127,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
]);
|
||||
}
|
||||
}
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
const playerPosition = playerPlacementLine(startAngle, mapCenter,
|
||||
fractionToTiles(1 - stripWidthsLeft[2][0] - stripWidthsLeft[2][1]));
|
||||
@ -174,7 +175,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
const areaWater = createArea(
|
||||
new HeightPlacer(Elevation_IncludeMin_ExcludeMax, -Infinity, heightWaterLevel),
|
||||
@ -191,7 +192,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new HeightPlacer(Elevation_IncludeMin_ExcludeMax, heightShore, heightShoreBlend),
|
||||
new TerrainPainter(tShoreBlend));
|
||||
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
if (!isNomad())
|
||||
{
|
||||
@ -239,7 +240,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(1, 5));
|
||||
|
||||
createBumps(avoidClasses(clPlayer, 8, clWater, 2), scaleByMapSize(20, 150), 2, 8, 4, 1, 4);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(1000, 4000, 0.7);
|
||||
@ -283,7 +284,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -413,7 +414,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clBaseResource, 4,
|
||||
clDirt, 0),
|
||||
scaleByMapSize(100, 500));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
createObjectGroups(
|
||||
@ -431,7 +432,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clDirt, 1,
|
||||
clForest, 0),
|
||||
scaleByMapSize(100, 500));
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
createObjectGroups(
|
||||
@ -492,7 +493,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clFood, 20),
|
||||
2 * numPlayers,
|
||||
20);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating berry bush");
|
||||
createObjectGroups(
|
||||
@ -540,5 +541,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPBloom(0.6);
|
||||
|
||||
setSkySet("stratus");
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -163,7 +164,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
});
|
||||
}
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
createBumps(avoidClasses(clWater, 2, clPlayer, 20));
|
||||
|
||||
@ -181,7 +182,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -199,7 +200,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating metal mines");
|
||||
createBalancedMetalMines(
|
||||
@ -217,7 +218,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clWater, 3, clForest, 1, clPlayer, scaleByMapSize(20, 35), clHill, 1, clMetal, 10)
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
let planetm = 1;
|
||||
|
||||
@ -252,7 +253,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
stayClasses(clShallow, 0));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -286,7 +287,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clFood, 20), stayClasses(clWater, 6)],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -300,5 +301,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setWaterWaviness(3.0);
|
||||
setWaterType("lake");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tPrimary = "desert_sand_dunes_100";
|
||||
const tCity = "desert_city_tile";
|
||||
@ -86,7 +87,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aBush1
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating oases");
|
||||
const oasisRadius = fractionToTiles(scaleByMapSize(0.19, 0.22));
|
||||
@ -103,7 +104,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new TileClassPainter(clWater)
|
||||
]);
|
||||
}
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -118,7 +119,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clForest, 0, clPlayer, 0, clWater, 1, clDirt, 5),
|
||||
scaleByMapSize(15, 45));
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -133,7 +134,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clForest, 0, clDirt, 5, clPlayer, 0, clWater, 1),
|
||||
scaleByMapSize(15, 45));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -253,5 +254,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterType("clap");
|
||||
setWaterMurkiness(0.5);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tPrimary = "savanna_grass_a";
|
||||
const tGrass2 = "savanna_grass_b";
|
||||
@ -78,7 +79,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating big patches");
|
||||
const patches = [tGrass2, tGrass3];
|
||||
@ -113,7 +114,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clPlayer, 24),
|
||||
scaleByMapSize(1, 3));
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
for (let i = 0; i < scaleByMapSize(12, 30); ++i)
|
||||
@ -133,7 +134,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(2, 8), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -146,7 +147,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(200, 1200), 1
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating gazelle");
|
||||
group = new SimpleGroup(
|
||||
@ -208,7 +209,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
randIntInclusive(1, 4) * numPlayers + 2, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oBaobab],
|
||||
@ -244,5 +245,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPContrast(0.57031);
|
||||
setPPBloom(0.34);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrass = "savanna_grass_a";
|
||||
const tForestFloor = "savanna_forestfloor_a";
|
||||
@ -94,7 +95,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating rivers");
|
||||
const riverStart = distributePointsOnCircle(numPlayers, startAngle + Math.PI / numPlayers,
|
||||
@ -198,7 +199,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 20, clForest, 10, clHill, 0, clWater, 2),
|
||||
num
|
||||
);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -224,7 +225,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new TerrainPainter(tGrassPatch),
|
||||
avoidClasses(clWater, 3, clForest, 0, clHill, 0, clPlayer, 20),
|
||||
scaleByMapSize(15, 45));
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -251,7 +252,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -275,7 +276,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(8, 131), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating wildebeest");
|
||||
group = new SimpleGroup(
|
||||
@ -287,7 +288,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating gazelle");
|
||||
group = new SimpleGroup(
|
||||
@ -349,7 +350,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
randIntInclusive(1, 4) * numPlayers + 2, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oBaobab, oBaobab, oBaobab, oFig],
|
||||
@ -367,7 +368,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
group = new SimpleGroup(
|
||||
@ -381,7 +382,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -407,5 +408,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterWaviness(0.5);
|
||||
setWaterType("clap");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("heightmap");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSkySet("fog");
|
||||
setFogFactor(0.35);
|
||||
@ -306,7 +307,7 @@ Engine.LoadLibrary("heightmap");
|
||||
false);
|
||||
}
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Painting textures");
|
||||
const betweenShallowAndShore = (heighLimits[3] + heighLimits[2]) / 2;
|
||||
@ -321,7 +322,7 @@ Engine.LoadLibrary("heightmap");
|
||||
new LayeredPainter([tWaterBorder, tWater], [2]));
|
||||
|
||||
paintTileClassBasedOnHeight(heightRange.min, heighLimits[2], 1, clWater);
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Painting paths");
|
||||
const pathBlending = numPlayers <= 4;
|
||||
@ -340,7 +341,7 @@ Engine.LoadLibrary("heightmap");
|
||||
],
|
||||
avoidClasses(clPath, 0, clOpen, 0, clWater, 4, clBaseResource, 4));
|
||||
}
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating decoration");
|
||||
createDecoration(
|
||||
@ -360,7 +361,7 @@ Engine.LoadLibrary("heightmap");
|
||||
],
|
||||
avoidClasses(clForest, 1, clPlayer, 0, clPath, 3, clWater, 3));
|
||||
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Growing fish");
|
||||
createFood(
|
||||
@ -373,7 +374,7 @@ Engine.LoadLibrary("heightmap");
|
||||
[avoidClasses(clFood, 5), stayClasses(clWater, 4)],
|
||||
clFood);
|
||||
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Planting reeds");
|
||||
const types = [aReeds];
|
||||
@ -385,7 +386,7 @@ Engine.LoadLibrary("heightmap");
|
||||
scaleByMapSize(1, 2) * 1000,
|
||||
1000);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Planting trees");
|
||||
for (let x = 0; x < mapSize; x++)
|
||||
@ -426,7 +427,7 @@ Engine.LoadLibrary("heightmap");
|
||||
|
||||
placePlayersNomad(clPlayer, avoidClasses(clWater, 4, clForest, 1, clFood, 2, clMetal, 4, clRock, 4));
|
||||
|
||||
Engine.SetProgress(100);
|
||||
yield 100;
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tMainTerrain = "alpine_snow_a";
|
||||
const tTier1Terrain = "snow rough";
|
||||
@ -95,10 +96,10 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"meanderShort": 40,
|
||||
"meanderLong": 20
|
||||
});
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
paintTileClassBasedOnHeight(-Infinity, heightShoreUpper, Elevation_ExcludeMin_ExcludeMax, clRiver);
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
createTributaryRivers(
|
||||
startAngle + Math.PI / 2,
|
||||
@ -111,7 +112,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
undefined,
|
||||
avoidClasses(clPlayer, 4));
|
||||
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -151,7 +152,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"maxDist": 12
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating pools");
|
||||
createAreas(
|
||||
@ -160,7 +161,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 20),
|
||||
scaleByMapSize(6, 20));
|
||||
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
createBumps(avoidClasses(clPlayer, 2));
|
||||
|
||||
@ -190,7 +191,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
tShore);
|
||||
paintTerrainBasedOnHeight(heightSnowline, Infinity, Elevation_ExcludeMin_ExcludeMax, tMainTerrain);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -214,7 +215,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
// Allow mines on the bumps at the river
|
||||
@ -237,7 +238,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clForest, 4, clWater, 1, clPlayer, 20, clMetal, 15, clRock, 5, clHill, 1),
|
||||
clMetal);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
createDecoration(
|
||||
[
|
||||
@ -256,7 +257,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clWater, 2, clForest, 0, clPlayer, 20, clHill, 1));
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -275,7 +276,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
],
|
||||
avoidClasses(clWater, 3, clPlayer, 20, clHill, 1, clFood, 10));
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
createFood(
|
||||
[
|
||||
@ -342,5 +343,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.6);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -254,7 +255,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new TerrainPainter(tCliff),
|
||||
new SlopeConstraint(2, Infinity));
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -289,7 +290,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"template": aGrassShort
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(...rBiomeTreeCount(1));
|
||||
@ -310,7 +311,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
[avoidClasses(clPlayer, 6, clForest, 10), stayClasses(clLand, 4)],
|
||||
num);
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -337,7 +338,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
5*scaleByMapSize(4, 16), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
createAreas(
|
||||
@ -385,7 +386,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
scaleByMapSize(8, 131), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating deer");
|
||||
group = new SimpleGroup(
|
||||
@ -397,7 +398,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating sheep");
|
||||
group = new SimpleGroup(
|
||||
@ -418,7 +419,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clPlayer, 10, clFood, 20), stayClasses(clLand, 4)],
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -439,7 +440,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
group = new SimpleGroup(
|
||||
@ -452,7 +453,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clPlayer, 2, clDirt, 1, clForest, 0), stayClasses(clLand, 4)],
|
||||
planetm * scaleByMapSize(13, 200)
|
||||
);
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating bushes");
|
||||
group = new SimpleGroup(
|
||||
@ -474,5 +475,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
setSunRotation(randomAngle());
|
||||
setSunElevation(Math.PI * randFloat(1/5, 1/3));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -16,7 +17,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new MapBoundsPlacer(),
|
||||
new TileClassPainter(g_TileClasses.land));
|
||||
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
const [playerIDs, playerPosition] =
|
||||
createBases(
|
||||
@ -29,7 +30,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
false);
|
||||
markPlayerAvoidanceArea(playerPosition, defaultPlayerBaseRadius());
|
||||
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -112,7 +113,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
if (!isNomad())
|
||||
createBluffsPassages(playerPosition);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
addElements([
|
||||
{
|
||||
@ -146,7 +147,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -201,7 +202,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": ["few", "normal", "many", "tons"]
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
@ -259,7 +260,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
"amounts": g_AllAmounts
|
||||
}
|
||||
]));
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
placePlayersNomad(
|
||||
g_TileClasses.player,
|
||||
@ -272,5 +273,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
g_TileClasses.mountain, 4,
|
||||
g_TileClasses.animals, 2));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
setSelectedBiome();
|
||||
|
||||
@ -74,7 +75,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
new SmoothElevationPainter(ELEVATION_SET, heightLand, 3),
|
||||
new TileClassPainter(clLand)
|
||||
]);
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
const [playerIDs, playerPosition, playerAngle, startAngle] =
|
||||
playerPlacementCircle(fractionToTiles(0.3));
|
||||
@ -125,12 +126,12 @@ Engine.LoadLibrary("rmbiome");
|
||||
clPlayer.add(attacker[i]);
|
||||
clPlayer.add(halfway[i]);
|
||||
}
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
paintTerrainBasedOnHeight(heightLand + 0.12, heightHill - 1, Elevation_IncludeMin_ExcludeMax, tCliff);
|
||||
paintTileClassBasedOnHeight(heightLand + 0.12, heightHill - 1, Elevation_IncludeMin_ExcludeMax,
|
||||
clHill);
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
const landConstraint = new StaticConstraint(stayClasses(clLand, 5));
|
||||
|
||||
@ -141,10 +142,10 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clPlayer, 5, clHill, 5), landConstraint],
|
||||
scaleByMapSize(40, 140),
|
||||
100);
|
||||
Engine.SetProgress(35);
|
||||
yield 35;
|
||||
|
||||
createBumps(landConstraint);
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
const hillConstraint = new AndConstraint(
|
||||
[
|
||||
@ -161,7 +162,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[hillConstraint, landConstraint],
|
||||
clHill,
|
||||
scaleByMapSize(10, 60) * numPlayers);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
createHills(
|
||||
[tCliff, tCliff, tHill],
|
||||
@ -173,7 +174,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
undefined,
|
||||
undefined,
|
||||
55);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(...rBiomeTreeCount(1));
|
||||
createForests(
|
||||
@ -186,7 +187,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
forestTrees);
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
createLayeredPatches(
|
||||
@ -196,7 +197,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12, clWomen, 5), landConstraint],
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
createPatches(
|
||||
@ -205,7 +206,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12, clWomen, 5), landConstraint],
|
||||
scaleByMapSize(15, 45),
|
||||
clDirt);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
let planetm = 1;
|
||||
if (currentBiome() == "generic/india")
|
||||
@ -227,7 +228,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
planetm * scaleByMapAreaAbsolute(13)
|
||||
],
|
||||
[avoidClasses(clForest, 0, clPlayer, 0, clHill, 0), landConstraint]);
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree1, oTree2, oTree4, oTree3],
|
||||
@ -235,7 +236,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
clForest,
|
||||
stragglerTrees);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tMainDirt = ["desert_dirt_rocks_1", "desert_dirt_cracks"];
|
||||
const tForestFloor1 = "forestfloor_dirty";
|
||||
@ -76,7 +77,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new TileClassPainter(clGrass)
|
||||
]);
|
||||
}
|
||||
Engine.SetProgress(10);
|
||||
yield 10;
|
||||
|
||||
placePlayerBases({
|
||||
"PlayerPlacement": [playerIDs, playerPosition],
|
||||
@ -106,7 +107,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
// No decoratives
|
||||
});
|
||||
Engine.SetProgress(20);
|
||||
yield 20;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -126,7 +127,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 3, clGrass, 1, clHill, 10),
|
||||
scaleByMapSize(1, 3) * numPlayers * 3);
|
||||
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [forestTrees, stragglerTrees] = getTreeCounts(400, 2000, 0.7);
|
||||
@ -150,7 +151,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 1, clGrass, 1, clForest, 10, clHill, 1),
|
||||
num);
|
||||
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)])
|
||||
@ -159,7 +160,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new LayeredPainter([tSecondaryDirt, tDirt], [1]),
|
||||
avoidClasses(clHill, 0, clForest, 0, clPlayer, 8, clGrass, 1),
|
||||
scaleByMapSize(50, 90));
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating big patches");
|
||||
for (const size of [scaleByMapSize(6, 30), scaleByMapSize(10, 50), scaleByMapSize(16, 70)])
|
||||
@ -168,7 +169,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
new LayeredPainter([tSecondaryDirt, tDirt], [1]),
|
||||
avoidClasses(clHill, 0, clForest, 0, clPlayer, 8, clGrass, 1),
|
||||
scaleByMapSize(30, 90));
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -224,7 +225,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clForest, 0, clPlayer, 0, clHill, 0),
|
||||
scaleByMapSize(50, 500), 50
|
||||
);
|
||||
Engine.SetProgress(80);
|
||||
yield 80;
|
||||
|
||||
g_Map.log("Creating gazelle");
|
||||
group = new SimpleGroup(
|
||||
@ -255,7 +256,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clForest, 0, clPlayer, 1, clHill, 1, clFood, 20, clGrass, 2),
|
||||
3 * numPlayers, 50
|
||||
);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
createStragglerTrees(
|
||||
[oPalm, oTamarix, oPine],
|
||||
@ -291,5 +292,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.6);
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tPrimary = "desert_sand_dunes_100";
|
||||
const tCity = "desert_city_tile";
|
||||
@ -107,7 +108,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"template": aBush1
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
const riverTextures = [
|
||||
{
|
||||
@ -178,7 +179,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
}
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Creating bumps");
|
||||
createAreas(
|
||||
@ -230,7 +231,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
num,
|
||||
50);
|
||||
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating grass patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -255,7 +256,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clShore, 1,
|
||||
clPond, 1),
|
||||
scaleByMapSize(15, 45));
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -277,7 +278,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
clPond, 1),
|
||||
scaleByMapSize(15, 45));
|
||||
|
||||
Engine.SetProgress(60);
|
||||
yield 60;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
let group = new SimpleGroup(
|
||||
@ -338,7 +339,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(6, 20), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -366,7 +367,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clWater, 1, clPlayer, 0, clPond, 1),
|
||||
scaleByMapSize(20, 180), 50
|
||||
);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating gazelles");
|
||||
group = new SimpleGroup([new SimpleObject(oGazelle, 5, 7, 0, 4)], true, clFood);
|
||||
@ -423,7 +424,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
3 * scaleByMapSize(5, 20), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
createStragglerTrees(
|
||||
[oDatePalm, oSDatePalm],
|
||||
@ -502,5 +503,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
setWaterWaviness(3.0);
|
||||
setWaterType("lake");
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
@ -830,7 +831,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
}
|
||||
}
|
||||
|
||||
(g_MapSettings.Landscape ? unknownMapFunctions[g_MapSettings.Landscape] :
|
||||
(mapSettings.Landscape ? unknownMapFunctions[mapSettings.Landscape] :
|
||||
pickRandom(Object.values(unknownMapFunctions)))();
|
||||
|
||||
paintTerrainBasedOnHeight(heightCliff, 40, 1, tCliff);
|
||||
@ -902,7 +903,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clPlayer, 15, clHill, randIntInclusive(6, 18)), stayClasses(clLand, 0)],
|
||||
randIntInclusive(0, scaleByMapSize(4, 8))*randIntInclusive(1, scaleByMapSize(4, 9))
|
||||
);
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
g_Map.log("Creating forests");
|
||||
const [numForest, numStragglers] = getTreeCounts(...rBiomeTreeCount(1));
|
||||
@ -925,7 +926,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
stayClasses(clLand, 4)
|
||||
],
|
||||
num);
|
||||
Engine.SetProgress(50);
|
||||
yield 50;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
const patchCount = (currentBiome() == "generic/savanna" ? 3 : 1) * scaleByMapSize(15, 45);
|
||||
@ -953,7 +954,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 0, clHill, 2, clDirt, 5, clPlayer, 7), stayClasses(clLand, 4)],
|
||||
patchCount);
|
||||
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Creating stone mines");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -984,7 +985,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clForest, 1, clPlayer, 10, clMetal, 10, clRock, 5, clHill, 2), stayClasses(clLand, 3)],
|
||||
randIntInclusive(scaleByMapSize(2, 9), scaleByMapSize(9, 40)),
|
||||
100);
|
||||
Engine.SetProgress(65);
|
||||
yield 65;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -1003,7 +1004,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
[avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 2), stayClasses(clLand, 3)],
|
||||
scaleByMapSize(8, 131),
|
||||
50);
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating deer");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -1026,7 +1027,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
],
|
||||
randIntInclusive(1, 4) * numPlayers + 2,
|
||||
50);
|
||||
Engine.SetProgress(75);
|
||||
yield 75;
|
||||
|
||||
g_Map.log("Creating sheep");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -1046,7 +1047,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
avoidClasses(clLand, 4, clForest, 0, clPlayer, 0, clHill, 2, clFood, 20),
|
||||
randIntInclusive(15, 40) * numPlayers,
|
||||
60);
|
||||
Engine.SetProgress(85);
|
||||
yield 85;
|
||||
|
||||
g_Map.log("Creating straggler trees");
|
||||
types = [g_Gaia.tree1, g_Gaia.tree2, g_Gaia.tree3, g_Gaia.tree4];
|
||||
@ -1077,7 +1078,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
0,
|
||||
[avoidClasses(clWater, 2, clHill, 2, clPlayer, 2, clDirt, 0), stayClasses(clLand, 3)],
|
||||
planetm * scaleByMapSize(13, 200));
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating large grass tufts");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -1092,7 +1093,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
stayClasses(clLand, 3)
|
||||
],
|
||||
planetm * scaleByMapSize(13, 200));
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
g_Map.log("Creating shallow flora");
|
||||
createObjectGroupsDeprecated(
|
||||
@ -1118,5 +1119,5 @@ Engine.LoadLibrary("rmbiome");
|
||||
placePlayersNomad(clPlayer,
|
||||
avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2, clWater, 10));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
const tGrass = ["cliff volcanic light", "ocean_rock_a", "ocean_rock_b"];
|
||||
const tGrassA = "cliff volcanic light";
|
||||
@ -60,10 +61,10 @@ Engine.LoadLibrary("rmgen-common");
|
||||
"count": scaleByMapSize(12, 30)
|
||||
}
|
||||
});
|
||||
Engine.SetProgress(15);
|
||||
yield 15;
|
||||
|
||||
createVolcano(mapCenter, clHill, tCliff, [tLava1, tLava2, tLava3], true, ELEVATION_SET);
|
||||
Engine.SetProgress(45);
|
||||
yield 45;
|
||||
|
||||
g_Map.log("Creating hills");
|
||||
createAreas(
|
||||
@ -95,7 +96,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
avoidClasses(clPlayer, 12, clForest, 10, clHill, 0, clBaseResource, 6),
|
||||
num);
|
||||
|
||||
Engine.SetProgress(70);
|
||||
yield 70;
|
||||
|
||||
g_Map.log("Creating dirt patches");
|
||||
for (const size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
|
||||
@ -154,7 +155,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(4, 16), 100
|
||||
);
|
||||
|
||||
Engine.SetProgress(90);
|
||||
yield 90;
|
||||
|
||||
g_Map.log("Creating small decorative rocks");
|
||||
group = new SimpleGroup(
|
||||
@ -178,7 +179,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
scaleByMapSize(8, 131), 50
|
||||
);
|
||||
|
||||
Engine.SetProgress(95);
|
||||
yield 95;
|
||||
|
||||
createStragglerTrees(
|
||||
[oTree],
|
||||
@ -188,5 +189,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
placePlayersNomad(clPlayer, avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4));
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
globalThis.g_Map = new RandomMap(0, "grass1");
|
||||
|
||||
@ -406,5 +407,5 @@ Engine.LoadLibrary("rmgen-common");
|
||||
placeLinearWall(start, end, ['tower', 'medium'], wallStyleList[styleIndex], playerID);
|
||||
}
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
Engine.LoadLibrary("heightmap");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
globalThis.g_Map = new RandomMap(0, "whiteness");
|
||||
|
||||
@ -508,7 +509,7 @@ Engine.LoadLibrary("heightmap");
|
||||
g_Map.log("Rescaling map");
|
||||
rescaleHeightmap(heightRange.min, heightRange.max);
|
||||
|
||||
Engine.SetProgress(25);
|
||||
yield 25;
|
||||
|
||||
/**
|
||||
* Prepare terrain texture placement
|
||||
@ -549,7 +550,7 @@ Engine.LoadLibrary("heightmap");
|
||||
new ClumpPlacer(diskArea(20), 0.8, 0.8, Infinity, position),
|
||||
new SmoothElevationPainter(ELEVATION_SET, g_Map.getHeight(position), 20));
|
||||
|
||||
Engine.SetProgress(30);
|
||||
yield 30;
|
||||
|
||||
/**
|
||||
* Calculate tile centered height map after start position smoothing but
|
||||
@ -621,7 +622,7 @@ Engine.LoadLibrary("heightmap");
|
||||
if (entity)
|
||||
g_Map.placeEntityPassable(entity, 0, randomPositionOnTile(point), randomAngle());
|
||||
}
|
||||
Engine.SetProgress(40);
|
||||
yield 40;
|
||||
|
||||
g_Map.log("Placing resources");
|
||||
const avoidPoints = playerPosition.map(pos => pos.clone());
|
||||
@ -630,7 +631,7 @@ Engine.LoadLibrary("heightmap");
|
||||
const resourceSpots = getPointsByHeight(resourceSpotHeightRange, avoidPoints).map(point =>
|
||||
new Vector2D(point.x, point.y));
|
||||
|
||||
Engine.SetProgress(55);
|
||||
yield 55;
|
||||
|
||||
g_Map.log("Placing players");
|
||||
if (isNomad())
|
||||
@ -687,5 +688,5 @@ Engine.LoadLibrary("heightmap");
|
||||
radius / 3));
|
||||
}
|
||||
|
||||
g_Map.ExportMap();
|
||||
return g_Map;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user