Nomad mode on all random map scripts (except Survival of the Fittest), fixes #3591.
[0ad.git] / binaries / data / mods / public / maps / random / ambush.js
bloba3bff2c6b572887c83f6be9d930da5f3741d1576
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(10);
13 const pos = randomStartingPositionPattern(getTeamsArray());
14 addBases(pos.setup, pos.distance, pos.separation, randFloat(0, 2 * Math.PI));
15 Engine.SetProgress(20);
17 addElements([
18         {
19                 "func": addBluffs,
20                 "baseHeight": getMapBaseHeight(),
21                 "avoid": [
22                         g_TileClasses.bluff, 12,
23                         g_TileClasses.hill, 5,
24                         g_TileClasses.player, 35
25                 ],
26                 "sizes": ["normal", "big", "huge"],
27                 "mixes": ["same"],
28                 "amounts": ["tons"]
29         },
30         {
31                 "func": addHills,
32                 "avoid": [
33                         g_TileClasses.bluff, 5,
34                         g_TileClasses.hill, 15,
35                         g_TileClasses.player, 20
36                 ],
37                 "sizes": ["normal", "big"],
38                 "mixes": ["normal"],
39                 "amounts": ["tons"]
40         }
41 ]);
42 Engine.SetProgress(30);
44 addElements([
45         {
46                 "func": addLayeredPatches,
47                 "avoid": [
48                         g_TileClasses.bluff, 2,
49                         g_TileClasses.dirt, 5,
50                         g_TileClasses.forest, 2,
51                         g_TileClasses.mountain, 2,
52                         g_TileClasses.player, 12,
53                         g_TileClasses.water, 3
54                 ],
55                 "sizes": ["normal"],
56                 "mixes": ["normal"],
57                 "amounts": ["normal"]
58         },
59         {
60                 "func": addDecoration,
61                 "avoid": [
62                         g_TileClasses.bluff, 2,
63                         g_TileClasses.forest, 2,
64                         g_TileClasses.mountain, 2,
65                         g_TileClasses.player, 12,
66                         g_TileClasses.water, 3
67                 ],
68                 "sizes": ["normal"],
69                 "mixes": ["normal"],
70                 "amounts": ["normal"]
71         }
72 ]);
73 Engine.SetProgress(50);
75 addElements(shuffleArray([
76         {
77                 "func": addMetal,
78                 "avoid": [
79                         g_TileClasses.berries, 5,
80                         g_TileClasses.forest, 3,
81                         g_TileClasses.mountain, 2,
82                         g_TileClasses.player, 30,
83                         g_TileClasses.rock, 10,
84                         g_TileClasses.metal, 20,
85                         g_TileClasses.water, 3
86                 ],
87                 "stay": [g_TileClasses.bluff, 5],
88                 "sizes": ["normal"],
89                 "mixes": ["same"],
90                 "amounts": ["tons"]
91         },
92         {
93                 "func": addStone,
94                 "avoid": [
95                         g_TileClasses.berries, 5,
96                         g_TileClasses.forest, 3,
97                         g_TileClasses.mountain, 2,
98                         g_TileClasses.player, 30,
99                         g_TileClasses.rock, 20,
100                         g_TileClasses.metal, 10,
101                         g_TileClasses.water, 3
102                 ],
103                 "stay": [g_TileClasses.bluff, 5],
104                 "sizes": ["normal"],
105                 "mixes": ["same"],
106                 "amounts": ["tons"]
107         },
108         // Forests on bluffs
109         {
110                 "func": addForests,
111                 "avoid": [
112                         g_TileClasses.forest, 6,
113                         g_TileClasses.metal, 3,
114                         g_TileClasses.mountain, 5,
115                         g_TileClasses.player, 20,
116                         g_TileClasses.rock, 3,
117                         g_TileClasses.water, 2
118                 ],
119                 "stay": [g_TileClasses.bluff, 5],
120                 "sizes": ["big"],
121                 "mixes": ["normal"],
122                 "amounts": ["tons"]
123         },
124         // Forests on mainland
125         {
126                 "func": addForests,
127                 "avoid": [
128                         g_TileClasses.bluff, 10,
129                         g_TileClasses.forest, 10,
130                         g_TileClasses.metal, 3,
131                         g_TileClasses.mountain, 5,
132                         g_TileClasses.player, 20,
133                         g_TileClasses.rock, 3,
134                         g_TileClasses.water, 2
135                 ],
136                 "sizes": ["small"],
137                 "mixes": ["same"],
138                 "amounts": ["normal"]
139         }
140 ]));
141 Engine.SetProgress(70);
143 addElements(shuffleArray([
144         {
145                 "func": addBerries,
146                 "avoid": [
147                         g_TileClasses.bluff, 5,
148                         g_TileClasses.forest, 5,
149                         g_TileClasses.metal, 10,
150                         g_TileClasses.mountain, 2,
151                         g_TileClasses.player, 20,
152                         g_TileClasses.rock, 10,
153                         g_TileClasses.water, 3
154                 ],
155                 "sizes": ["normal"],
156                 "mixes": ["same"],
157                 "amounts": ["few"]
158         },
159         {
160                 "func": addAnimals,
161                 "avoid": [
162                         g_TileClasses.bluff, 5,
163                         g_TileClasses.forest, 2,
164                         g_TileClasses.metal, 2,
165                         g_TileClasses.mountain, 1,
166                         g_TileClasses.player, 12,
167                         g_TileClasses.rock, 2,
168                         g_TileClasses.water, 3
169                 ],
170                 "sizes": ["small"],
171                 "mixes": ["similar"],
172                 "amounts": ["normal", "many"]
173         },
174         {
175                 "func": addStragglerTrees,
176                 "avoid": [
177                         g_TileClasses.berries, 5,
178                         g_TileClasses.bluff, 5,
179                         g_TileClasses.forest, 7,
180                         g_TileClasses.metal, 2,
181                         g_TileClasses.mountain, 1,
182                         g_TileClasses.player, 12,
183                         g_TileClasses.rock, 2,
184                         g_TileClasses.water, 5
185                 ],
186                 "sizes": ["tiny"],
187                 "mixes": ["same"],
188                 "amounts": ["many"]
189         }
190 ]));
191 Engine.SetProgress(90);
193 placePlayersNomad(
194         g_TileClasses.player,
195         avoidClasses(
196                 g_TileClasses.bluff, 4,
197                 g_TileClasses.water, 4,
198                 g_TileClasses.forest, 1,
199                 g_TileClasses.metal, 4,
200                 g_TileClasses.rock, 4,
201                 g_TileClasses.mountain, 4,
202                 g_TileClasses.animals, 2));
204 ExportMap();