1 // Coordinates: 21.824205, 40.289810
4 RMS.LoadLibrary("rmgen");
5 RMS.LoadLibrary("rmgen2");
6 RMS.LoadLibrary("rmbiome");
13 setSunColor(0.733, 0.746, 0.574);
16 setWaterTint(0.161, 0.286, 0.353);
17 setWaterColor(0.129, 0.176, 0.259);
19 setWaterMurkiness(0.87);
22 setTerrainAmbientColor(0.58, 0.443, 0.353);
24 setSunRotation(PI * 1.1);
25 setSunElevation(PI / 7);
29 setFogColor(0.69, 0.616, 0.541);
33 setPPSaturation(0.42);
36 log("Initializing biome...");
37 g_Terrains.mainTerrain = "desert_dirt_rocks_2";
38 g_Terrains.forestFloor1 = "desert_grass_a_sand";
39 g_Terrains.forestFloor2 = "desert_grass_a_sand";
40 g_Terrains.tier1Terrain = "desert_dirt_rocks_2";
41 g_Terrains.tier2Terrain = "desert_dirt_rough";
42 g_Terrains.tier3Terrain = "desert_dirt_rough";
43 g_Terrains.tier4Terrain = "desert_sand_stones";
44 g_Terrains.roadWild = "road2";
45 g_Terrains.road = "road2";
46 g_Gaia.tree1 = "gaia/flora_tree_date_palm";
47 g_Gaia.tree2 = "gaia/flora_tree_senegal_date_palm";
48 g_Gaia.tree3 = "gaia/flora_tree_fig";
49 g_Gaia.tree4 = "gaia/flora_tree_cretan_date_palm_tall";
50 g_Gaia.tree5 = "gaia/flora_tree_cretan_date_palm_short";
51 g_Gaia.fruitBush = "gaia/flora_bush_grapes";
52 g_Decoratives.grass = "actor|props/flora/grass_field_dry_tall_b.xml";
53 g_Decoratives.grassShort = "actor|props/flora/grass_field_parched_short.xml";
54 g_Decoratives.rockLarge = "actor|geology/stone_desert_med.xml";
55 g_Decoratives.rockMedium = "actor|geology/stone_savanna_med.xml";
56 g_Decoratives.bushMedium = "actor|props/flora/bush_desert_dry_a.xml";
57 g_Decoratives.bushSmall = "actor|props/flora/bush_medit_sm_dry.xml";
58 g_Decoratives.dust = "actor|particle/dust_storm_reddish.xml";
60 log("Resetting terrain...");
61 resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
64 log("Copying heightmap...");
65 var scale = paintHeightmap("red_sea", (tile, x, y) => {
66 if (tile.indexOf("cliff") >= 0)
67 addToClass(x, y, g_TileClasses.mountain);
71 log("Rendering water...");
72 paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
75 log("Placing players...");
76 // Coordinate system of the heightmap
88 var strongholdBases = [
94 randomPlayerPlacementAt(getTeamsArray(), singleBases, strongholdBases, scale, 0.04);
97 log("Adding mines and forests...");
98 addElements(shuffleArray([
102 g_TileClasses.berries, 5,
103 g_TileClasses.forest, 3,
104 g_TileClasses.mountain, 2,
105 g_TileClasses.player, 30,
106 g_TileClasses.rock, 10,
107 g_TileClasses.metal, 20,
108 g_TileClasses.water, 3
112 "amounts": ["normal", "many"]
117 g_TileClasses.berries, 5,
118 g_TileClasses.forest, 3,
119 g_TileClasses.mountain, 2,
120 g_TileClasses.player, 30,
121 g_TileClasses.rock, 20,
122 g_TileClasses.metal, 10,
123 g_TileClasses.water, 3
127 "amounts": ["normal", "many"]
132 g_TileClasses.berries, 3,
133 g_TileClasses.forest, 20,
134 g_TileClasses.metal, 3,
135 g_TileClasses.mountain, 3,
136 g_TileClasses.player, 20,
137 g_TileClasses.rock, 3,
138 g_TileClasses.water, 2
141 "mixes": ["similar"],
147 log("Ensure initial forests...");
151 g_TileClasses.berries, 2,
152 g_TileClasses.forest, 25,
153 g_TileClasses.metal, 3,
154 g_TileClasses.mountain, 5,
155 g_TileClasses.player, 15,
156 g_TileClasses.rock, 3,
157 g_TileClasses.water, 2
160 "mixes": ["similar"],
165 log("Adding berries and animals...");
166 addElements(shuffleArray([
170 g_TileClasses.berries, 30,
171 g_TileClasses.forest, 5,
172 g_TileClasses.metal, 10,
173 g_TileClasses.mountain, 2,
174 g_TileClasses.player, 20,
175 g_TileClasses.rock, 10,
176 g_TileClasses.water, 3
180 "amounts": ["normal", "many"]
185 g_TileClasses.animals, 20,
186 g_TileClasses.forest, 2,
187 g_TileClasses.metal, 2,
188 g_TileClasses.mountain, 1,
189 g_TileClasses.player, 20,
190 g_TileClasses.rock, 2,
191 g_TileClasses.water, 3
200 g_TileClasses.fish, 12,
201 g_TileClasses.player, 8
203 "stay": [g_TileClasses.water, 4],
209 "func": addStragglerTrees,
211 g_TileClasses.berries, 5,
212 g_TileClasses.forest, 15,
213 g_TileClasses.metal, 2,
214 g_TileClasses.mountain, 1,
215 g_TileClasses.player, 20,
216 g_TileClasses.rock, 2,
217 g_TileClasses.water, 5
226 log("Adding decoration...");
229 "func": addLayeredPatches,
231 g_TileClasses.dirt, 5,
232 g_TileClasses.forest, 2,
233 g_TileClasses.mountain, 2,
234 g_TileClasses.player, 12,
235 g_TileClasses.water, 3
242 "func": addDecoration,
244 g_TileClasses.forest, 2,
245 g_TileClasses.mountain, 2,
246 g_TileClasses.player, 12,
247 g_TileClasses.water, 3
250 "mixes": ["similar"],
256 log("Adding reeds...");
257 createObjectGroupsDeprecated(
260 new SimpleObject(g_Decoratives.reeds, 5, 12, 1, 4),
261 new SimpleObject(g_Decoratives.rockMedium, 1, 2, 1, 5)
268 stayClasses(g_TileClasses.water, 1),
269 borderClasses(g_TileClasses.water, scaleByMapSize(2,8), scaleByMapSize(2,5))
271 scaleByMapSize(100, 1000),
276 log("Adding dust...");
277 createObjectGroupsDeprecated(
279 [new SimpleObject(g_Decoratives.dust, 1, 1, 1, 4)],
284 stayClasses(g_TileClasses.dirt, 1),
286 g_TileClasses.player, 10,
287 g_TileClasses.water, 3
290 Math.square(scaleByMapSize(5, 20)),