1 Engine.LoadLibrary("rmgen");
2 Engine.LoadLibrary("rmbiome");
6 const tMainTerrain = g_Terrains.mainTerrain;
7 const tForestFloor1 = g_Terrains.forestFloor1;
8 const tForestFloor2 = g_Terrains.forestFloor2;
9 const tCliff = g_Terrains.cliff;
10 const tTier1Terrain = g_Terrains.tier1Terrain;
11 const tTier2Terrain = g_Terrains.tier2Terrain;
12 const tTier3Terrain = g_Terrains.tier3Terrain;
13 const tHill = g_Terrains.hill;
14 const tRoad = g_Terrains.road;
15 const tRoadWild = g_Terrains.roadWild;
16 const tTier4Terrain = g_Terrains.tier4Terrain;
18 const oTree1 = g_Gaia.tree1;
19 const oTree2 = g_Gaia.tree2;
20 const oTree3 = g_Gaia.tree3;
21 const oTree4 = g_Gaia.tree4;
22 const oTree5 = g_Gaia.tree5;
23 const oFruitBush = g_Gaia.fruitBush;
24 const oMainHuntableAnimal = g_Gaia.mainHuntableAnimal;
25 const oSecondaryHuntableAnimal = g_Gaia.secondaryHuntableAnimal;
26 const oStoneLarge = g_Gaia.stoneLarge;
27 const oStoneSmall = g_Gaia.stoneSmall;
28 const oMetalLarge = g_Gaia.metalLarge;
30 const aGrass = g_Decoratives.grass;
31 const aGrassShort = g_Decoratives.grassShort;
32 const aRockLarge = g_Decoratives.rockLarge;
33 const aRockMedium = g_Decoratives.rockMedium;
34 const aBushMedium = g_Decoratives.bushMedium;
35 const aBushSmall = g_Decoratives.bushSmall;
37 const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2];
38 const pForest2 = [tForestFloor1 + TERRAIN_SEPARATOR + oTree4, tForestFloor1 + TERRAIN_SEPARATOR + oTree5, tForestFloor1];
42 const numPlayers = getNumPlayers();
44 var clPlayer = createTileClass();
45 var clHill = createTileClass();
46 var clForest = createTileClass();
47 var clDirt = createTileClass();
48 var clRock = createTileClass();
49 var clMetal = createTileClass();
50 var clFood = createTileClass();
51 var clBaseResource = createTileClass();
53 initTerrain(tMainTerrain);
56 "PlayerPlacement": playerPlacementCircle(0.35),
57 "PlayerTileClass": clPlayer,
58 "BaseResourceClass": clBaseResource,
60 "outerTerrain": tRoadWild,
66 "template": oFruitBush
70 { "template": oMetalLarge },
71 { "template": oStoneLarge }
79 "template": aGrassShort
82 Engine.SetProgress(20);
84 createBumps(avoidClasses(clPlayer, 20));
87 createHills([tCliff, tCliff, tHill], avoidClasses(clPlayer, 20, clHill, 15), clHill, scaleByMapSize(3, 15));
89 createMountains(tCliff, avoidClasses(clPlayer, 20, clHill, 15), clHill, scaleByMapSize(3, 15));
91 var [forestTrees, stragglerTrees] = getTreeCounts(...rBiomeTreeCount(1));
93 [tMainTerrain, tForestFloor1, tForestFloor2, pForest1, pForest2],
94 avoidClasses(clPlayer, 20, clForest, 18, clHill, 0),
98 Engine.SetProgress(50);
100 log("Creating dirt patches...");
101 createLayeredPatches(
102 [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
103 [[tMainTerrain,tTier1Terrain],[tTier1Terrain,tTier2Terrain], [tTier2Terrain,tTier3Terrain]],
105 avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
106 scaleByMapSize(15, 45),
109 log("Creating grass patches...");
111 [scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
113 avoidClasses(clForest, 0, clHill, 0, clDirt, 5, clPlayer, 12),
114 scaleByMapSize(15, 45),
116 Engine.SetProgress(55);
118 log("Creating stone mines...");
121 [new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
122 [new SimpleObject(oStoneSmall, 2,5, 1,3)]
124 avoidClasses(clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
127 log("Creating metal mines...");
130 [new SimpleObject(oMetalLarge, 1,1, 0,4)]
132 avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1),
136 Engine.SetProgress(65);
140 if (currentBiome() == "tropic")
145 [new SimpleObject(aRockMedium, 1, 3, 0, 1)],
146 [new SimpleObject(aRockLarge, 1, 2, 0, 1), new SimpleObject(aRockMedium, 1, 3, 0, 2)],
147 [new SimpleObject(aGrassShort, 1, 2, 0, 1)],
148 [new SimpleObject(aGrass, 2, 4, 0, 1.8), new SimpleObject(aGrassShort, 3,6, 1.2, 2.5)],
149 [new SimpleObject(aBushMedium, 1, 2, 0, 2), new SimpleObject(aBushSmall, 2, 4, 0, 2)]
152 scaleByMapSize(16, 262),
153 scaleByMapSize(8, 131),
154 planetm * scaleByMapSize(13, 200),
155 planetm * scaleByMapSize(13, 200),
156 planetm * scaleByMapSize(13, 200)
158 avoidClasses(clForest, 0, clPlayer, 0, clHill, 0));
160 Engine.SetProgress(70);
164 [new SimpleObject(oMainHuntableAnimal, 5, 7, 0, 4)],
165 [new SimpleObject(oSecondaryHuntableAnimal, 2, 3, 0, 2)]
171 avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clFood, 20),
174 Engine.SetProgress(75);
178 [new SimpleObject(oFruitBush, 5, 7, 0, 4)]
183 avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clFood, 10),
186 Engine.SetProgress(85);
188 createStragglerTrees(
189 [oTree1, oTree2, oTree4, oTree3],
190 avoidClasses(clForest, 8, clHill, 1, clPlayer, 12, clMetal, 6, clRock, 6),
194 placePlayersNomad(clPlayer, avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));