1 Engine.LoadLibrary("rmgen");
3 var tGrass = ["cliff volcanic light", "ocean_rock_a", "ocean_rock_b"];
4 var tGrassA = "cliff volcanic light";
5 var tGrassB = "ocean_rock_a";
6 var tGrassC = "ocean_rock_b";
7 var tCliff = ["cliff volcanic coarse", "cave_walls"];
9 var tRoadWild = "road1";
10 var tLava1 = "LavaTest05";
11 var tLava2 = "LavaTest04";
12 var tLava3 = "LavaTest03";
14 var oTree = "gaia/flora_tree_dead";
15 var oStoneLarge = "gaia/geology_stonemine_alpine_quarry";
16 var oStoneSmall = "gaia/geology_stone_alpine_a";
17 var oMetalLarge = "gaia/geology_metal_alpine_slabs";
19 var aRockLarge = "actor|geology/stone_granite_med.xml";
20 var aRockMedium = "actor|geology/stone_granite_med.xml";
22 var pForestD = [tGrassC + TERRAIN_SEPARATOR + oTree, tGrassC];
23 var pForestP = [tGrassB + TERRAIN_SEPARATOR + oTree, tGrassB];
27 var numPlayers = getNumPlayers();
29 var clPlayer = createTileClass();
30 var clHill = createTileClass();
31 var clForest = createTileClass();
32 var clDirt = createTileClass();
33 var clRock = createTileClass();
34 var clMetal = createTileClass();
35 var clBaseResource = createTileClass();
38 "PlayerPlacement": playerPlacementCircle(0.35),
39 "PlayerTileClass": clPlayer,
40 "BaseResourceClass": clBaseResource,
42 "outerTerrain": tRoadWild,
45 // No berries, no chicken, no decoratives
48 { "template": oMetalLarge },
49 { "template": oStoneLarge }
54 "count": scaleByMapSize(12, 30)
57 Engine.SetProgress(15);
59 createVolcano(0.5, 0.5, clHill, tCliff, [tLava1, tLava2, tLava3], true, ELEVATION_SET);
60 Engine.SetProgress(45);
62 log("Creating hills...");
64 new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1),
66 new LayeredPainter([tCliff, tGrass], [2]),
67 new SmoothElevationPainter(ELEVATION_SET, 18, 2),
70 avoidClasses(clPlayer, 12, clHill, 15, clBaseResource, 2),
71 scaleByMapSize(2, 8) * numPlayers
74 log("Creating forests...");
75 var [forestTrees, stragglerTrees] = getTreeCounts(200, 1250, 0.7);
77 [[tGrassB, tGrassA, pForestD], [tGrassB, pForestD]],
78 [[tGrassB, tGrassA, pForestP], [tGrassB, pForestP]]
80 var size = forestTrees / (scaleByMapSize(2,8) * numPlayers);
81 var num = Math.floor(size / types.length);
82 for (let type of types)
84 new ClumpPlacer(forestTrees / num, 0.1, 0.1, 1),
86 new LayeredPainter(type, [2]),
89 avoidClasses(clPlayer, 12, clForest, 10, clHill, 0, clBaseResource, 6),
92 Engine.SetProgress(70);
94 log("Creating dirt patches...");
95 for (let size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
97 new ClumpPlacer(size, 0.3, 0.06, 0.5),
99 new LayeredPainter([tGrassA, tGrassA], [1]),
102 avoidClasses(clForest, 0, clHill, 0, clPlayer, 12),
103 scaleByMapSize(20, 80));
105 for (let size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
107 new ClumpPlacer(size, 0.3, 0.06, 0.5),
109 new LayeredPainter([tGrassB, tGrassB], [1]),
112 avoidClasses(clForest, 0, clHill, 0, clPlayer, 12),
113 scaleByMapSize(20, 80));
115 for (let size of [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)])
117 new ClumpPlacer(size, 0.3, 0.06, 0.5),
119 new LayeredPainter([tGrassC, tGrassC], [1]),
122 avoidClasses(clForest, 0, clHill, 0, clPlayer, 12),
123 scaleByMapSize(20, 80)
126 log("Creating stone mines...");
127 var group = new SimpleGroup([new SimpleObject(oStoneSmall, 0, 2, 0, 4), new SimpleObject(oStoneLarge, 1, 1, 0, 4)], true, clRock);
128 createObjectGroupsDeprecated(group, 0,
129 avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1),
130 scaleByMapSize(4,16), 100
133 log("Creating small stone mines...");
134 group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
135 createObjectGroupsDeprecated(group, 0,
136 avoidClasses(clForest, 1, clPlayer, 10, clRock, 10, clHill, 1),
137 scaleByMapSize(4,16), 100
140 log("Creating metal mines...");
141 group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
142 createObjectGroupsDeprecated(group, 0,
143 avoidClasses(clForest, 1, clPlayer, 10, clMetal, 10, clRock, 5, clHill, 1),
144 scaleByMapSize(4,16), 100
147 Engine.SetProgress(90);
149 log("Creating small decorative rocks...");
150 group = new SimpleGroup(
151 [new SimpleObject(aRockMedium, 1,3, 0,1)],
154 createObjectGroupsDeprecated(
156 avoidClasses(clForest, 0, clPlayer, 0, clHill, 0),
157 scaleByMapSize(16, 262), 50
160 log("Creating large decorative rocks...");
161 group = new SimpleGroup(
162 [new SimpleObject(aRockLarge, 1,2, 0,1), new SimpleObject(aRockMedium, 1,3, 0,2)],
165 createObjectGroupsDeprecated(
167 avoidClasses(clForest, 0, clPlayer, 0, clHill, 0),
168 scaleByMapSize(8, 131), 50
171 Engine.SetProgress(95);
173 createStragglerTrees(
175 avoidClasses(clForest, 1, clHill, 1, clPlayer, 12, clMetal, 6, clRock, 6, clBaseResource, 6),
179 placePlayersNomad(clPlayer, avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4));