1-- =======================================================================
2--                                 Player 1
3-- =======================================================================
4p1:allow_buildings("all")
5p1:forbid_buildings {
6   "frisians_aqua_farm",
7   "frisians_recycling_center",
8   "frisians_furnace",
9   "frisians_armor_smithy_small",
10   "frisians_barracks",
11   "frisians_training_camp",
12   "frisians_training_arena",
13   "frisians_sewing_room",
14   "frisians_tailors_shop",
15   -- The map is non-seafaring, but just in case:
16   "frisians_shipyard",
17   "frisians_weaving_mill",
18   "frisians_port",
19}
20
21port1 = p1:place_building("frisians_port", p1_start, false, true)
22port1:set_wares {
23   log = 40,
24   brick = 50,
25   granite = 40,
26   reed = 20,
27   clay = 10,
28   water = 5,
29   coal = 30,
30   fish = 2,
31   meat = 2,
32   fruit = 10,
33   bread_frisians = 4,
34   beer = 4,
35   ration = 10,
36   sword_long = 2,
37   sword_broad = 1
38}
39port1:set_workers {
40   frisians_woodcutter = 3,
41   frisians_forester = 7,
42   frisians_claydigger = 3,
43   frisians_brickmaker = 2,
44   frisians_builder = 10,
45   frisians_blacksmith = 2,
46   frisians_smelter = 3,
47   frisians_smoker = 2,
48   frisians_seamstress = 1,
49   frisians_landlady = 2,
50   frisians_berry_farmer = 4,
51   frisians_fruit_collector = 4,
52   frisians_beekeeper = 1,
53   frisians_fisher = 3,
54   frisians_geologist = 1,
55   frisians_farmer = 5,
56   frisians_reed_farmer = 4,
57   frisians_baker = 1,
58   frisians_brewer = 1,
59   frisians_trainer = 2,
60   frisians_stonemason = 4,
61   frisians_reindeer = 1,
62   frisians_charcoal_burner = 3
63}
64
65local trained = 0
66for descr,n in pairs(campaign_data) do
67   if descr ~= "000" then
68      trained = trained + n
69   end
70end
71local soldiers = {}
72if trained > takeover_soldiers then
73   -- We have more soldiers than allowed, so pick 10 at random
74   local remaining = takeover_soldiers
75   repeat
76      local key1 = math.random(0, 2)
77      local key2 = math.random(0, 6)
78      local key3 = math.random(0, 2)
79      for descr,n in pairs(campaign_data) do
80         if descr == (key1 .. key2 .. key3) and n > 0 and not (key1 == 0 and key2 == 0 and key3 == 0) then
81            if n < remaining then
82               soldiers[{key1, key2, key3, 0}] = n
83               remaining = remaining - n
84            else
85               soldiers[{key1, key2, key3, 0}] = remaining
86               remaining = 0
87            end
88            campaign_data[descr] = nil
89            break
90         end
91      end
92   until remaining == 0
93   soldiers[{0, 0, 0, 0}] = total_soldiers - takeover_soldiers
94else
95   -- We have less than 10 soldiers, so take them all plus some new ones
96   for h=0,2 do
97      for a=0,6 do
98         for d=0,2 do
99            if not (h == 0 and a == 0 and d == 0) and campaign_data[h .. a .. d] and campaign_data[h .. a .. d] > 0 then
100               soldiers[{h, a, d, 0}] = campaign_data[h .. a .. d]
101            end
102         end
103      end
104   end
105   soldiers[{0, 0, 0, 0}] = total_soldiers - trained
106end
107port1:set_soldiers(soldiers)
108
109-- =======================================================================
110--                                 Player 2
111-- =======================================================================
112p2:forbid_buildings("all")
113p2:allow_buildings {
114   "empire_warehouse",
115   "empire_sentry",
116   "empire_blockhouse",
117   "empire_barrier",
118   "empire_tower",
119   "empire_fortress",
120   "empire_lumberjacks_house",
121   "empire_foresters_house",
122   "empire_quarry",
123   "empire_hunters_house",
124   "empire_fishers_house",
125   "empire_smelting_works",
126   "empire_toolsmithy",
127   "empire_tavern",
128   "empire_inn",
129   "empire_ironmine",
130   "empire_coalmine",
131   "empire_marblemine",
132   "empire_ironmine_deep",
133   "empire_coalmine_deep",
134   "empire_marblemine_deep",
135   "empire_bakery",
136   "empire_brewery",
137   "empire_vineyard",
138   "empire_winery",
139   "empire_donkeyfarm",
140   "empire_charcoal_kiln",
141   "empire_farm",
142   "empire_mill",
143   "empire_piggery",
144   "empire_sheepfarm",
145   "empire_well",
146   "empire_stonemasons_house",
147   "empire_sawmill"
148}
149hq2 = p2:place_building("empire_headquarters", map.player_slots[2].starting_field, false, true)
150hq2:set_wares {
151   log = 80,
152   granite = 40,
153   marble = 80,
154   marble_column = 20,
155   planks = 40,
156   cloth = 10,
157   ration = 30,
158   beer = 15,
159   meal = 5,
160   wine = 15,
161   grape = 10,
162   wheat = 30,
163   water = 50,
164   coal = 50,
165   iron = 20,
166   gold = 10,
167   gold_ore = 5,
168   iron_ore = 10,
169   meat = 20,
170   fish = 20,
171   empire_bread = 20
172}
173hq2:set_workers {
174   empire_builder = 3, -- To slow him down a bit
175   empire_lumberjack = 8,
176   empire_forester = 18,
177   empire_stonemason = 7,
178   empire_miner = 12,
179   empire_miner_master = 4,
180   empire_toolsmith = 3,
181   empire_carpenter = 3,
182   empire_donkey = 40,
183   empire_donkeybreeder = 1,
184   empire_weaver = 2,
185   empire_hunter = 2,
186   empire_fisher = 3,
187   empire_shepherd = 2,
188   empire_farmer = 9,
189   empire_miller = 4,
190   empire_baker = 4,
191   empire_brewer = 4,
192   empire_vintner = 3,
193   empire_vinefarmer = 5,
194   empire_pigbreeder = 3,
195   empire_innkeeper = 7,
196   empire_charcoal_burner = 2,
197   empire_smelter = 4,
198   empire_trainer = 3,
199   empire_armorsmith = 1,
200   empire_weaponsmith = 1,
201   empire_geologist = 2
202}
203local nr_soldiers = {40, 40, 100}
204nr_soldiers = nr_soldiers[difficulty]
205hq2:set_soldiers({4,4,0,2}, nr_soldiers)
206
207-- =======================================================================
208--                                 Player 3
209-- =======================================================================
210p3:forbid_buildings("all")
211p3:allow_buildings {
212   "barbarians_warehouse",
213   "barbarians_sentry",
214   "barbarians_barrier",
215   "barbarians_tower",
216   "barbarians_lumberjacks_hut",
217   "barbarians_rangers_hut",
218   "barbarians_quarry",
219   "barbarians_wood_hardener",
220   "barbarians_lime_kiln",
221   "barbarians_reed_yard",
222   "barbarians_tavern",
223   "barbarians_inn",
224   "barbarians_big_inn",
225   "barbarians_bakery",
226   "barbarians_brewery",
227   "barbarians_micro_brewery",
228   "barbarians_charcoal_kiln",
229   "barbarians_smelting_works",
230   "barbarians_granitemine",
231   "barbarians_coalmine",
232   "barbarians_ironmine",
233   "barbarians_goldmine",
234   "barbarians_ironmine_deep",
235   "barbarians_coalmine_deep",
236   "barbarians_goldmine_deep",
237   "barbarians_goldmine_deeper",
238   "barbarians_ironmine_deeper",
239   "barbarians_goldmine_deeper",
240   "barbarians_metal_workshop",
241   "barbarians_farm",
242   "barbarians_well",
243   "barbarians_cattlefarm",
244   "barbarians_hunters_hut",
245   "barbarians_fishers_hut",
246   "barbarians_gamekeepers_hut"
247}
248hq3 = p3:place_building("barbarians_headquarters", map.player_slots[3].starting_field, false, true)
249hq3:set_wares {
250   log = 100,
251   granite = 50,
252   reed = 50,
253   blackwood = 10, -- To delay expansion
254   grout = 20,
255   coal = 20,
256   water = 50,
257   wheat = 30,
258   iron = 20,
259   gold = 5,
260   iron_ore = 10,
261   gold_ore = 5,
262   barbarians_bread = 20,
263   beer = 10,
264   beer_strong = 20,
265   ration = 200, -- Headstart at stealing ores
266   snack = 50,
267   meal = 50,
268   fish = 20,
269   meat = 20
270}
271hq3:set_workers {
272   barbarians_builder = 7,
273   barbarians_lumberjack = 10,
274   barbarians_ranger = 25,
275   barbarians_gardener = 4,
276   barbarians_ox = 20,
277   barbarians_cattlebreeder = 2,
278   barbarians_stonemason = 8,
279   barbarians_lime_burner = 4,
280   barbarians_smelter = 5,
281   barbarians_charcoal_burner = 2,
282   barbarians_fisher = 2,
283   barbarians_hunter = 2,
284   barbarians_baker = 3,
285   barbarians_brewer = 3,
286   barbarians_brewer_master = 1,
287   barbarians_miner = 19,
288   barbarians_miner_chief = 9,
289   barbarians_miner_master = 4,
290   barbarians_innkeeper = 6,
291   barbarians_geologist = 2,
292   barbarians_trainer = 3,
293   barbarians_blacksmith = 4,
294   barbarians_blacksmith_master = 1,
295   barbarians_helmsmith = 1
296}
297nr_soldiers = {30, 50, 80}
298nr_soldiers = nr_soldiers[difficulty]
299hq3:set_soldiers({3,5,0,2}, nr_soldiers)
300