forked from mirrors/0ad
84fae4baeb
This was SVN commit r18498.
267 lines
5.4 KiB
JavaScript
267 lines
5.4 KiB
JavaScript
RMS.LoadLibrary("rmgen");
|
|
RMS.LoadLibrary("rmgen2");
|
|
|
|
InitMap();
|
|
|
|
randomizeBiome();
|
|
initMapSettings();
|
|
initTileClasses();
|
|
|
|
RMS.SetProgress(10);
|
|
|
|
// Pick a random elevation with a bias towards lower elevations
|
|
var randElevation = randInt(30);
|
|
if (randElevation < 25)
|
|
randElevation = 1 + randInt(4);
|
|
|
|
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, randElevation);
|
|
RMS.SetProgress(20);
|
|
|
|
var pos = randomStartingPositionPattern();
|
|
addBases(pos.setup, pos.distance, pos.separation);
|
|
RMS.SetProgress(40);
|
|
|
|
var features = [
|
|
{
|
|
"func": addBluffs,
|
|
"avoid": [
|
|
g_TileClasses.bluff, 20,
|
|
g_TileClasses.hill, 10,
|
|
g_TileClasses.mountain, 20,
|
|
g_TileClasses.plateau, 15,
|
|
g_TileClasses.player, 30,
|
|
g_TileClasses.valley, 5,
|
|
g_TileClasses.water, 7
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": g_AllAmounts
|
|
},
|
|
{
|
|
"func": addHills,
|
|
"avoid": [
|
|
g_TileClasses.bluff, 5,
|
|
g_TileClasses.hill, 15,
|
|
g_TileClasses.mountain, 2,
|
|
g_TileClasses.plateau, 15,
|
|
g_TileClasses.player, 20,
|
|
g_TileClasses.valley, 2,
|
|
g_TileClasses.water, 2
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": g_AllAmounts
|
|
},
|
|
{
|
|
"func": addMountains,
|
|
"avoid": [
|
|
g_TileClasses.bluff, 20,
|
|
g_TileClasses.mountain, 25,
|
|
g_TileClasses.plateau, 15,
|
|
g_TileClasses.player, 20,
|
|
g_TileClasses.valley, 10,
|
|
g_TileClasses.water, 15
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": g_AllAmounts
|
|
},
|
|
{
|
|
"func": addPlateaus,
|
|
"avoid": [
|
|
g_TileClasses.bluff, 20,
|
|
g_TileClasses.mountain, 25,
|
|
g_TileClasses.plateau, 25,
|
|
g_TileClasses.plateau, 25,
|
|
g_TileClasses.player, 40,
|
|
g_TileClasses.valley, 10,
|
|
g_TileClasses.water, 15
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": g_AllAmounts
|
|
}
|
|
];
|
|
|
|
if (randElevation < 4)
|
|
features.push({
|
|
"func": addLakes,
|
|
"avoid": [
|
|
g_TileClasses.bluff, 7,
|
|
g_TileClasses.hill, 2,
|
|
g_TileClasses.mountain, 15,
|
|
g_TileClasses.plateau, 10,
|
|
g_TileClasses.player, 20,
|
|
g_TileClasses.valley, 10,
|
|
g_TileClasses.water, 25
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": g_AllAmounts
|
|
});
|
|
|
|
if (randElevation > 20)
|
|
features.push({
|
|
"func": addValleys,
|
|
"avoid": [
|
|
g_TileClasses.bluff, 5,
|
|
g_TileClasses.hill, 5,
|
|
g_TileClasses.mountain, 25,
|
|
g_TileClasses.plateau, 20,
|
|
g_TileClasses.player, 40,
|
|
g_TileClasses.valley, 15,
|
|
g_TileClasses.water, 10
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": g_AllAmounts
|
|
});
|
|
|
|
addElements(shuffleArray(features));
|
|
RMS.SetProgress(50);
|
|
|
|
addElements([
|
|
{
|
|
"func": addLayeredPatches,
|
|
"avoid": [
|
|
g_TileClasses.bluff, 2,
|
|
g_TileClasses.dirt, 5,
|
|
g_TileClasses.forest, 2,
|
|
g_TileClasses.mountain, 2,
|
|
g_TileClasses.plateau, 2,
|
|
g_TileClasses.player, 12,
|
|
g_TileClasses.water, 3
|
|
],
|
|
"sizes": ["normal"],
|
|
"mixes": ["normal"],
|
|
"amounts": ["normal"]
|
|
},
|
|
{
|
|
"func": addDecoration,
|
|
"avoid": [
|
|
g_TileClasses.bluff, 2,
|
|
g_TileClasses.forest, 2,
|
|
g_TileClasses.mountain, 2,
|
|
g_TileClasses.plateau, 2,
|
|
g_TileClasses.player, 12,
|
|
g_TileClasses.water, 3
|
|
],
|
|
"sizes": ["normal"],
|
|
"mixes": ["normal"],
|
|
"amounts": ["normal"]
|
|
}
|
|
]);
|
|
RMS.SetProgress(60);
|
|
|
|
addElements(shuffleArray([
|
|
{
|
|
"func": addMetal,
|
|
"avoid": [
|
|
g_TileClasses.berries, 5,
|
|
g_TileClasses.bluff, 5,
|
|
g_TileClasses.forest, 3,
|
|
g_TileClasses.mountain, 2,
|
|
g_TileClasses.plateau, 2,
|
|
g_TileClasses.player, 30,
|
|
g_TileClasses.rock, 10,
|
|
g_TileClasses.metal, 20,
|
|
g_TileClasses.water, 3
|
|
],
|
|
"sizes": ["normal"],
|
|
"mixes": ["same"],
|
|
"amounts": g_AllAmounts
|
|
},
|
|
{
|
|
"func": addStone,
|
|
"avoid": [
|
|
g_TileClasses.berries, 5,
|
|
g_TileClasses.bluff, 5,
|
|
g_TileClasses.forest, 3,
|
|
g_TileClasses.mountain, 2,
|
|
g_TileClasses.plateau, 2,
|
|
g_TileClasses.player, 30,
|
|
g_TileClasses.rock, 20,
|
|
g_TileClasses.metal, 10,
|
|
g_TileClasses.water, 3
|
|
],
|
|
"sizes": ["normal"],
|
|
"mixes": ["same"],
|
|
"amounts": g_AllAmounts
|
|
},
|
|
{
|
|
"func": addForests,
|
|
"avoid": [
|
|
g_TileClasses.berries, 5,
|
|
g_TileClasses.bluff, 5,
|
|
g_TileClasses.forest, 18,
|
|
g_TileClasses.metal, 3,
|
|
g_TileClasses.mountain, 5,
|
|
g_TileClasses.plateau, 5,
|
|
g_TileClasses.player, 20,
|
|
g_TileClasses.rock, 3,
|
|
g_TileClasses.water, 2
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": ["few", "normal", "many", "tons"]
|
|
}
|
|
]));
|
|
RMS.SetProgress(70);
|
|
|
|
addElements(shuffleArray([
|
|
{
|
|
"func": addBerries,
|
|
"avoid": [
|
|
g_TileClasses.berries, 30,
|
|
g_TileClasses.bluff, 5,
|
|
g_TileClasses.forest, 5,
|
|
g_TileClasses.metal, 10,
|
|
g_TileClasses.mountain, 2,
|
|
g_TileClasses.plateau, 2,
|
|
g_TileClasses.player, 20,
|
|
g_TileClasses.rock, 10,
|
|
g_TileClasses.water, 3
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": g_AllAmounts
|
|
},
|
|
{
|
|
"func": addAnimals,
|
|
"avoid": [
|
|
g_TileClasses.animals, 20,
|
|
g_TileClasses.bluff, 5,
|
|
g_TileClasses.forest, 2,
|
|
g_TileClasses.metal, 2,
|
|
g_TileClasses.mountain, 1,
|
|
g_TileClasses.plateau, 2,
|
|
g_TileClasses.player, 20,
|
|
g_TileClasses.rock, 2,
|
|
g_TileClasses.water, 3
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": g_AllAmounts
|
|
},
|
|
{
|
|
"func": addStragglerTrees,
|
|
"avoid": [
|
|
g_TileClasses.berries, 5,
|
|
g_TileClasses.bluff, 5,
|
|
g_TileClasses.forest, 7,
|
|
g_TileClasses.metal, 2,
|
|
g_TileClasses.mountain, 1,
|
|
g_TileClasses.plateau, 2,
|
|
g_TileClasses.player, 12,
|
|
g_TileClasses.rock, 2,
|
|
g_TileClasses.water, 5
|
|
],
|
|
"sizes": g_AllSizes,
|
|
"mixes": g_AllMixes,
|
|
"amounts": g_AllAmounts
|
|
}
|
|
]));
|
|
RMS.SetProgress(90);
|
|
|
|
ExportMap();
|