mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-16 05:13:58 -07:00
Delete _kali's Alpha 21 maps since it is not certain that they are not derived works, refs D957, 33e3e6c2ab, 34c26767ca, f61f051d74, c70975b116, a68881dd0f, 64b1da0ddf, 127ca4e177, #4226.
Keep now unused, yet unalteredly useful paintHeightmap JS function (until CMapReader::LoadRandomMap can load PMP files, refs #4816), bicubicInterpolation and randomPlayerPlacementAt. This was SVN commit r20362.
This commit is contained in:
parent
24f02d97eb
commit
f5375cbcb9
36 changed files with 0 additions and 3513 deletions
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e9b822e2c07c945a631c59acb104cbbf38f3d2d25888319b46aedfc85b14f309
|
||||
size 143052
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9a2817ef3afaaff9636bd26c5e9d240e183e06a889c9ac7c22df09fad2c32852
|
||||
size 104975
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eb5d243a1c71ab37d9ee780c2c093f442930ebbb98e1c5945ba887bd8c6c3ecc
|
||||
size 96699
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:97d09b25ecb296c9cd85c5984955cafa7fdb1f8c6e4c732e55f8163aabd02f89
|
||||
size 121830
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:092522b2cebd7f980a4ff5a52848ea85476c9eccd6e5177f87557d64506d7697
|
||||
size 126394
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8ffab06ac77168894da9c447145814136f5502b22b511fb86c51dc793f2dfbf2
|
||||
size 163703
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6ffb516d5fd8d7360076ecb792bd0e5288cfe864682f2d2afd65594a46404139
|
||||
size 116421
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:531d667a5465751515f8126ff5576c13edfaf5b325771417bddc9ebde0286886
|
||||
size 138800
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:383e1c4a20a368329115a58c4bfdc7c04cf62f9d19f2a6f4260bbdcbcfb1b546
|
||||
size 147664
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a91b10363be1ec8872cd2f22a3d2de838b9bfa301863a6621e4e31043c2f4ada
|
||||
size 507630
|
||||
|
|
@ -1,270 +0,0 @@
|
|||
// Coordinates: 0.138050, -50.466245
|
||||
// Map Width: 200km
|
||||
|
||||
RMS.LoadLibrary("rmgen");
|
||||
RMS.LoadLibrary("rmgen2");
|
||||
RMS.LoadLibrary("rmbiome");
|
||||
|
||||
InitMap();
|
||||
|
||||
log("Initializing tile classes...");
|
||||
setBiome("tropic");
|
||||
initTileClasses();
|
||||
|
||||
log("Initializing environment...");
|
||||
setSunColor(0.733, 0.746, 0.574);
|
||||
|
||||
setWaterTint(0.576, 0.541, 0.322);
|
||||
setWaterColor(0.521, 0.475, 0.322);
|
||||
setWaterWaviness(8);
|
||||
setWaterMurkiness(0.87);
|
||||
setWaterType("lake");
|
||||
|
||||
setTerrainAmbientColor(0.521, 0.475, 0.322);
|
||||
|
||||
setSunRotation(-1 * PI);
|
||||
setSunElevation(PI / 6.25);
|
||||
|
||||
setFogFactor(0);
|
||||
setFogThickness(0);
|
||||
setFogColor(0.69, 0.616, 0.541);
|
||||
|
||||
setPPEffect("hdr");
|
||||
setPPContrast(0.67);
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
log("Initializing biome...");
|
||||
g_Terrains.mainTerrain = "tropic_dirt_a_plants";
|
||||
g_Terrains.forestFloor1 = "tropic_grass_c";
|
||||
g_Terrains.forestFloor2 = "tropic_grass_c";
|
||||
g_Terrains.tier1Terrain = "tropic_dirt_a";
|
||||
g_Terrains.tier2Terrain = "tropic_plants";
|
||||
g_Terrains.tier3Terrain = "tropic_grass_plants";
|
||||
g_Terrains.tier4Terrain = "tropic_dirt_a_plants";
|
||||
g_Terrains.roadWild = "road_rome_a";
|
||||
g_Terrains.road = "road_stones";
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_peacock";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_crocodile";
|
||||
g_Gaia.fish = "gaia/fauna_fish_tilapia";
|
||||
g_Gaia.tree1 = "gaia/flora_tree_palm_tropical";
|
||||
g_Gaia.tree2 = "gaia/flora_tree_date_palm";
|
||||
g_Gaia.tree3 = "gaia/flora_tree_date_palm";
|
||||
g_Gaia.tree4 = "gaia/flora_tree_palm_tropical";
|
||||
g_Gaia.tree5 = "gaia/flora_tree_date_palm";
|
||||
g_Gaia.fruitBush = "gaia/flora_bush_berry";
|
||||
g_Decoratives.grass = "actor|props/flora/grass_tropical.xml";
|
||||
g_Decoratives.grassShort = "actor|props/flora/grass_soft_tuft_a.xml";
|
||||
g_Decoratives.rockLarge = "actor|geology/stone_savanna_med.xml";
|
||||
g_Decoratives.rockMedium = "actor|geology/stone_savanna_med.xml";
|
||||
g_Decoratives.bushMedium = "actor|props/flora/bush_tropic_a.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_tropic_b.xml";
|
||||
RMS.SetProgress(5);
|
||||
|
||||
log("Resetting terrain...");
|
||||
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
|
||||
RMS.SetProgress(10);
|
||||
|
||||
log("Copying heightmap...");
|
||||
var scale = paintHeightmap("amazon");
|
||||
RMS.SetProgress(30);
|
||||
|
||||
log("Paint tile classes...");
|
||||
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
|
||||
RMS.SetProgress(40);
|
||||
|
||||
log("Placing players...");
|
||||
//Coordinate system of the heightmap
|
||||
var singleBases = [
|
||||
[90, 115],
|
||||
[240, 157],
|
||||
[35, 155],
|
||||
[140, 25],
|
||||
[260, 75],
|
||||
[160, 285],
|
||||
[105, 220],
|
||||
[185, 90]
|
||||
];
|
||||
var strongholdBases = [
|
||||
[80, 240],
|
||||
[190, 60]
|
||||
];
|
||||
randomPlayerPlacementAt(getTeamsArray(), singleBases, strongholdBases, scale, 0.06);
|
||||
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": ["many"]
|
||||
},
|
||||
{
|
||||
"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": ["many"]
|
||||
}
|
||||
]);
|
||||
|
||||
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": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"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": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"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": ["normal"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["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": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"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": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 12,
|
||||
g_TileClasses.player, 8
|
||||
],
|
||||
"stay": [g_TileClasses.water, 4],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"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": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(80);
|
||||
|
||||
log("Adding lillies...");
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[
|
||||
new SimpleObject(g_Decoratives.lillies, 5, 12, 1, 4),
|
||||
new SimpleObject(g_Decoratives.rockMedium, 1, 2, 1, 5)
|
||||
],
|
||||
true,
|
||||
g_TileClasses.dirt
|
||||
),
|
||||
0,
|
||||
[
|
||||
stayClasses(g_TileClasses.water, 1),
|
||||
borderClasses(g_TileClasses.water, scaleByMapSize(2,8), scaleByMapSize(2,5))
|
||||
],
|
||||
scaleByMapSize(100, 5000),
|
||||
500
|
||||
);
|
||||
RMS.SetProgress(90);
|
||||
|
||||
ExportMap();
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"settings" : {
|
||||
"Name" : "Amazon",
|
||||
"Script" : "amazon.js",
|
||||
"Description" : "Players are transported into the tropics to the mouth of the great Amazon, which is arguably the longest and largest river in the world. Will you triumph and take control of this tropical paradise, or will you be trampled into the dust by ruthless and ambitious enemies?",
|
||||
"BaseTerrain" : ["medit_sea_depths"],
|
||||
"BaseHeight" : 1,
|
||||
"Keywords": [],
|
||||
"Preview" : "amazon.png",
|
||||
"CircularMap" : false
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5930d037dad11dfccc3fb8978fc677e6020ed5e5c16675c133b5615710aba68a
|
||||
size 697898
|
||||
|
|
@ -1,433 +0,0 @@
|
|||
// Coordinates: 25.574723, 50.670750
|
||||
// Map Width: 180km
|
||||
|
||||
RMS.LoadLibrary("rmgen");
|
||||
RMS.LoadLibrary("rmgen2");
|
||||
RMS.LoadLibrary("rmbiome");
|
||||
|
||||
InitMap();
|
||||
|
||||
setBiome("desert");
|
||||
initTileClasses(["island"]);
|
||||
|
||||
log("Initializing environment...");
|
||||
|
||||
setSunColor(0.733, 0.746, 0.574);
|
||||
setSkySet("cloudless");
|
||||
|
||||
setWaterTint(0.37, 0.67, 0.73);
|
||||
setWaterColor(0.24, 0.44, 0.56);
|
||||
setWaterWaviness(9);
|
||||
setWaterMurkiness(0.8);
|
||||
setWaterType("lake");
|
||||
|
||||
setTerrainAmbientColor(0.521, 0.475, 0.322);
|
||||
|
||||
setSunRotation(-1 * PI);
|
||||
setSunElevation(PI / 6.25);
|
||||
|
||||
setFogFactor(0);
|
||||
setFogThickness(0);
|
||||
setFogColor(0.69, 0.616, 0.541);
|
||||
|
||||
setPPEffect("hdr");
|
||||
setPPContrast(0.67);
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
log("Initializing biome...");
|
||||
g_Terrains.mainTerrain = "desert_dirt_rough_2";
|
||||
g_Terrains.forestFloor1 = "grass_dead";
|
||||
g_Terrains.forestFloor2 = "desert_dirt_persia_1";
|
||||
g_Terrains.tier1Terrain = "desert_sand_dunes_stones";
|
||||
g_Terrains.tier2Terrain = "desert_sand_scrub";
|
||||
g_Terrains.tier3Terrain = "desert_plants_b";
|
||||
g_Terrains.tier4Terrain = "medit_dirt_dry";
|
||||
g_Terrains.roadWild = "desert_city_tile_pers_dirt";
|
||||
g_Terrains.road = "desert_city_tile_pers";
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_camel";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_gazelle";
|
||||
g_Gaia.fish = "gaia/fauna_fish";
|
||||
g_Gaia.tree1 = "gaia/flora_tree_cretan_date_palm_tall";
|
||||
g_Gaia.tree2 = "gaia/flora_tree_cretan_date_palm_short";
|
||||
g_Gaia.tree3 = "gaia/flora_tree_cretan_date_palm_patch";
|
||||
g_Gaia.tree4 = "gaia/flora_tree_cretan_date_palm_tall";
|
||||
g_Gaia.tree5 = "gaia/flora_tree_cretan_date_palm_short";
|
||||
g_Gaia.fruitBush = "gaia/flora_bush_grapes";
|
||||
g_Decoratives.grass = "actor|props/flora/grass_field_parched_short.xml";
|
||||
g_Decoratives.grassShort = "actor|props/flora/grass_field_parched_short.xml";
|
||||
g_Decoratives.rockLarge = "actor|geology/stone_savanna_med.xml";
|
||||
g_Decoratives.rockMedium = "actor|geology/stone_granite_greek_small.xml";
|
||||
g_Decoratives.bushMedium = "actor|props/flora/bush_desert_dry_a.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_medit_la_dry";
|
||||
RMS.SetProgress(5);
|
||||
|
||||
log("Resetting terrain...");
|
||||
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
|
||||
RMS.SetProgress(10);
|
||||
|
||||
log("Copying heightmap...");
|
||||
var scale = paintHeightmap("bahrain", (tile, x, y) => {
|
||||
if (tile == "sand")
|
||||
addToClass(x, y, g_TileClasses.island);
|
||||
});
|
||||
RMS.SetProgress(20);
|
||||
|
||||
log("Paint tile classes...");
|
||||
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
|
||||
RMS.SetProgress(40);
|
||||
|
||||
log("Placing players...");
|
||||
const numPlayers = getNumPlayers();
|
||||
const teamsArray = getTeamsArray();
|
||||
|
||||
//Coordinate system of the heightmap
|
||||
var singleBases = [
|
||||
[30, 220],
|
||||
[230, 30],
|
||||
[75, 130],
|
||||
[120, 35],
|
||||
[210, 110],
|
||||
[240, 220]
|
||||
];
|
||||
|
||||
if (numPlayers > singleBases.length)
|
||||
singleBases.push(
|
||||
[40, 55],
|
||||
[280, 150]
|
||||
);
|
||||
|
||||
var strongholdBases = [
|
||||
[75, 55],
|
||||
[250, 55]
|
||||
];
|
||||
|
||||
if (teamsArray.length > strongholdBases.length)
|
||||
strongholdBases.push(
|
||||
[45, 180],
|
||||
[260, 195]
|
||||
);
|
||||
|
||||
randomPlayerPlacementAt(teamsArray, singleBases, strongholdBases, scale, 0.06);
|
||||
RMS.SetProgress(50);
|
||||
|
||||
log("Render mainland...");
|
||||
addElements([
|
||||
{
|
||||
"func": addLayeredPatches,
|
||||
"avoid": [
|
||||
g_TileClasses.dirt, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addDecoration,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["small"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 20,
|
||||
g_TileClasses.metal, 30,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal"]
|
||||
},
|
||||
{
|
||||
"func": addStone,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 30,
|
||||
g_TileClasses.metal, 20,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]));
|
||||
|
||||
addElements([
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 35,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["big"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["few"]
|
||||
},
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 18,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
]);
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addBerries,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 30,
|
||||
g_TileClasses.forest, 5,
|
||||
g_TileClasses.metal, 10,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 10,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few"]
|
||||
},
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 20,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 1,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 12,
|
||||
g_TileClasses.player, 8
|
||||
],
|
||||
"stay": [g_TileClasses.water, 4],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 7,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 5,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["small"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(65);
|
||||
|
||||
g_Terrains.mainTerrain = "sand";
|
||||
g_Terrains.forestFloor1 = "desert_wave";
|
||||
g_Terrains.forestFloor2 = "desert_sahara";
|
||||
g_Terrains.tier1Terrain = "sand_scrub_25";
|
||||
g_Terrains.tier2Terrain = "sand_scrub_75";
|
||||
g_Terrains.tier3Terrain = "sand_scrub_50";
|
||||
g_Terrains.tier4Terrain = "sand";
|
||||
|
||||
log("Render island...");
|
||||
addElements([
|
||||
{
|
||||
"func": addLayeredPatches,
|
||||
"avoid": [
|
||||
g_TileClasses.dirt, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["few"]
|
||||
},
|
||||
{
|
||||
"func": addDecoration,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["tiny"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["scarce"]
|
||||
}
|
||||
]);
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 7,
|
||||
g_TileClasses.metal, 7,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addStone,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 7,
|
||||
g_TileClasses.metal, 7,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 10,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.water, 2
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["normal"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 7,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 5
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
|
||||
RMS.SetProgress(80);
|
||||
|
||||
log("Adding more decoratives...");
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[
|
||||
new SimpleObject("actor|props/special/eyecandy/awning_wood_small.xml", 1, 1, 1, 7),
|
||||
new SimpleObject("actor|props/special/eyecandy/barrels_buried.xml", 1, 2, 1, 7)
|
||||
],
|
||||
true,
|
||||
g_TileClasses.dirt
|
||||
),
|
||||
0,
|
||||
avoidClasses(
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.player, 10,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.forest, 2
|
||||
),
|
||||
2 * scaleByMapSize(1, 4),
|
||||
200
|
||||
);
|
||||
RMS.SetProgress(85);
|
||||
|
||||
log("Creating food treasures...");
|
||||
for (let treasure of ["wood", "food_bin"])
|
||||
{
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[new SimpleObject("gaia/special_treasure_" + treasure, 1, 1, 0, 2)],
|
||||
true
|
||||
),
|
||||
0,
|
||||
avoidClasses(
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.player, 25,
|
||||
g_TileClasses.forest, 2
|
||||
),
|
||||
3 * numPlayers,
|
||||
200
|
||||
);
|
||||
}
|
||||
RMS.SetProgress(90);
|
||||
|
||||
log("Creating shipwrecks...");
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[new SimpleObject("other/special_treasure_shipwreck_sail_boat_cut", 1, 1, 0, 1)],
|
||||
true
|
||||
),
|
||||
0,
|
||||
stayClasses(g_TileClasses.water, 2),
|
||||
numPlayers,
|
||||
200
|
||||
);
|
||||
RMS.SetProgress(95);
|
||||
|
||||
ExportMap();
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"settings" : {
|
||||
"Name" : "Bahrain",
|
||||
"Script" : "bahrain.js",
|
||||
"Description" : "Bahrain, centre of the Dilmun civilization which fell in 800BC, was in turn controlled by Sumerians, Assyrians, Babylonians, Persians and other later peoples. An island strategically placed in the Sinus Persicus (Persian Gulf) and also centre of pearl trading due to its magnificent pearl fisheries, Bahrain is never left unoccupied for long. But now, with the previous occupants gone, the land prepares for war. Will you be the next Ruler of Bahrain?",
|
||||
"BaseTerrain" : ["medit_sea_depths"],
|
||||
"BaseHeight" : 1,
|
||||
"Keywords": ["naval"],
|
||||
"Preview" : "bahrain.png",
|
||||
"CircularMap" : false
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bc84416ba3d1c6aaa2eda98f5bd33f68d79c8b1541150b76466e17a0c48803f5
|
||||
size 740922
|
||||
|
|
@ -1,412 +0,0 @@
|
|||
// Coordinates: 49.545673, -123.309144
|
||||
// Map Width: 50km
|
||||
|
||||
RMS.LoadLibrary("rmgen");
|
||||
RMS.LoadLibrary("rmgen2");
|
||||
RMS.LoadLibrary("rmbiome");
|
||||
|
||||
InitMap();
|
||||
|
||||
setBiome("snowy");
|
||||
initTileClasses(["island"]);
|
||||
|
||||
log("Initializing environment...");
|
||||
setSunColor(0.733, 0.746, 0.574);
|
||||
setSkySet("stratus");
|
||||
|
||||
setWaterTint(0.388, 0.650, 0.661);
|
||||
setWaterColor(0.388, 0.650, 0.661);
|
||||
setWaterWaviness(8);
|
||||
setWaterMurkiness(0.8);
|
||||
setWaterType("lake");
|
||||
|
||||
setTerrainAmbientColor(0.349, 0.514, 0.671);
|
||||
|
||||
setSunRotation(PI * -0.5);
|
||||
setSunElevation(PI/9);
|
||||
|
||||
setFogFactor(0.08);
|
||||
setFogThickness(0);
|
||||
setFogColor(0.75, 0.75, 0.75);
|
||||
|
||||
setPPEffect("hdr");
|
||||
setPPContrast(0.67);
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
log("Initializing biome...");
|
||||
g_Terrains.mainTerrain = "snow rough";
|
||||
g_Terrains.forestFloor1 = "snow grass 2";
|
||||
g_Terrains.forestFloor2 = "snow 50";
|
||||
g_Terrains.tier1Terrain = "snow grass 100";
|
||||
g_Terrains.tier2Terrain = "snow rocks";
|
||||
g_Terrains.tier3Terrain = "snow rough";
|
||||
g_Terrains.tier4Terrain = "snow grass 75";
|
||||
g_Terrains.roadWild = "path a";
|
||||
g_Terrains.road = "road_flat";
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_muskox";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_wolf_snow";
|
||||
g_Gaia.fish = "gaia/fauna_fish";
|
||||
g_Gaia.tree1 = "gaia/flora_tree_pine_w";
|
||||
g_Gaia.tree2 = "gaia/flora_tree_pine_w";
|
||||
g_Gaia.tree3 = "gaia/flora_tree_pine_w";
|
||||
g_Gaia.tree4 = "gaia/flora_tree_dead";
|
||||
g_Gaia.tree5 = "gaia/flora_tree_pine_w";
|
||||
g_Gaia.metalSmall = "gaia/geology_metal_temperate";
|
||||
g_Gaia.fruitBush = "gaia/flora_bush_berry";
|
||||
g_Decoratives.grass = "actor|props/flora/grass_soft_dry_tuft_a.xml";
|
||||
g_Decoratives.grassShort = "actor|props/flora/grass_field_bloom_short.xml";
|
||||
g_Decoratives.rockLarge = "actor|props/special/eyecandy/standing_stones.xml";
|
||||
g_Decoratives.rockMedium = "actor|geology/stone_granite_small.xml";
|
||||
g_Decoratives.bushMedium = "actor|props/flora/bush_medit_me_dry.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_medit_sm_dry.xml";
|
||||
RMS.SetProgress(5);
|
||||
|
||||
log("Resetting terrain...");
|
||||
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
|
||||
RMS.SetProgress(10);
|
||||
|
||||
log("Copying heightmap...");
|
||||
var scale = paintHeightmap("howe_sound", (tile, x, y) => {
|
||||
if (tile.indexOf("polar_ice_cracked") >= 0)
|
||||
addToClass(x, y, g_TileClasses.island);
|
||||
});
|
||||
|
||||
log("Paint tile classes...");
|
||||
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
|
||||
RMS.SetProgress(40);
|
||||
|
||||
log("Placing players...");
|
||||
//Coordinate system of the heightmap
|
||||
var singleBases = [
|
||||
[40, 85],
|
||||
[230, 40],
|
||||
[280, 110],
|
||||
[240, 180],
|
||||
[50, 170],
|
||||
[100, 240],
|
||||
[280, 280],
|
||||
[170, 280]
|
||||
];
|
||||
var strongholdBases = [
|
||||
[90, 210],
|
||||
[255, 120]
|
||||
];
|
||||
randomPlayerPlacementAt(getTeamsArray(), singleBases, strongholdBases, scale, 0.06);
|
||||
RMS.SetProgress(50);
|
||||
|
||||
log("Render mainland...");
|
||||
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,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"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,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["few"]
|
||||
}
|
||||
]);
|
||||
|
||||
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, 20,
|
||||
g_TileClasses.metal, 30,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"func": addSmallMetal,
|
||||
"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, 30,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"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, 30,
|
||||
g_TileClasses.metal, 20,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.bluff, 5,
|
||||
g_TileClasses.forest, 15,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.mountain, 5,
|
||||
g_TileClasses.plateau, 5,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
|
||||
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,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"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,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 12,
|
||||
g_TileClasses.player, 8
|
||||
],
|
||||
"stay": [g_TileClasses.water, 4],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"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,
|
||||
g_TileClasses.island, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(65);
|
||||
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_bear";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_wolf_snow";
|
||||
|
||||
log("Render islands...");
|
||||
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, 10,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addSmallMetal,
|
||||
"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, 10,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"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, 10,
|
||||
g_TileClasses.metal, 10,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"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
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["huge"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.bluff, 5,
|
||||
g_TileClasses.forest, 8,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.mountain, 5,
|
||||
g_TileClasses.plateau, 5,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.water, 2
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["small"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.bluff, 5,
|
||||
g_TileClasses.forest, 5,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 1,
|
||||
g_TileClasses.plateau, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 5
|
||||
],
|
||||
"stay": [g_TileClasses.island, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(80);
|
||||
|
||||
log("Placing whale...");
|
||||
g_Gaia.fish = "gaia/fauna_whale_fin";
|
||||
addElements([
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 2,
|
||||
],
|
||||
"stay": [g_TileClasses.water, 7],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few"]
|
||||
}
|
||||
]);
|
||||
RMS.SetProgress(90);
|
||||
|
||||
ExportMap();
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"settings" : {
|
||||
"Name" : "Howe Sound",
|
||||
"Script" : "howe_sound.js",
|
||||
"Description" : "Howe Sound is a roughly triangular network of fjords located directly northwest of present-day Vancouver, on the West Coast of today's Canada. The waters teem with whales and fish, while on land herds of muskox dig through deep snow to get at mushrooms and last summer's roots. Mines and forests also abound in this cold haven.",
|
||||
"BaseTerrain" : ["medit_sea_depths"],
|
||||
"BaseHeight" : 1,
|
||||
"Keywords": [],
|
||||
"Preview" : "howe_sound.png",
|
||||
"CircularMap" : false
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9a5e8c4b75211d88180d43b6b1f440a0f1bfa3a91f6eabb7b5d878e6fe9b22de
|
||||
size 581440
|
||||
|
|
@ -1,300 +0,0 @@
|
|||
// Coordinates: 40.879820, 28.306729
|
||||
// Map Width: 400km
|
||||
|
||||
RMS.LoadLibrary("rmgen");
|
||||
RMS.LoadLibrary("rmgen2");
|
||||
RMS.LoadLibrary("rmbiome");
|
||||
|
||||
InitMap();
|
||||
|
||||
log("Initializing tile classes...");
|
||||
setBiome("mediterranean");
|
||||
initTileClasses();
|
||||
|
||||
log("Initializing environment...");
|
||||
|
||||
setSunColor(0.753, 0.586, 0.584);
|
||||
setSkySet("sunset");
|
||||
|
||||
setWaterHeight(18);
|
||||
setWaterTint(0.25, 0.67, 0.65);
|
||||
setWaterColor(0.18, 0.36, 0.39);
|
||||
setWaterWaviness(8);
|
||||
setWaterMurkiness(0.99);
|
||||
setWaterType("lake");
|
||||
|
||||
setTerrainAmbientColor(0.521, 0.475, 0.322);
|
||||
|
||||
setSunRotation(PI * .85);
|
||||
setSunElevation(PI / 14);
|
||||
|
||||
setFogFactor(0.15);
|
||||
setFogThickness(0);
|
||||
setFogColor(0.64, 0.5, 0.35);
|
||||
|
||||
setPPEffect("hdr");
|
||||
setPPContrast(0.67);
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
log("Initializing biome...");
|
||||
g_Terrains.mainTerrain = "grass_mediterranean_dry_1024test";
|
||||
g_Terrains.forestFloor1 = "steppe_grass_dirt_66";
|
||||
g_Terrains.forestFloor2 = "steppe_dirt_a";
|
||||
g_Terrains.tier1Terrain = "medit_grass_field_b";
|
||||
g_Terrains.tier2Terrain = "medit_grass_field_dry";
|
||||
g_Terrains.tier3Terrain = "medit_shrubs_golden";
|
||||
g_Terrains.tier4Terrain = "steppe_dirt_b";
|
||||
g_Terrains.roadWild = "road_med_a";
|
||||
g_Terrains.road = "road2";
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_horse";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_boar";
|
||||
g_Gaia.fish = "gaia/fauna_fish";
|
||||
g_Gaia.tree1 = "gaia/flora_tree_carob";
|
||||
g_Gaia.tree2 = "gaia/flora_tree_poplar_lombardy";
|
||||
g_Gaia.tree3 = "gaia/flora_tree_dead";
|
||||
g_Gaia.tree4 = "gaia/flora_tree_dead";
|
||||
g_Gaia.tree5 = "gaia/flora_tree_carob";
|
||||
g_Gaia.fruitBush = "gaia/flora_bush_grapes";
|
||||
g_Gaia.metalSmall = "gaia/geology_metal_desert_small";
|
||||
g_Decoratives.grass = "actor|props/special/eyecandy/block_limestone.xml";
|
||||
g_Decoratives.grassShort = "actor|props/special/eyecandy/blocks_sandstone_pile_a.xml";
|
||||
g_Decoratives.rockLarge = "actor|geology/stone_savanna_med.xml";
|
||||
g_Decoratives.rockMedium = "actor|geology/stone_granite_small.xml";
|
||||
g_Decoratives.bushMedium = "actor|props/flora/bush_medit_me_dry.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_medit_sm_dry.xml";
|
||||
g_Decoratives.reeds = "actor|props/flora/reeds_pond_lush_a.xml";
|
||||
RMS.SetProgress(5);
|
||||
|
||||
log("Resetting terrain...");
|
||||
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
|
||||
RMS.SetProgress(10);
|
||||
|
||||
log("Copying heightmap...");
|
||||
var scale = paintHeightmap("marmara", (tile, x, y) => {
|
||||
if (tile.indexOf("cliff") >= 0)
|
||||
addToClass(x, y, g_TileClasses.mountain);
|
||||
});
|
||||
RMS.SetProgress(30);
|
||||
|
||||
log("Paint tile classes...");
|
||||
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
|
||||
RMS.SetProgress(40);
|
||||
|
||||
log("Placing players...");
|
||||
// Coordinate system of the heightmap
|
||||
var singleBases = [
|
||||
[40, 175],
|
||||
[80, 280],
|
||||
[120, 40],
|
||||
[285, 165],
|
||||
[200, 50]
|
||||
];
|
||||
|
||||
if (getMapSize() >= 320 || getNumPlayers() > singleBases.length)
|
||||
singleBases.push(
|
||||
[45, 70],
|
||||
[280, 80],
|
||||
[125, 205]
|
||||
);
|
||||
|
||||
var strongholdBases = [
|
||||
[265, 65],
|
||||
[60, 220],
|
||||
[105, 60]
|
||||
];
|
||||
randomPlayerPlacementAt(getTeamsArray(), singleBases, strongholdBases, scale, 0.06);
|
||||
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": ["many"]
|
||||
},
|
||||
{
|
||||
"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": ["many"]
|
||||
}
|
||||
]);
|
||||
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, 20,
|
||||
g_TileClasses.metal, 30,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"func": addSmallMetal,
|
||||
"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, 30,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"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, 30,
|
||||
g_TileClasses.metal, 20,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.bluff, 5,
|
||||
g_TileClasses.forest, 10,
|
||||
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": ["normal"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["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": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"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": ["huge"],
|
||||
"mixes": ["unique"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 12,
|
||||
g_TileClasses.player, 8
|
||||
],
|
||||
"stay": [g_TileClasses.water, 4],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.bluff, 5,
|
||||
g_TileClasses.forest, 5,
|
||||
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": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(80);
|
||||
|
||||
log("Adding reeds...");
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[
|
||||
new SimpleObject(g_Decoratives.reeds, 5, 12, 1, 2),
|
||||
new SimpleObject(g_Decoratives.rockMedium, 1, 2, 1, 3)
|
||||
],
|
||||
true,
|
||||
g_TileClasses.dirt
|
||||
),
|
||||
0,
|
||||
[
|
||||
stayClasses(g_TileClasses.water, 0),
|
||||
borderClasses(g_TileClasses.water, scaleByMapSize(2,8), scaleByMapSize(2,8))
|
||||
],
|
||||
scaleByMapSize(1000, 4000),
|
||||
500
|
||||
);
|
||||
RMS.SetProgress(85);
|
||||
|
||||
ExportMap();
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"settings" : {
|
||||
"Name" : "Marmara",
|
||||
"Script" : "marmara.js",
|
||||
"Description" : "The Propontis (Sea of Marmara) connects the Pontus Euxinus (Black Sea) to the Aegean Sea, and seperates Asia Minor from Thrace. To the south-west lies the Hellespont (Dardanelles), at the entrance of which the ancient city of Ilium (Troy) once stood. To the north-east lies the Bosporus Thraciae (Bosporus strait) where in time the Greek city of Byzantium would be founded, later to become the capital of the great Byzantine Empire under the new name of Constantinople. Players start on fertile land with adequate resources.",
|
||||
"BaseTerrain" : ["medit_sea_depths"],
|
||||
"BaseHeight" : 1,
|
||||
"Keywords": [],
|
||||
"Preview" : "marmara.png",
|
||||
"CircularMap" : false
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fb03e3835246e575f590546cf5315fc4942491e0da200e79ec9e199c8c940944
|
||||
size 773169
|
||||
|
|
@ -1,502 +0,0 @@
|
|||
// Coordinates: 49.665548, 10.541500
|
||||
// Map Width: 5000km
|
||||
|
||||
RMS.LoadLibrary("rmgen");
|
||||
RMS.LoadLibrary("rmgen2");
|
||||
RMS.LoadLibrary("rmbiome");
|
||||
|
||||
InitMap();
|
||||
|
||||
log("Initializing environment...");
|
||||
setBiome("temperate");
|
||||
initTileClasses(["autumn", "desert", "medit", "polar", "steppe", "temp"]);
|
||||
|
||||
setSunColor(0.733, 0.746, 0.574);
|
||||
|
||||
setWindAngle(-0.589049);
|
||||
setWaterTint(0.556863, 0.615686, 0.643137);
|
||||
setWaterColor(0.494118, 0.639216, 0.713726);
|
||||
setWaterWaviness(8);
|
||||
setWaterMurkiness(0.87);
|
||||
setWaterType("ocean");
|
||||
|
||||
setTerrainAmbientColor(0.72, 0.72, 0.82);
|
||||
|
||||
setSunRotation(PI * 0.95);
|
||||
setSunElevation(PI / 6);
|
||||
|
||||
setSkySet("cumulus");
|
||||
setFogFactor(0);
|
||||
setFogThickness(0);
|
||||
setFogColor(0.69, 0.616, 0.541);
|
||||
|
||||
setPPEffect("hdr");
|
||||
setPPContrast(0.67);
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
log("Resetting terrain...");
|
||||
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
|
||||
RMS.SetProgress(10);
|
||||
|
||||
var biomes = {
|
||||
"autumn": {
|
||||
// terrains
|
||||
"mainTerrain": "temp_grass_d_aut",
|
||||
"forestFloor1": "temp_grass_long_b_aut",
|
||||
"forestFloor2": "temp_grass_long_b_aut",
|
||||
"roadWild": "road_rome_a",
|
||||
"road": "road_muddy",
|
||||
// gaia
|
||||
"tree1": "gaia/flora_tree_oak_aut_new",
|
||||
"tree2": "gaia/flora_tree_oak_dead",
|
||||
"tree3": "gaia/flora_tree_apple",
|
||||
"tree4": "gaia/flora_tree_euro_beech_aut",
|
||||
"tree5": "gaia/flora_tree_pine",
|
||||
"fruitBush": "gaia/flora_bush_berry",
|
||||
"mainHuntableAnimal": "gaia/fauna_sheep",
|
||||
"secondaryHuntableAnimal": "gaia/fauna_wolf",
|
||||
"stoneLarge": "gaia/geology_stonemine_temperate_quarry",
|
||||
"stoneSmall": "gaia/geology_stone_temperate",
|
||||
"metalLarge": "gaia/geology_metal_temperate_slabs",
|
||||
"metalSmall": "gaia/geology_metal_temperate",
|
||||
// decoratives
|
||||
"grass": "actor|props/flora/grass_soft_dry_small.xml",
|
||||
"grassShort": "actor|props/flora/grass_soft_dry_tuft_a.xml",
|
||||
"rockLarge": "actor|geology/stone_granite_med.xml",
|
||||
"rockMedium": "actor|geology/stone_granite_small.xml",
|
||||
"bushMedium": "actor|props/flora/bush_medit_me_dry.xml",
|
||||
"bushSmall": "actor|props/flora/bush_medit_sm_dry.xml",
|
||||
},
|
||||
"desert": {
|
||||
// terrains
|
||||
"mainTerrain": "sand_scrub_100",
|
||||
"forestFloor1": "sand_scrub_25",
|
||||
"forestFloor2": "sand_scrub_25",
|
||||
"roadWild": "desert_city_tile_pers",
|
||||
"road": "desert_city_tile_pers_dirt",
|
||||
// gaia
|
||||
"tree1": "gaia/flora_tree_cretan_date_palm_short",
|
||||
"tree2": "gaia/flora_tree_senegal_date_palm",
|
||||
"tree3": "gaia/flora_tree_date_palm",
|
||||
"tree4": "gaia/flora_tree_cretan_date_palm_tall",
|
||||
"tree5": "gaia/flora_tree_date_palm",
|
||||
"fruitBush": "gaia/flora_bush_grapes",
|
||||
"mainHuntableAnimal": "gaia/fauna_camel",
|
||||
"secondaryHuntableAnimal": "gaia/fauna_gazelle",
|
||||
"stoneLarge": "gaia/geology_stonemine_desert_quarry",
|
||||
"stoneSmall": "gaia/geology_stone_desert_small",
|
||||
"metalLarge": "gaia/geology_metal_desert_slabs",
|
||||
"metalSmall": "gaia/geology_metal_desert_small",
|
||||
// decoratives
|
||||
"grass": "actor|props/flora/grass_field_parched_tall.xml",
|
||||
"grassShort": "actor|props/flora/grass_soft_dry_tuft_a.xml",
|
||||
"rockLarge": "actor|structures/gravestone.xml",
|
||||
"rockMedium": "actor|geology/stone_desert_med.xml",
|
||||
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
|
||||
"bushSmall": "actor|props/flora/plant_desert_a.xml",
|
||||
},
|
||||
"medit": {
|
||||
// terrains
|
||||
"mainTerrain": "medit_grass_field_a",
|
||||
"forestFloor1": "medit_grass_wild",
|
||||
"forestFloor2": "medit_grass_wild",
|
||||
"roadWild": "road_rome_a",
|
||||
"road": "road_muddy",
|
||||
// gaia
|
||||
"tree1": "gaia/flora_tree_poplar_lombardy",
|
||||
"tree2": "gaia/flora_tree_cypress",
|
||||
"tree3": "gaia/flora_tree_olive",
|
||||
"tree4": "gaia/flora_tree_carob",
|
||||
"tree5": "gaia/flora_tree_tamarix",
|
||||
"fruitBush": "gaia/flora_bush_grapes",
|
||||
"mainHuntableAnimal": "gaia/fauna_deer",
|
||||
"secondaryHuntableAnimal": "gaia/fauna_goat",
|
||||
"stoneLarge": "gaia/geology_stonemine_medit_quarry",
|
||||
"stoneSmall": "gaia/geology_stone_mediterranean",
|
||||
"metalLarge": "gaia/geology_metal_mediterranean_slabs",
|
||||
"metalSmall": "gaia/geology_metal_greek",
|
||||
// decoratives
|
||||
"grass": "actor|props/flora/grass_soft_small_tall.xml",
|
||||
"grassShort": "actor|props/flora/grass_soft_small.xml",
|
||||
"rockLarge": "actor|geology/stone_granite_greek_large.xml",
|
||||
"rockMedium": "actor|geology/stone_granite_greek_med.xml",
|
||||
"bushMedium": "actor|props/flora/bush_medit_underbrush.xml",
|
||||
"bushSmall": "actor|props/flora/bush_medit_me_lush.xml",
|
||||
},
|
||||
"polar": {
|
||||
// terrains
|
||||
"mainTerrain": "polar_tundra_snow",
|
||||
"forestFloor1": "ice_dirt",
|
||||
"forestFloor2": "ice_dirt",
|
||||
"roadWild": "road_flat",
|
||||
"road": "road1",
|
||||
// gaia
|
||||
"tree1": "gaia/flora_tree_pine_w",
|
||||
"tree2": "gaia/flora_tree_dead",
|
||||
"tree3": "gaia/flora_tree_dead",
|
||||
"tree4": "gaia/flora_tree_pine_w",
|
||||
"tree5": "gaia/flora_tree_pine_w",
|
||||
"fruitBush": "gaia/fauna_wolf_snow",
|
||||
"mainHuntableAnimal": "gaia/fauna_muskox",
|
||||
"secondaryHuntableAnimal": "gaia/fauna_wolf",
|
||||
"stoneLarge": "gaia/geology_stonemine_alpine_quarry",
|
||||
"stoneSmall": "gaia/geology_stone_alpine_a",
|
||||
"metalLarge": "gaia/geology_metal_alpine_slabs",
|
||||
"metalSmall": "gaia/geology_metal_alpine",
|
||||
// decoratives
|
||||
"grass": "actor|props/flora/grass_field_parched_short.xml",
|
||||
"grassShort": "actor|props/flora/grass_soft_dry_tuft_a.xml",
|
||||
"rockLarge": "actor|geology/stone_granite_med.xml",
|
||||
"rockMedium": "actor|geology/stone_granite_small.xml",
|
||||
"bushMedium": "actor|props/flora/bush_highlands.xml",
|
||||
"bushSmall": "actor|props/flora/bush_medit_sm.xml",
|
||||
},
|
||||
"steppe": {
|
||||
// terrains
|
||||
"mainTerrain": "steppe_grass_a",
|
||||
"forestFloor1": "steppe_grass_c",
|
||||
"forestFloor2": "steppe_grass_c",
|
||||
"roadWild": "road2",
|
||||
"road": "medit_city_tile_dirt",
|
||||
// gaia
|
||||
"tree1": "gaia/flora_tree_poplar",
|
||||
"tree2": "gaia/flora_tree_toona",
|
||||
"tree3": "gaia/flora_tree_dead",
|
||||
"tree4": "gaia/flora_tree_acacia",
|
||||
"tree5": "gaia/flora_tree_poplar_lombardy",
|
||||
"fruitBush": "gaia/flora_bush_grapes",
|
||||
"mainHuntableAnimal": "gaia/fauna_deer",
|
||||
"secondaryHuntableAnimal": "gaia/fauna_horse",
|
||||
"stoneLarge": "gaia/geology_stonemine_alpine_quarry",
|
||||
"stoneSmall": "gaia/geology_stone_alpine_a",
|
||||
"metalLarge": "gaia/geology_metal_alpine_slabs",
|
||||
"metalSmall": "gaia/geology_metal_alpine",
|
||||
// decoratives
|
||||
"grass": "actor|props/flora/grass_medit_flowering_tall.xml",
|
||||
"grassShort": "actor|props/flora/grass_field_bloom_short.xml",
|
||||
"rockLarge": "actor|geology/stone_granite_greek_med.xml",
|
||||
"rockMedium": "actor|geology/stone_granite_greek_small.xml",
|
||||
"bushMedium": "actor|props/flora/bush_dry_a.xml",
|
||||
"bushSmall": "actor|props/flora/bush_highlands.xml",
|
||||
},
|
||||
"temp": {
|
||||
// terrains
|
||||
"mainTerrain": "temp_grass_long",
|
||||
"forestFloor1": "temp_grass_clovers_2",
|
||||
"forestFloor2": "temp_grass_clovers_2",
|
||||
"roadWild": "temp_road_overgrown",
|
||||
"road": "temp_road",
|
||||
// gaia
|
||||
"tree1": "gaia/flora_tree_oak_new",
|
||||
"tree2": "gaia/flora_tree_oak_dead",
|
||||
"tree3": "gaia/flora_tree_apple",
|
||||
"tree4": "gaia/flora_tree_euro_beech",
|
||||
"tree5": "gaia/flora_tree_oak_large",
|
||||
"fruitBush": "gaia/flora_bush_berry",
|
||||
"mainHuntableAnimal": "gaia/fauna_pig",
|
||||
"secondaryHuntableAnimal": "gaia/fauna_boar",
|
||||
"stoneLarge": "gaia/geology_stonemine_temperate_quarry",
|
||||
"stoneSmall": "gaia/geology_stone_temperate",
|
||||
"metalLarge": "gaia/geology_metal_temperate_slabs",
|
||||
"metalSmall": "gaia/geology_metal_temperate",
|
||||
// decoratives
|
||||
"grass": "actor|props/flora/grass_soft_large_tall.xml",
|
||||
"grassShort": "actor|props/flora/grass_soft_large.xml",
|
||||
"rockLarge": "actor|geology/stone_granite_large.xml",
|
||||
"rockMedium": "actor|geology/stone_granite_med.xml",
|
||||
"bushMedium": "actor|props/flora/bush_tempe_b.xml",
|
||||
"bushSmall": "actor|props/flora/bush_tempe_underbrush.xml",
|
||||
}
|
||||
};
|
||||
|
||||
log("Copying heightmap...");
|
||||
var scale = paintHeightmap("mediterranean", (tile, x, y) => {
|
||||
|
||||
if (tile.indexOf("cliff") >= 0)
|
||||
addToClass(x, y, g_TileClasses.mountain);
|
||||
|
||||
if (tile.indexOf("desert") >= 0)
|
||||
addToClass(x, y, g_TileClasses.desert);
|
||||
|
||||
if (tile.indexOf("medit") >= 0 && tile.indexOf("sand") < 0)
|
||||
addToClass(x, y, g_TileClasses.medit);
|
||||
|
||||
if (tile.indexOf("polar") >= 0)
|
||||
addToClass(x, y, g_TileClasses.polar);
|
||||
|
||||
if (tile.indexOf("steppe") >= 0)
|
||||
addToClass(x, y, g_TileClasses.steppe);
|
||||
|
||||
if (tile.indexOf("temp") >= 0)
|
||||
addToClass(x, y, g_TileClasses.temp);
|
||||
|
||||
if (tile.indexOf("aut") >= 0)
|
||||
addToClass(x, y, g_TileClasses.autumn);
|
||||
});
|
||||
RMS.SetProgress(30);
|
||||
|
||||
log("Rendering water...");
|
||||
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
|
||||
RMS.SetProgress(40);
|
||||
|
||||
log("Placing player bases...");
|
||||
// Coordinate system of the heightmap
|
||||
var singleBases = [
|
||||
[70,30],
|
||||
[90,180],
|
||||
[270,75],
|
||||
[240,280],
|
||||
[160,180]
|
||||
];
|
||||
|
||||
if (getMapSize() >= 320 || getNumPlayers() > singleBases.length)
|
||||
singleBases.push(
|
||||
[140,60],
|
||||
[170,250],
|
||||
[210, 35],
|
||||
[300,155],
|
||||
[50,105]
|
||||
);
|
||||
|
||||
var strongholdBases = [
|
||||
[110,50],
|
||||
[180,260],
|
||||
[260,55]
|
||||
];
|
||||
|
||||
randomPlayerPlacementAt(getTeamsArray(), singleBases, strongholdBases, scale, 0.06, (tileX, tileY) => {
|
||||
|
||||
for (let biome in biomes)
|
||||
if (checkIfInClass(tileX, tileY, g_TileClasses[biome]))
|
||||
{
|
||||
setLocalBiome(biomes[biome]);
|
||||
break;
|
||||
}
|
||||
});
|
||||
RMS.SetProgress(50);
|
||||
|
||||
function setLocalBiome(b)
|
||||
{
|
||||
g_Terrains.mainTerrain = b.mainTerrain;
|
||||
g_Terrains.forestFloor1 = b.forestFloor1;
|
||||
g_Terrains.forestFloor2 = b.forestFloor2;
|
||||
g_Terrains.roadWild = b.roadWild;
|
||||
g_Terrains.road = b.road;
|
||||
g_Gaia.tree1 = b.tree1;
|
||||
g_Gaia.tree2 = b.tree2;
|
||||
g_Gaia.tree3 = b.tree3;
|
||||
g_Gaia.tree4 = b.tree4;
|
||||
g_Gaia.tree5 = b.tree5;
|
||||
g_Gaia.fruitBush = b.fruitBush;
|
||||
g_Gaia.mainHuntableAnimal = b.mainHuntableAnimal;
|
||||
g_Gaia.secondaryHuntableAnimal = b.secondaryHuntableAnimal;
|
||||
g_Gaia.stoneLarge = b.stoneLarge;
|
||||
g_Gaia.stoneSmall = b.stoneSmall;
|
||||
g_Gaia.metalLarge = b.metalLarge;
|
||||
g_Gaia.metalSmall = b.metalSmall;
|
||||
g_Decoratives.grass = b.grass;
|
||||
g_Decoratives.grassShort = b.grassShort;
|
||||
g_Decoratives.rockLarge = b.rockLarge;
|
||||
g_Decoratives.rockMedium = b.rockMedium;
|
||||
g_Decoratives.bushMedium = b.bushMedium;
|
||||
g_Decoratives.bushSmall = b.bushSmall;
|
||||
}
|
||||
|
||||
log("Placing fish...");
|
||||
g_Gaia.fish = "gaia/fauna_fish";
|
||||
addElements([
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 10,
|
||||
],
|
||||
"stay": [g_TileClasses.water, 4],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
RMS.SetProgress(60);
|
||||
|
||||
log("Placing whale...");
|
||||
g_Gaia.fish = "gaia/fauna_whale_fin";
|
||||
addElements([
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 2,
|
||||
g_TileClasses.desert, 50,
|
||||
g_TileClasses.steppe, 50
|
||||
],
|
||||
"stay": [g_TileClasses.water, 7],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["scarce"]
|
||||
}
|
||||
]);
|
||||
RMS.SetProgress(70);
|
||||
|
||||
log("Rendering local biomes...");
|
||||
for (let biome in biomes)
|
||||
{
|
||||
setLocalBiome(biomes[biome]);
|
||||
|
||||
let localAvoid = g_TileClasses[biome == "temp" ? "plateau" : "autumn"];
|
||||
|
||||
addElements([
|
||||
{
|
||||
"func": addMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 10,
|
||||
g_TileClasses.metal, 25,
|
||||
g_TileClasses.water, 4,
|
||||
localAvoid, 2
|
||||
],
|
||||
"stay": [g_TileClasses[biome], 0],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addStone,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 10,
|
||||
g_TileClasses.metal, 25,
|
||||
g_TileClasses.water, 4,
|
||||
localAvoid, 2
|
||||
],
|
||||
"stay": [g_TileClasses[biome], 0],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 3,
|
||||
g_TileClasses.forest, 15,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 2,
|
||||
localAvoid, 2
|
||||
],
|
||||
"stay": [g_TileClasses[biome], 0],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["normal"]
|
||||
},
|
||||
{
|
||||
"func": addSmallMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 10,
|
||||
g_TileClasses.metal, 15,
|
||||
g_TileClasses.water, 4,
|
||||
localAvoid, 2
|
||||
],
|
||||
"stay": [g_TileClasses[biome], 0],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few", "normal", "many"]
|
||||
},
|
||||
{
|
||||
"func": addBerries,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 30,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 4,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 4,
|
||||
g_TileClasses.water, 2,
|
||||
localAvoid, 2
|
||||
],
|
||||
"stay": [g_TileClasses[biome], 0],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 10,
|
||||
g_TileClasses.forest, 1,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 1,
|
||||
g_TileClasses.player, 15,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 1,
|
||||
localAvoid, 2
|
||||
],
|
||||
"stay": [g_TileClasses[biome], 0],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 10,
|
||||
g_TileClasses.forest, 1,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 1,
|
||||
g_TileClasses.player, 15,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 1,
|
||||
localAvoid, 2
|
||||
],
|
||||
"stay": [g_TileClasses[biome], 0],
|
||||
"sizes": ["small"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 5,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 1,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 3,
|
||||
localAvoid, 2
|
||||
],
|
||||
"stay": [g_TileClasses[biome], 0],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["some"]
|
||||
},
|
||||
{
|
||||
"func": addDecoration,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 4,
|
||||
localAvoid, 2
|
||||
],
|
||||
"stay": [g_TileClasses[biome], 0],
|
||||
"sizes": ["small"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]);
|
||||
}
|
||||
RMS.SetProgress(90);
|
||||
|
||||
ExportMap();
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"settings" : {
|
||||
"Name" : "Mediterranean",
|
||||
"Script" : "mediterranean.js",
|
||||
"Description" : "The Mediterranean, home to the Phoenicians, Greeks, Egyptians and later on Romans. They took the rudimentary knowledge and principles of organisation from Mesopotamia and forged it into something more, thereby shifting the centre of learning and knowledge to the Mediterranean Coast, thus laying the foundations of civilization as we know it today. The Mediterranean Sea is almost completely enclosed by land: on the north by Gallia Transalpina (Transalpine Gaul), Italia, Greece (Graecia) and Anatolia, on the east by Syria, on the south by Libya and Mauritania, and on the west by Iberia. The name Mediterranean is derived from Latin, but the Romans themselves preferred the term 'Mare Internum' or even 'Mare Nostrum'.",
|
||||
"BaseTerrain" : ["medit_sea_depths"],
|
||||
"BaseHeight" : 1,
|
||||
"Keywords": [],
|
||||
"Preview" : "mediterranean.png",
|
||||
"CircularMap" : false
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6dfec852ea87f91b95818bc63493d77275f908f67a0be51457da7524118101f4
|
||||
size 727186
|
||||
|
|
@ -1,488 +0,0 @@
|
|||
// Coordinates: -3.177437, 35.574687
|
||||
// Map Width: 120km
|
||||
|
||||
RMS.LoadLibrary("rmgen");
|
||||
RMS.LoadLibrary("rmgen2");
|
||||
RMS.LoadLibrary("rmbiome");
|
||||
|
||||
InitMap();
|
||||
|
||||
setBiome("savanna");
|
||||
initTileClasses(["eden", "highlands"]);
|
||||
|
||||
log("Initializing environment...");
|
||||
|
||||
setSunColor(0.733, 0.746, 0.574);
|
||||
|
||||
setWaterHeight(18);
|
||||
setWaterTint(0.576, 0.541, 0.322);
|
||||
setWaterColor(0.521, 0.475, 0.322);
|
||||
setWaterWaviness(8);
|
||||
setWaterMurkiness(0.87);
|
||||
setWaterType("lake");
|
||||
|
||||
setTerrainAmbientColor(0.521, 0.475, 0.322);
|
||||
|
||||
setSunRotation(-1 * PI);
|
||||
setSunElevation(PI / 6.25);
|
||||
|
||||
setFogFactor(0);
|
||||
setFogThickness(0);
|
||||
setFogColor(0.69, 0.616, 0.541);
|
||||
|
||||
setPPEffect("hdr");
|
||||
setPPContrast(0.67);
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
log("Initializing biome...");
|
||||
g_Terrains.mainTerrain = "savanna_riparian_bank";
|
||||
g_Terrains.tier1Terrain = "savanna_dirt_rocks_a";
|
||||
g_Terrains.tier2Terrain = "savanna_grass_a";
|
||||
g_Terrains.tier3Terrain = "savanna_grass_b";
|
||||
g_Terrains.tier4Terrain = "savanna_forest_floor_a";
|
||||
g_Terrains.roadWild = "savanna_riparian_dry";
|
||||
g_Terrains.road = "road2";
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_giraffe";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_zebra";
|
||||
g_Gaia.metalLarge = "gaia/geology_metal_savanna_slabs";
|
||||
g_Gaia.metalSmall = "gaia/geology_metal_tropic";
|
||||
g_Gaia.fish = "gaia/fauna_fish_tilapia";
|
||||
g_Gaia.tree1 = "gaia/flora_tree_baobab";
|
||||
g_Gaia.tree2 = "gaia/flora_tree_baobab";
|
||||
g_Gaia.tree3 = "gaia/flora_tree_baobab";
|
||||
g_Gaia.tree4 = "gaia/flora_tree_baobab";
|
||||
g_Gaia.tree5 = "gaia/flora_tree_baobab";
|
||||
g_Decoratives.grass = "actor|props/flora/grass_savanna.xml";
|
||||
g_Decoratives.grassShort = "actor|props/flora/grass_soft_dry_tuft_a.xml";
|
||||
g_Decoratives.rockLarge = "actor|geology/stone_savanna_med.xml";
|
||||
g_Decoratives.rockMedium = "actor|geology/stone_savanna_med.xml";
|
||||
g_Decoratives.bushMedium = "actor|props/flora/bush_desert_dry_a.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_dry_a.xml";
|
||||
RMS.SetProgress(5);
|
||||
|
||||
log("Resetting terrain...");
|
||||
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
|
||||
RMS.SetProgress(10);
|
||||
|
||||
log("Copying heightmap...");
|
||||
var scale = paintHeightmap("ngorongoro", (tile, x, y) => {
|
||||
|
||||
if (tile.indexOf("grass1") >= 0 || tile.indexOf("savanna_wash") >= 0)
|
||||
addToClass(x, y, g_TileClasses.mountain);
|
||||
|
||||
if (tile.indexOf("new_savanna") >= 0)
|
||||
addToClass(x, y, g_TileClasses.eden);
|
||||
else if (tile.indexOf("savanna_shrubs") >= 0 || tile.indexOf("savanna_grass") >= 0 || tile.indexOf("peat_temp") >= 0 || tile.indexOf("grass_field") >= 0 || tile.indexOf("grass b") >= 0)
|
||||
addToClass(x, y, g_TileClasses.highlands);
|
||||
});
|
||||
RMS.SetProgress(30);
|
||||
|
||||
log("Paint tile classes...");
|
||||
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
|
||||
RMS.SetProgress(40);
|
||||
|
||||
log("Placing players...");
|
||||
//Coordinate system of the heightmap
|
||||
var singleBases = [
|
||||
[75, 275],
|
||||
[35, 210],
|
||||
[150, 285],
|
||||
[100, 35],
|
||||
[200, 35],
|
||||
[260, 110],
|
||||
[230,260],
|
||||
[45,135]
|
||||
];
|
||||
|
||||
var strongholdBases = [
|
||||
[80, 250],
|
||||
[205, 65]
|
||||
];
|
||||
randomPlayerPlacementAt(getTeamsArray(), singleBases, strongholdBases, scale, 0.06);
|
||||
RMS.SetProgress(50);
|
||||
|
||||
log("Render lowlands...");
|
||||
addElements([
|
||||
{
|
||||
"func": addLayeredPatches,
|
||||
"avoid": [
|
||||
g_TileClasses.dirt, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.eden, 2,
|
||||
g_TileClasses.highlands, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addDecoration,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.eden, 2,
|
||||
g_TileClasses.highlands, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addSmallMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 20,
|
||||
g_TileClasses.metal, 10,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.eden, 2,
|
||||
g_TileClasses.highlands, 2
|
||||
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few"]
|
||||
},
|
||||
{
|
||||
"func": addStone,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 20,
|
||||
g_TileClasses.metal, 10,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.eden, 2,
|
||||
g_TileClasses.highlands, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["scarce"]
|
||||
}
|
||||
]));
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 20,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.eden, 2,
|
||||
g_TileClasses.highlands, 2
|
||||
],
|
||||
"sizes": ["big"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 20,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.eden, 2,
|
||||
g_TileClasses.highlands, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["unique"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 12,
|
||||
g_TileClasses.player, 8
|
||||
],
|
||||
"stay": [g_TileClasses.water, 4],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 4,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 5,
|
||||
g_TileClasses.eden, 2,
|
||||
g_TileClasses.highlands, 2
|
||||
],
|
||||
"sizes": ["big"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(60);
|
||||
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_lioness";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_lion";
|
||||
g_Terrains.mainTerrain = "savanna_grass_a_wetseason";
|
||||
g_Terrains.tier1Terrain = "savanna_grass_a_wetseason";
|
||||
g_Terrains.tier2Terrain = "savanna_grass_b_wetseason";
|
||||
g_Terrains.tier3Terrain = "savanna_shrubs_a_wetseason";
|
||||
g_Terrains.tier4Terrain = "savanna_shrubs_b";
|
||||
|
||||
log("Render highlands...");
|
||||
addElements([
|
||||
{
|
||||
"func": addLayeredPatches,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.highlands, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addDecoration,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.highlands, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addSmallMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 3,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 10,
|
||||
g_TileClasses.metal, 20,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.highlands, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addStone,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 3,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 20,
|
||||
g_TileClasses.metal, 10,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.highlands, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 20,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 3,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.highlands, 2],
|
||||
"sizes": ["huge"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 3,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 5
|
||||
],
|
||||
"stay": [g_TileClasses.highlands, 2],
|
||||
"sizes": ["huge"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(70);
|
||||
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_rhino";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_elephant_african_bush";
|
||||
|
||||
log("Render eden...");
|
||||
addElements([
|
||||
{
|
||||
"func": addLayeredPatches,
|
||||
"avoid": [
|
||||
g_TileClasses.dirt, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.eden, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addDecoration,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.eden, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.eden, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.eden, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addSmallMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.eden, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addStone,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.eden, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few"]
|
||||
}
|
||||
]));
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 2,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 3,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"stay": [g_TileClasses.eden, 2],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 8,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 5
|
||||
],
|
||||
"stay": [g_TileClasses.eden, 2],
|
||||
"sizes": ["huge"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["scarce"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(80);
|
||||
|
||||
ExportMap();
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"settings" : {
|
||||
"Name" : "Ngorongoro",
|
||||
"Script" : "ngorongoro.js",
|
||||
"Description" : "Ngorongoro Crater is the world's largest intact volcanic caldera and is one of the Seven Natural Wonders of Africa. Due to it's climate, biodiversity and history, Ngorongoro is believed by some to be Africa's Garden of Eden and the birthplace of mankind.",
|
||||
"BaseTerrain" : ["medit_sea_depths"],
|
||||
"BaseHeight" : 1,
|
||||
"Keywords": [],
|
||||
"Preview" : "ngorongoro.png",
|
||||
"CircularMap" : false
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0fd7e530796e267bc8301175a196786db225785915ad95c47f73fcd7adb8020e
|
||||
size 627123
|
||||
|
|
@ -1,364 +0,0 @@
|
|||
// Location: 40.942707, 14.370705
|
||||
// Map Width: 80km
|
||||
|
||||
RMS.LoadLibrary("rmgen");
|
||||
RMS.LoadLibrary("rmgen2");
|
||||
RMS.LoadLibrary("rmbiome");
|
||||
|
||||
InitMap();
|
||||
|
||||
log("Initializing tile classes...");
|
||||
setBiome("mediterranean");
|
||||
initTileClasses(["decorative", "lava"]);
|
||||
|
||||
log("Initializing environment...");
|
||||
setSunColor(0.8, 0.8, 0.8);
|
||||
|
||||
setWaterTint(0.5, 0.5, 0.5);
|
||||
setWaterColor(0.3, 0.3, 0.3);
|
||||
setWaterWaviness(8);
|
||||
setWaterMurkiness(0.87);
|
||||
setWaterType("lake");
|
||||
|
||||
setTerrainAmbientColor(0.3, 0.3, 0.3);
|
||||
setUnitsAmbientColor(0.3, 0.3, 0.3);
|
||||
|
||||
setSunRotation(-1 * PI);
|
||||
setSunElevation(PI / 6.25);
|
||||
|
||||
setFogFactor(0);
|
||||
setFogThickness(0);
|
||||
setFogColor(0.69, 0.616, 0.541);
|
||||
|
||||
setSkySet("stormy");
|
||||
|
||||
setPPEffect("hdr");
|
||||
setPPContrast(0.67);
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
log("Initializing biome...");
|
||||
g_Terrains.mainTerrain = "ocean_rock_a";
|
||||
g_Terrains.forestFloor1 = "dirt_burned";
|
||||
g_Terrains.forestFloor2 = "shoreline_stoney_a";
|
||||
g_Terrains.tier1Terrain = "rock_metamorphic";
|
||||
g_Terrains.tier2Terrain = "fissures";
|
||||
g_Terrains.tier3Terrain = "LavaTest06";
|
||||
g_Terrains.tier4Terrain = "ocean_rock_b";
|
||||
g_Terrains.roadWild = "road1";
|
||||
g_Terrains.road = "road1";
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_goat";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_hawk";
|
||||
g_Gaia.fruitBush = "gaia/fauna_chicken";
|
||||
g_Gaia.fish = "gaia/fauna_fish";
|
||||
g_Gaia.tree1 = "gaia/flora_tree_dead";
|
||||
g_Gaia.tree2 = "gaia/flora_tree_oak_dead";
|
||||
g_Gaia.tree3 = "gaia/flora_tree_dead";
|
||||
g_Gaia.tree4 = "gaia/flora_tree_oak_dead";
|
||||
g_Gaia.tree5 = "gaia/flora_tree_dead";
|
||||
g_Gaia.stoneSmall = "gaia/geology_stone_alpine_a";
|
||||
g_Decoratives.grass = "actor|props/flora/grass_field_parched_short.xml";
|
||||
g_Decoratives.grassShort = "actor|props/flora/grass_soft_dry_tuft_a.xml";
|
||||
g_Decoratives.bushMedium = "actor|props/special/eyecandy/barrels_buried.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/special/eyecandy/handcart_1_broken.xml";
|
||||
RMS.SetProgress(5);
|
||||
|
||||
log("Resetting terrain...");
|
||||
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
|
||||
RMS.SetProgress(10);
|
||||
|
||||
log("Copying heightmap...");
|
||||
var scale = paintHeightmap("pompeii", (tile, x, y) => {
|
||||
if (tile.indexOf("mud_slide") >= 0)
|
||||
addToClass(x, y, g_TileClasses.mountain);
|
||||
else if (tile.indexOf("Lava") >= 0)
|
||||
addToClass(x, y, g_TileClasses.lava);
|
||||
});
|
||||
|
||||
log("Paint tile classes...");
|
||||
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
|
||||
RMS.SetProgress(30);
|
||||
|
||||
log("Placing players...");
|
||||
//Coordinate system of the heightmap
|
||||
var singleBases = [
|
||||
[220,80],
|
||||
[70,140],
|
||||
[180,270],
|
||||
[280,280],
|
||||
[50,270]
|
||||
];
|
||||
|
||||
if (getMapSize() >= 320 || getNumPlayers() > singleBases.length)
|
||||
singleBases.push(
|
||||
[50,200],
|
||||
[125,190],
|
||||
[180,140]
|
||||
);
|
||||
|
||||
randomPlayerPlacementAt(getTeamsArray(), singleBases, [], scale, 0.06);
|
||||
RMS.SetProgress(40);
|
||||
|
||||
addElements([
|
||||
{
|
||||
"func": addLayeredPatches,
|
||||
"avoid": [
|
||||
g_TileClasses.dirt, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.lava, 2,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["normal"]
|
||||
},
|
||||
{
|
||||
"func": addDecoration,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.lava, 2,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["normal"]
|
||||
}
|
||||
]);
|
||||
RMS.SetProgress(50);
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 10,
|
||||
g_TileClasses.metal, 20,
|
||||
g_TileClasses.lava, 5,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few"]
|
||||
},
|
||||
{
|
||||
"func": addStone,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 20,
|
||||
g_TileClasses.metal, 10,
|
||||
g_TileClasses.lava, 5,
|
||||
g_TileClasses.water, 5
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few"]
|
||||
},
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 18,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.mountain, 5,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
//g_TileClasses.lava, 10,
|
||||
g_TileClasses.water, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(60);
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 20,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 1,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.lava, 10,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few"]
|
||||
},
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 12,
|
||||
g_TileClasses.player, 8
|
||||
],
|
||||
"stay": [g_TileClasses.water, 4],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 7,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 1,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.lava, 5,
|
||||
g_TileClasses.water, 5
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(65);
|
||||
|
||||
log("Adding smoke...");
|
||||
var smokeActors = [
|
||||
new Entity("actor|particle/smoke_volcano.xml", 0, 178, 112, 0),
|
||||
new Entity("actor|particle/smoke_volcano.xml", 0, 179, 112, 0),
|
||||
new Entity("actor|particle/smoke_volcano.xml", 0, 180, 111, 0),
|
||||
new Entity("actor|particle/smoke_volcano.xml", 0, 177, 111, 0),
|
||||
new Entity("actor|particle/smoke_curved.xml", 0, 176, 111, 0),
|
||||
new Entity("actor|particle/smoke_volcano.xml", 0, 177, 112, 0),
|
||||
new Entity("actor|particle/smoke_curved.xml", 0, 181, 111, 0),
|
||||
new Entity("actor|particle/smoke_volcano.xml", 0, 180, 112, 0),
|
||||
];
|
||||
|
||||
for (let smoke of smokeActors)
|
||||
{
|
||||
smoke.position.x = Math.floor(smoke.position.x / scale);
|
||||
smoke.position.z = Math.floor(smoke.position.z / scale);
|
||||
g_Map.addObject(smoke);
|
||||
}
|
||||
RMS.SetProgress(70);
|
||||
|
||||
log("Adding gatherable stone ruins...");
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[new SimpleObject("gaia/special_ruins_stone_statues_roman", 1, 1, 1, 4)],
|
||||
true,
|
||||
g_TileClasses.metal
|
||||
),
|
||||
0,
|
||||
avoidClasses(
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.mountain, 3,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.lava, 5,
|
||||
g_TileClasses.metal, 20
|
||||
),
|
||||
5 * scaleByMapSize(1, 4),
|
||||
500
|
||||
);
|
||||
RMS.SetProgress(75);
|
||||
|
||||
log("Adding stone ruins...");
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[
|
||||
new SimpleObject("other/unfinished_greek_temple", 0, 1, 1, 4),
|
||||
new SimpleObject("gaia/special_ruins_column_doric", 1, 1, 1, 4)
|
||||
],
|
||||
true,
|
||||
g_TileClasses.decorative
|
||||
),
|
||||
0,
|
||||
avoidClasses(
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.mountain, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.lava, 5,
|
||||
g_TileClasses.decorative, 20
|
||||
),
|
||||
10 * scaleByMapSize(1, 4),
|
||||
200
|
||||
);
|
||||
RMS.SetProgress(80);
|
||||
|
||||
log("Adding shipwrecks...");
|
||||
var shipwrecks = [
|
||||
"shipwreck_hull",
|
||||
"shipwreck_ram_side",
|
||||
"shipwreck_sail_boat",
|
||||
"shipwreck_sail_boat_cut",
|
||||
"barrels_floating"
|
||||
].map(shipwreck => new SimpleObject("actor|props/special/eyecandy/" + shipwreck + ".xml", 0, 1, 1, 20));
|
||||
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(shipwrecks, true, g_TileClasses.decorative),
|
||||
0,
|
||||
[
|
||||
avoidClasses(g_TileClasses.decorative, 20),
|
||||
stayClasses(g_TileClasses.water, 0)
|
||||
],
|
||||
6 * scaleByMapSize(1, 4),
|
||||
200
|
||||
);
|
||||
RMS.SetProgress(85);
|
||||
|
||||
log("Adding more ruins...");
|
||||
var ruins = [
|
||||
"statue_aphrodite_huge",
|
||||
"sele_colonnade",
|
||||
"well_1_b",
|
||||
"anvil",
|
||||
"wheel_laying",
|
||||
"vase_rome_a"
|
||||
].map(ruin => new SimpleObject("actor|props/special/eyecandy/" + ruin + ".xml", 0, 1, 1, 20));
|
||||
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(ruins, true, g_TileClasses.decorative),
|
||||
0,
|
||||
avoidClasses(
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.lava, 5,
|
||||
g_TileClasses.decorative, 20
|
||||
),
|
||||
10 * scaleByMapSize(1, 4),
|
||||
200
|
||||
);
|
||||
RMS.SetProgress(90);
|
||||
|
||||
log("Adding bodies...");
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[new SimpleObject("actor|props/special/eyecandy/skeleton.xml", 3, 10, 1, 7)],
|
||||
true,
|
||||
g_TileClasses.dirt
|
||||
),
|
||||
0,
|
||||
avoidClasses(
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.player, 10,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.decorative, 2
|
||||
),
|
||||
30 * scaleByMapSize(1, 4),
|
||||
200
|
||||
);
|
||||
RMS.SetProgress(95);
|
||||
|
||||
ExportMap();
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"settings" : {
|
||||
"Name" : "Pompeii",
|
||||
"Script" : "pompeii.js",
|
||||
"Description" : "Pompeii was an ancient Roman coastal city, in the Campania region of Italy. Pompeii, along with much of the surrounding area, was mostly destroyed and buried under 4 to 6 meters of volcanic ash and pumice in the eruption of Mount Vesuvius in AD 79.",
|
||||
"BaseTerrain" : ["medit_sea_depths"],
|
||||
"Keywords": [],
|
||||
"BaseHeight" : 1,
|
||||
"Preview" : "pompeii.png",
|
||||
"CircularMap" : false
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:64f506f73e362e794d87d9e44d83c762d7bc3900b7446f1055dada95d8c03149
|
||||
size 740180
|
||||
|
|
@ -1,287 +0,0 @@
|
|||
// Location: 49.337248, 1.106107
|
||||
// Map Width: 80km
|
||||
|
||||
RMS.LoadLibrary("rmgen");
|
||||
RMS.LoadLibrary("rmgen2");
|
||||
RMS.LoadLibrary("rmbiome");
|
||||
|
||||
InitMap();
|
||||
|
||||
log("Initializing tile classes...");
|
||||
setBiome("alpine");
|
||||
initTileClasses(["shallowWater"]);
|
||||
|
||||
log("Initializing environment...");
|
||||
|
||||
setSunColor(0.733, 0.746, 0.574);
|
||||
|
||||
setWaterTint(0.224, 0.271, 0.270);
|
||||
setWaterColor(0.224, 0.271, 0.270);
|
||||
setWaterWaviness(8);
|
||||
setWaterMurkiness(0.87);
|
||||
setWaterType("lake");
|
||||
|
||||
setTerrainAmbientColor(0.521, 0.475, 0.322);
|
||||
|
||||
setSunRotation(-1 * PI);
|
||||
setSunElevation(PI / 6.25);
|
||||
|
||||
setFogFactor(0);
|
||||
setFogThickness(0);
|
||||
setFogColor(0.69, 0.616, 0.541);
|
||||
|
||||
setPPEffect("hdr");
|
||||
setPPContrast(0.67);
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
log("Initializing biome...");
|
||||
g_Terrains.mainTerrain = "new_alpine_grass_d";
|
||||
g_Terrains.forestFloor1 = "alpine_grass_d";
|
||||
g_Terrains.forestFloor2 = "alpine_grass_c";
|
||||
g_Terrains.tier1Terrain = "new_alpine_grass_c";
|
||||
g_Terrains.tier2Terrain = "new_alpine_grass_b";
|
||||
g_Terrains.tier3Terrain = "alpine_grass_a";
|
||||
g_Terrains.tier4Terrain = "new_alpine_grass_e";
|
||||
g_Terrains.roadWild = "new_alpine_citytile";
|
||||
g_Terrains.road = "new_alpine_citytile";
|
||||
g_Gaia.mainHuntableAnimal = "gaia/fauna_deer";
|
||||
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_pig";
|
||||
g_Gaia.metalLarge = "gaia/geology_metal_alpine_slabs";
|
||||
g_Gaia.metalSmall = "gaia/geology_metal_alpine";
|
||||
g_Gaia.fish = "gaia/fauna_fish_tilapia";
|
||||
g_Gaia.tree1 = "gaia/flora_tree_poplar";
|
||||
g_Gaia.tree2 = "gaia/flora_tree_toona";
|
||||
g_Gaia.tree3 = "gaia/flora_tree_apple";
|
||||
g_Gaia.tree4 = "gaia/flora_tree_acacia";
|
||||
g_Gaia.tree5 = "gaia/flora_tree_carob";
|
||||
g_Decoratives.grass = "actor|props/flora/grass_soft_large.xml";
|
||||
g_Decoratives.grassShort = "actor|props/flora/grass_tufts_a.xml";
|
||||
g_Decoratives.rockLarge = "actor|geology/stone_granite_med.xml";
|
||||
g_Decoratives.rockMedium = "actor|geology/stone_granite_small.xml";
|
||||
g_Decoratives.bushMedium = "actor|props/flora/bush_tempe_a.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_tempe_b.xml";
|
||||
g_Decoratives.reeds = "actor|props/flora/reeds_pond_lush_a.xml";
|
||||
g_Decoratives.lillies = "actor|props/flora/water_lillies.xml";
|
||||
RMS.SetProgress(5);
|
||||
|
||||
log("Resetting terrain...");
|
||||
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
|
||||
RMS.SetProgress(10);
|
||||
|
||||
log("Copying heightmap...");
|
||||
var scale = paintHeightmap("ratumacos", (tile, x, y) => {
|
||||
if (tile.indexOf("mud_temp") >= 0)
|
||||
addToClass(x, y, g_TileClasses.mountain);
|
||||
});
|
||||
RMS.SetProgress(30);
|
||||
|
||||
log("Paint tile classes...");
|
||||
paintTileClassBasedOnHeight(-3, -1, 3, g_TileClasses.shallowWater);
|
||||
paintTileClassBasedOnHeight(-100, -3, 3, g_TileClasses.water);
|
||||
RMS.SetProgress(40);
|
||||
|
||||
log("Placing players...");
|
||||
|
||||
//Coordinate system of the heightmap
|
||||
var singleBases = [
|
||||
[100, 265],
|
||||
[180, 260],
|
||||
[245, 220],
|
||||
[275, 145],
|
||||
[40, 165],
|
||||
[70, 95],
|
||||
[130, 50],
|
||||
[205, 45]
|
||||
];
|
||||
|
||||
var strongholdBases = [
|
||||
[65, 140],
|
||||
[180, 60],
|
||||
[260, 190],
|
||||
[120, 270]
|
||||
];
|
||||
randomPlayerPlacementAt(getTeamsArray(), singleBases, strongholdBases, scale, 0.06);
|
||||
RMS.SetProgress(50);
|
||||
|
||||
log("Render gaia...");
|
||||
addElements([
|
||||
{
|
||||
"func": addLayeredPatches,
|
||||
"avoid": [
|
||||
g_TileClasses.dirt, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.shallowWater, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addDecoration,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.shallowWater, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addSmallMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 20,
|
||||
g_TileClasses.metal, 30,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.shallowWater, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["few"]
|
||||
},
|
||||
{
|
||||
"func": addMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 30,
|
||||
g_TileClasses.metal, 20,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.shallowWater, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal"]
|
||||
},
|
||||
{
|
||||
"func": addStone,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 30,
|
||||
g_TileClasses.metal, 20,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.shallowWater, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal"]
|
||||
},
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 8,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.water, 2,
|
||||
g_TileClasses.shallowWater, 2
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 20,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.shallowWater, 3
|
||||
],
|
||||
"sizes": ["huge"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 20,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.shallowWater, 3
|
||||
],
|
||||
"sizes": ["huge"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["tons"]
|
||||
},
|
||||
{
|
||||
"func": addBerries,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 30,
|
||||
g_TileClasses.forest, 5,
|
||||
g_TileClasses.metal, 10,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 10,
|
||||
g_TileClasses.water, 3,
|
||||
g_TileClasses.shallowWater, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 4,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 6,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 5,
|
||||
g_TileClasses.shallowWater, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["tons"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(80);
|
||||
|
||||
log("Adding lillies...");
|
||||
createDecoration(
|
||||
[
|
||||
[new SimpleObject(g_Decoratives.reeds, 1,3, 0,1)],
|
||||
[new SimpleObject(g_Decoratives.lillies, 1,2, 0,1)]
|
||||
],
|
||||
[
|
||||
200 * Math.square(scaleByMapSize(3, 12)),
|
||||
100 * Math.square(scaleByMapSize(3, 12))
|
||||
],
|
||||
stayClasses(g_TileClasses.shallowWater, 0)
|
||||
);
|
||||
RMS.SetProgress(90);
|
||||
|
||||
ExportMap();
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"settings" : {
|
||||
"Name" : "Ratumacos",
|
||||
"Script" : "ratumacos.js",
|
||||
"Description" : "Players start on the banks of the River Sequana (Seine) in Northern Gaul near the settlement of Ratumacos. Destined to become one of the largest and most prosperous cities of Medieval Europe and one of the Anglo-Norman dynasty capitals under the new name of Rouen, Ratumacos is still a peaceful land - but not for long.",
|
||||
"BaseTerrain" : ["medit_sea_depths"],
|
||||
"BaseHeight" : 1,
|
||||
"Keywords": [],
|
||||
"Preview" : "ratumacos.png",
|
||||
"CircularMap" : true
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:06fc257487b5ce11ce754b225721286c4e1272a277db486728a41af7e8070002
|
||||
size 663282
|
||||
|
|
@ -1,295 +0,0 @@
|
|||
// Coordinates: 21.824205, 40.289810
|
||||
// Map Width: 2900km
|
||||
|
||||
RMS.LoadLibrary("rmgen");
|
||||
RMS.LoadLibrary("rmgen2");
|
||||
RMS.LoadLibrary("rmbiome");
|
||||
|
||||
InitMap();
|
||||
|
||||
setBiome("desert");
|
||||
initTileClasses();
|
||||
|
||||
setSunColor(0.733, 0.746, 0.574);
|
||||
|
||||
setWindAngle(-0.43);
|
||||
setWaterTint(0.161, 0.286, 0.353);
|
||||
setWaterColor(0.129, 0.176, 0.259);
|
||||
setWaterWaviness(8);
|
||||
setWaterMurkiness(0.87);
|
||||
setWaterType("lake");
|
||||
|
||||
setTerrainAmbientColor(0.58, 0.443, 0.353);
|
||||
|
||||
setSunRotation(PI * 1.1);
|
||||
setSunElevation(PI / 7);
|
||||
|
||||
setFogFactor(0);
|
||||
setFogThickness(0);
|
||||
setFogColor(0.69, 0.616, 0.541);
|
||||
|
||||
setPPEffect("hdr");
|
||||
setPPContrast(0.67);
|
||||
setPPSaturation(0.42);
|
||||
setPPBloom(0.23);
|
||||
|
||||
log("Initializing biome...");
|
||||
g_Terrains.mainTerrain = "desert_dirt_rocks_2";
|
||||
g_Terrains.forestFloor1 = "desert_grass_a_sand";
|
||||
g_Terrains.forestFloor2 = "desert_grass_a_sand";
|
||||
g_Terrains.tier1Terrain = "desert_dirt_rocks_2";
|
||||
g_Terrains.tier2Terrain = "desert_dirt_rough";
|
||||
g_Terrains.tier3Terrain = "desert_dirt_rough";
|
||||
g_Terrains.tier4Terrain = "desert_sand_stones";
|
||||
g_Terrains.roadWild = "road2";
|
||||
g_Terrains.road = "road2";
|
||||
g_Gaia.tree1 = "gaia/flora_tree_date_palm";
|
||||
g_Gaia.tree2 = "gaia/flora_tree_senegal_date_palm";
|
||||
g_Gaia.tree3 = "gaia/flora_tree_fig";
|
||||
g_Gaia.tree4 = "gaia/flora_tree_cretan_date_palm_tall";
|
||||
g_Gaia.tree5 = "gaia/flora_tree_cretan_date_palm_short";
|
||||
g_Gaia.fruitBush = "gaia/flora_bush_grapes";
|
||||
g_Decoratives.grass = "actor|props/flora/grass_field_dry_tall_b.xml";
|
||||
g_Decoratives.grassShort = "actor|props/flora/grass_field_parched_short.xml";
|
||||
g_Decoratives.rockLarge = "actor|geology/stone_desert_med.xml";
|
||||
g_Decoratives.rockMedium = "actor|geology/stone_savanna_med.xml";
|
||||
g_Decoratives.bushMedium = "actor|props/flora/bush_desert_dry_a.xml";
|
||||
g_Decoratives.bushSmall = "actor|props/flora/bush_medit_sm_dry.xml";
|
||||
g_Decoratives.dust = "actor|particle/dust_storm_reddish.xml";
|
||||
|
||||
log("Resetting terrain...");
|
||||
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
|
||||
RMS.SetProgress(10);
|
||||
|
||||
log("Copying heightmap...");
|
||||
var scale = paintHeightmap("red_sea", (tile, x, y) => {
|
||||
if (tile.indexOf("cliff") >= 0)
|
||||
addToClass(x, y, g_TileClasses.mountain);
|
||||
});
|
||||
RMS.SetProgress(30);
|
||||
|
||||
log("Rendering water...");
|
||||
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
|
||||
RMS.SetProgress(40);
|
||||
|
||||
log("Placing players...");
|
||||
// Coordinate system of the heightmap
|
||||
var singleBases = [
|
||||
[175, 30],
|
||||
[45, 210],
|
||||
[280, 180],
|
||||
[180, 180],
|
||||
[230, 115],
|
||||
[130, 280],
|
||||
[200, 253],
|
||||
[90, 115],
|
||||
[45, 45]
|
||||
];
|
||||
var strongholdBases = [
|
||||
[50, 160],
|
||||
[100, 50],
|
||||
[170, 260],
|
||||
[260, 160]
|
||||
];
|
||||
randomPlayerPlacementAt(getTeamsArray(), singleBases, strongholdBases, scale, 0.04);
|
||||
RMS.SetProgress(50);
|
||||
|
||||
log("Adding mines and forests...");
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addMetal,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 10,
|
||||
g_TileClasses.metal, 20,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"func": addStone,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 3,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 30,
|
||||
g_TileClasses.rock, 20,
|
||||
g_TileClasses.metal, 10,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 3,
|
||||
g_TileClasses.forest, 20,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.mountain, 3,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.water, 2
|
||||
],
|
||||
"sizes": ["big"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["few"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(60);
|
||||
|
||||
log("Ensure initial forests...");
|
||||
addElements([{
|
||||
"func": addForests,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 2,
|
||||
g_TileClasses.forest, 25,
|
||||
g_TileClasses.metal, 3,
|
||||
g_TileClasses.mountain, 5,
|
||||
g_TileClasses.player, 15,
|
||||
g_TileClasses.rock, 3,
|
||||
g_TileClasses.water, 2
|
||||
],
|
||||
"sizes": ["small"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["tons"]
|
||||
}]);
|
||||
RMS.SetProgress(65);
|
||||
|
||||
log("Adding berries and animals...");
|
||||
addElements(shuffleArray([
|
||||
{
|
||||
"func": addBerries,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 30,
|
||||
g_TileClasses.forest, 5,
|
||||
g_TileClasses.metal, 10,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 10,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["normal", "many"]
|
||||
},
|
||||
{
|
||||
"func": addAnimals,
|
||||
"avoid": [
|
||||
g_TileClasses.animals, 20,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 1,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addFish,
|
||||
"avoid": [
|
||||
g_TileClasses.fish, 12,
|
||||
g_TileClasses.player, 8
|
||||
],
|
||||
"stay": [g_TileClasses.water, 4],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addStragglerTrees,
|
||||
"avoid": [
|
||||
g_TileClasses.berries, 5,
|
||||
g_TileClasses.forest, 15,
|
||||
g_TileClasses.metal, 2,
|
||||
g_TileClasses.mountain, 1,
|
||||
g_TileClasses.player, 20,
|
||||
g_TileClasses.rock, 2,
|
||||
g_TileClasses.water, 5
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["same"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]));
|
||||
RMS.SetProgress(70);
|
||||
|
||||
log("Adding decoration...");
|
||||
addElements([
|
||||
{
|
||||
"func": addLayeredPatches,
|
||||
"avoid": [
|
||||
g_TileClasses.dirt, 5,
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["normal"],
|
||||
"amounts": ["many"]
|
||||
},
|
||||
{
|
||||
"func": addDecoration,
|
||||
"avoid": [
|
||||
g_TileClasses.forest, 2,
|
||||
g_TileClasses.mountain, 2,
|
||||
g_TileClasses.player, 12,
|
||||
g_TileClasses.water, 3
|
||||
],
|
||||
"sizes": ["normal"],
|
||||
"mixes": ["similar"],
|
||||
"amounts": ["many"]
|
||||
}
|
||||
]);
|
||||
RMS.SetProgress(80);
|
||||
|
||||
log("Adding reeds...");
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[
|
||||
new SimpleObject(g_Decoratives.reeds, 5, 12, 1, 4),
|
||||
new SimpleObject(g_Decoratives.rockMedium, 1, 2, 1, 5)
|
||||
],
|
||||
true,
|
||||
g_TileClasses.dirt
|
||||
),
|
||||
0,
|
||||
[
|
||||
stayClasses(g_TileClasses.water, 1),
|
||||
borderClasses(g_TileClasses.water, scaleByMapSize(2,8), scaleByMapSize(2,5))
|
||||
],
|
||||
scaleByMapSize(100, 1000),
|
||||
500
|
||||
);
|
||||
RMS.SetProgress(85);
|
||||
|
||||
log("Adding dust...");
|
||||
createObjectGroupsDeprecated(
|
||||
new SimpleGroup(
|
||||
[new SimpleObject(g_Decoratives.dust, 1, 1, 1, 4)],
|
||||
false
|
||||
),
|
||||
0,
|
||||
[
|
||||
stayClasses(g_TileClasses.dirt, 1),
|
||||
avoidClasses(
|
||||
g_TileClasses.player, 10,
|
||||
g_TileClasses.water, 3
|
||||
)
|
||||
],
|
||||
Math.square(scaleByMapSize(5, 20)),
|
||||
500
|
||||
);
|
||||
RMS.SetProgress(90);
|
||||
|
||||
ExportMap();
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"settings" : {
|
||||
"Name" : "Red Sea",
|
||||
"Script" : "red_sea.js",
|
||||
"Description" : "Historically, the Red Sea was a sea of many nations. Ideally situated for trade with the Far East, it was coveted by all. Although dry, this land is by no means inhospitable, and is amply provided with all resources.",
|
||||
"BaseTerrain" : ["medit_sea_depths"],
|
||||
"BaseHeight" : 1,
|
||||
"Keywords": [],
|
||||
"Preview" : "red_sea.png",
|
||||
"CircularMap" : false
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue