Nomad mode on all random map scripts (except Survival of the Fittest), fixes #3591.
[0ad.git] / binaries / data / mods / public / maps / random / stronghold.js
blob8c6f5d37144995d8d913174578b094d9c40a6b46
1 Engine.LoadLibrary("rmgen");
2 Engine.LoadLibrary("rmgen2");
3 Engine.LoadLibrary("rmbiome");
5 InitMap();
7 setSelectedBiome();
8 initTileClasses();
10 resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, getMapBaseHeight());
11 Engine.SetProgress(20);
13 addBases("stronghold", randFloat(0.2, 0.35), randFloat(0.05, 0.1), randFloat(0, 2 * Math.PI));
14 Engine.SetProgress(30);
16 addElements(shuffleArray([
17         {
18                 "func": addBluffs,
19                 "baseHeight": getMapBaseHeight(),
20                 "avoid": [
21                         g_TileClasses.bluff, 20,
22                         g_TileClasses.hill, 5,
23                         g_TileClasses.mountain, 20,
24                         g_TileClasses.plateau, 20,
25                         g_TileClasses.player, 30,
26                         g_TileClasses.valley, 5,
27                         g_TileClasses.water, 7
28                 ],
29                 "sizes": ["big", "huge"],
30                 "mixes": g_AllMixes,
31                 "amounts": g_AllAmounts
32         },
33         {
34                 "func": addHills,
35                 "avoid": [
36                         g_TileClasses.bluff, 5,
37                         g_TileClasses.hill, 15,
38                         g_TileClasses.mountain, 2,
39                         g_TileClasses.plateau, 2,
40                         g_TileClasses.player, 20,
41                         g_TileClasses.valley, 2,
42                         g_TileClasses.water, 2
43                 ],
44                 "sizes": ["normal", "big"],
45                 "mixes": g_AllMixes,
46                 "amounts": g_AllAmounts
47         },
48         {
49                 "func": addMountains,
50                 "avoid": [
51                         g_TileClasses.bluff, 20,
52                         g_TileClasses.mountain, 25,
53                         g_TileClasses.plateau, 20,
54                         g_TileClasses.player, 20,
55                         g_TileClasses.valley, 10,
56                         g_TileClasses.water, 15
57                 ],
58                 "sizes": ["big", "huge"],
59                 "mixes": g_AllMixes,
60                 "amounts": g_AllAmounts
61         },
62         {
63                 "func": addPlateaus,
64                 "avoid": [
65                         g_TileClasses.bluff, 20,
66                         g_TileClasses.mountain, 25,
67                         g_TileClasses.plateau, 25,
68                         g_TileClasses.player, 40,
69                         g_TileClasses.valley, 10,
70                         g_TileClasses.water, 15
71                 ],
72                 "sizes": ["big", "huge"],
73                 "mixes": g_AllMixes,
74                 "amounts": g_AllAmounts
75         },
76         {
77                 "func": addValleys,
78                 "baseHeight": getMapBaseHeight(),
79                 "avoid": [
80                         g_TileClasses.bluff, 5,
81                         g_TileClasses.hill, 5,
82                         g_TileClasses.mountain, 25,
83                         g_TileClasses.plateau, 10,
84                         g_TileClasses.player, 40,
85                         g_TileClasses.valley, 15,
86                         g_TileClasses.water, 10
87                 ],
88                 "sizes": ["normal", "big"],
89                 "mixes": g_AllMixes,
90                 "amounts": g_AllAmounts
91         }
92 ]));
93 Engine.SetProgress(60);
95 addElements([
96         {
97                 "func": addLayeredPatches,
98                 "avoid": [
99                         g_TileClasses.bluff, 2,
100                         g_TileClasses.dirt, 5,
101                         g_TileClasses.forest, 2,
102                         g_TileClasses.mountain, 2,
103                         g_TileClasses.plateau, 2,
104                         g_TileClasses.player, 12,
105                         g_TileClasses.valley, 5,
106                         g_TileClasses.water, 3
107                 ],
108                 "sizes": ["normal"],
109                 "mixes": ["normal"],
110                 "amounts": ["normal"]
111         },
112         {
113                 "func": addDecoration,
114                 "avoid": [
115                         g_TileClasses.bluff, 2,
116                         g_TileClasses.forest, 2,
117                         g_TileClasses.mountain, 2,
118                         g_TileClasses.plateau, 2,
119                         g_TileClasses.player, 12,
120                         g_TileClasses.water, 3
121                 ],
122                 "sizes": ["normal"],
123                 "mixes": ["normal"],
124                 "amounts": ["normal"]
125         }
127 Engine.SetProgress(70);
129 addElements(shuffleArray([
130         {
131                 "func": addMetal,
132                 "avoid": [
133                         g_TileClasses.berries, 5,
134                         g_TileClasses.bluff, 5,
135                         g_TileClasses.forest, 3,
136                         g_TileClasses.mountain, 2,
137                         g_TileClasses.plateau, 2,
138                         g_TileClasses.player, 30,
139                         g_TileClasses.rock, 10,
140                         g_TileClasses.metal, 20,
141                         g_TileClasses.water, 3
142                 ],
143                 "sizes": ["normal"],
144                 "mixes": ["same"],
145                 "amounts": g_AllAmounts
146         },
147         {
148                 "func": addStone,
149                 "avoid": [
150                         g_TileClasses.berries, 5,
151                         g_TileClasses.bluff, 5,
152                         g_TileClasses.forest, 3,
153                         g_TileClasses.mountain, 2,
154                         g_TileClasses.plateau, 2,
155                         g_TileClasses.player, 30,
156                         g_TileClasses.rock, 20,
157                         g_TileClasses.metal, 10,
158                         g_TileClasses.water, 3
159                 ],
160                 "sizes": ["normal"],
161                 "mixes": ["same"],
162                 "amounts": g_AllAmounts
163         },
164         {
165                 "func": addForests,
166                 "avoid": [
167                         g_TileClasses.berries,
168                         5, g_TileClasses.bluff,
169                         5, g_TileClasses.forest,
170                         18, g_TileClasses.metal, 3,
171                         g_TileClasses.mountain, 5,
172                         g_TileClasses.plateau, 5,
173                         g_TileClasses.player, 20,
174                         g_TileClasses.rock, 3,
175                         g_TileClasses.water, 2
176                 ],
177                 "sizes": g_AllSizes,
178                 "mixes": g_AllMixes,
179                 "amounts": ["few", "normal", "many", "tons"]
180         }
181 ]));
182 Engine.SetProgress(80);
184 addElements(shuffleArray([
185         {
186                 "func": addBerries,
187                 "avoid": [
188                         g_TileClasses.berries, 30,
189                         g_TileClasses.bluff, 5,
190                         g_TileClasses.forest, 5,
191                         g_TileClasses.metal, 10,
192                         g_TileClasses.mountain, 2,
193                         g_TileClasses.plateau, 2,
194                         g_TileClasses.player, 20,
195                         g_TileClasses.rock, 10,
196                         g_TileClasses.spine, 2,
197                         g_TileClasses.water, 3
198                 ],
199                 "sizes": g_AllSizes,
200                 "mixes": g_AllMixes,
201                 "amounts": g_AllAmounts
202         },
203         {
204                 "func": addAnimals,
205                 "avoid": [
206                         g_TileClasses.animals, 20,
207                         g_TileClasses.bluff, 5,
208                         g_TileClasses.forest, 2,
209                         g_TileClasses.metal, 2,
210                         g_TileClasses.mountain, 1,
211                         g_TileClasses.plateau, 2,
212                         g_TileClasses.player, 20,
213                         g_TileClasses.rock, 2,
214                         g_TileClasses.spine, 2,
215                         g_TileClasses.water, 3
216                 ],
217                 "sizes": g_AllSizes,
218                 "mixes": g_AllMixes,
219                 "amounts": g_AllAmounts
220         },
221         {
222                 "func": addStragglerTrees,
223                 "avoid": [
224                         g_TileClasses.berries, 5,
225                         g_TileClasses.bluff, 5,
226                         g_TileClasses.forest, 7,
227                         g_TileClasses.metal, 2,
228                         g_TileClasses.mountain, 1,
229                         g_TileClasses.plateau, 2,
230                         g_TileClasses.player, 12,
231                         g_TileClasses.rock, 2,
232                         g_TileClasses.spine, 2,
233                         g_TileClasses.water, 5
234                 ],
235                 "sizes": g_AllSizes,
236                 "mixes": g_AllMixes,
237                 "amounts": g_AllAmounts
238         }
239 ]));
240 Engine.SetProgress(90);
242 placePlayersNomad(
243         g_TileClasses.player,
244         avoidClasses(
245                 g_TileClasses.bluff, 4,
246                 g_TileClasses.plateau, 4,
247                 g_TileClasses.forest, 1,
248                 g_TileClasses.metal, 4,
249                 g_TileClasses.rock, 4,
250                 g_TileClasses.mountain, 4,
251                 g_TileClasses.animals, 2));
253 ExportMap();