1
0
forked from mirrors/0ad

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:
elexis
2017-10-27 19:26:46 +00:00
parent 24f02d97eb
commit f5375cbcb9
36 changed files with 0 additions and 3513 deletions
Binary file not shown.
@@ -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
}
}
Binary file not shown.
@@ -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
}
}
Binary file not shown.
@@ -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
}
}
Binary file not shown.
@@ -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
}
}
Binary file not shown.
@@ -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
}
}
Binary file not shown.
@@ -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
}
}
Binary file not shown.
@@ -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
}
}
Binary file not shown.
@@ -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
}
}
Binary file not shown.
@@ -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
}
}