1 Engine.LoadLibrary("rmgen");
3 const tGrass = ["medit_rocks_grass_shrubs", "medit_rocks_shrubs"];
4 const tForestFloor = "medit_grass_field_dry";
5 const tCliff = "medit_cliff_italia";
6 const tGrassDirt = "medit_rocks_grass";
7 const tDirt = "medit_dirt";
8 const tRoad = "medit_city_tile";
9 const tRoadWild = "medit_city_tile";
10 const tGrass2 = "medit_rocks_grass_shrubs";
11 const tGrassPatch = "medit_grass_wild";
13 const oCarob = "gaia/flora_tree_carob";
14 const oAleppoPine = "gaia/flora_tree_aleppo_pine";
15 const oBerryBush = "gaia/flora_bush_berry";
16 const oDeer = "gaia/fauna_deer";
17 const oSheep = "gaia/fauna_sheep";
18 const oStoneLarge = "gaia/geology_stonemine_medit_quarry";
19 const oStoneSmall = "gaia/geology_stone_mediterranean";
20 const oMetalLarge = "gaia/geology_metal_mediterranean_slabs";
21 const oWoodTreasure = "gaia/special_treasure_wood";
22 const oFoodTreasure = "gaia/special_treasure_food_bin";
24 const aGrass = "actor|props/flora/grass_soft_large_tall.xml";
25 const aGrassShort = "actor|props/flora/grass_soft_large.xml";
26 const aRockLarge = "actor|geology/stone_granite_large.xml";
27 const aRockMedium = "actor|geology/stone_granite_med.xml";
28 const aBushMedium = "actor|props/flora/bush_medit_me.xml";
29 const aBushSmall = "actor|props/flora/bush_medit_sm.xml";
30 const aCarob = "actor|flora/trees/carob.xml";
31 const aAleppoPine = "actor|flora/trees/aleppo_pine.xml";
33 const pForest1 = [tForestFloor + TERRAIN_SEPARATOR + oCarob, tForestFloor];
34 const pForest2 = [tForestFloor + TERRAIN_SEPARATOR + oAleppoPine, tForestFloor];
38 const numPlayers = getNumPlayers();
40 var clPlayer = createTileClass();
41 var clHill = createTileClass();
42 var clForest = createTileClass();
43 var clDirt = createTileClass();
44 var clRock = createTileClass();
45 var clMetal = createTileClass();
46 var clFood = createTileClass();
47 var clBaseResource = createTileClass();
48 var clTreasure = createTileClass();
51 "PlayerPlacement": playerPlacementCircle(0.35),
52 "PlayerTileClass": clPlayer,
53 "BaseResourceClass": clBaseResource,
55 "outerTerrain": tRoadWild,
61 "template": oBerryBush
65 { "template": oMetalLarge },
66 { "template": oStoneLarge }
71 "count": scaleByMapSize(2, 8)
74 "template": aGrassShort
77 Engine.SetProgress(10);
79 createBumps(avoidClasses(clPlayer, 9));
81 createMountains(tCliff, avoidClasses(clPlayer, 20, clHill, 8), clHill, scaleByMapSize(20, 120));
83 Engine.SetProgress(25);
85 var [forestTrees, stragglerTrees] = getTreeCounts(500, 3000, 0.7);
87 [tGrass, tForestFloor, tForestFloor, pForest1, pForest2],
88 avoidClasses(clPlayer, 20, clForest, 14, clHill, 1),
92 Engine.SetProgress(40);
94 log("Creating dirt patches...");
96 [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)],
99 avoidClasses(clForest, 0, clHill, 0, clDirt, 3, clPlayer, 10),
100 scaleByMapSize(15, 45),
103 log("Creating grass patches...");
104 createLayeredPatches(
105 [scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)],
106 [tGrass2,tGrassPatch],
108 avoidClasses(clForest, 0, clHill, 0, clDirt, 3, clPlayer, 10),
109 scaleByMapSize(15, 45),
112 Engine.SetProgress(50);
114 log("Creating stone mines...");
117 [new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)],
118 [new SimpleObject(oStoneSmall, 2,5, 1,3)]
120 avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 2),
123 log("Creating metal mines...");
126 [new SimpleObject(oMetalLarge, 1,1, 0,4)]
128 avoidClasses(clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 2),
132 Engine.SetProgress(60);
136 [new SimpleObject(aRockMedium, 1, 3, 0, 1)],
137 [new SimpleObject(aRockLarge, 1, 2, 0, 1), new SimpleObject(aRockMedium, 1, 3, 0, 2)],
138 [new SimpleObject(aGrassShort, 1, 2, 0, 1)],
139 [new SimpleObject(aGrass, 2, 4, 0, 1.8), new SimpleObject(aGrassShort, 3, 6, 1.2, 2.5)],
140 [new SimpleObject(aBushMedium, 1, 2, 0, 2), new SimpleObject(aBushSmall, 2, 4, 0, 2)]
143 scaleByMapSize(16, 262),
144 scaleByMapSize(8, 131),
145 scaleByMapSize(13, 200),
146 scaleByMapSize(13, 200),
147 scaleByMapSize(13, 200)
149 avoidClasses(clForest, 0, clPlayer, 0, clHill, 0));
151 Engine.SetProgress(75);
155 [new SimpleObject(oSheep, 5, 7, 0, 4)],
156 [new SimpleObject(oDeer, 2, 3, 0, 2)]
162 avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clFood, 20),
167 [new SimpleObject(oBerryBush, 5, 7, 0, 4)]
170 randIntInclusive(3, 12) * numPlayers + 2
172 avoidClasses(clForest, 0, clPlayer, 20, clHill, 1, clFood, 10),
175 log("Creating food treasures...");
176 var group = new SimpleGroup(
177 [new SimpleObject(oFoodTreasure, 2,3, 0,2)],
180 createObjectGroupsDeprecated(group, 0,
181 avoidClasses(clForest, 0, clPlayer, 18, clHill, 1, clFood, 5),
185 log("Creating food treasures...");
186 group = new SimpleGroup(
187 [new SimpleObject(oWoodTreasure, 2,3, 0,2)],
190 createObjectGroupsDeprecated(group, 0,
191 avoidClasses(clForest, 0, clPlayer, 18, clHill, 1),
195 Engine.SetProgress(80);
197 createStragglerTrees(
198 [oCarob, oAleppoPine],
199 avoidClasses(clForest, 1, clHill, 1, clPlayer, 10, clMetal, 6, clRock, 6, clTreasure, 4),
203 createStragglerTrees(
204 [aCarob, aAleppoPine],
205 stayClasses(clHill, 2),
209 placePlayersNomad(clPlayer, avoidClasses(clForest, 1, clMetal, 4, clRock, 4, clHill, 4, clFood, 2));
212 setFogThickness(0.14);
216 setPPSaturation(0.56);