-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path_main.cfg
456 lines (404 loc) · 17.1 KB
/
_main.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
#textdomain wesnoth-h2tt
[textdomain]
name="wesnoth-h2tt"
[/textdomain]
#ifdef CAMPAIGN_HEIR_2_THE_THRONE
[lua]
code = <<
wesnoth.dofile('~add-ons/Heir_2_The_Throne/lua/' .. 'skip_animations.lua')
wesnoth.dofile('~add-ons/Heir_2_The_Throne/lua/' .. 'popups.lua')
>>
[/lua]
{internal/Urban_Jungle}
{internal/Weather}
{~add-ons/Heir_2_The_Throne/utils}
{~add-ons/Heir_2_The_Throne/scenarios}
[units]
{~add-ons/Heir_2_The_Throne/units}
[/units]
[binary_path]
path=data/add-ons/Heir_2_The_Throne
[/binary_path]
{~add-ons/Heir_2_The_Throne/terrain.cfg}
{~add-ons/Heir_2_The_Throne/terrain-graphics.cfg}
[color_range]
id=wesred
rgb=8A0808,FFFFFF,000000,BB0000
[/color_range]
[color_range]
id=lisarcolor
rgb=b3004d,ffadd0,3f001b,f10067
[/color_range]
#endif
#ifdef EDITOR
[binary_path]
path=data/add-ons/Heir_2_The_Throne
[/binary_path]
[editor_group]
id=heir_2_the_throne
name= _ "Heir '2' the Throne"
icon="group_custom"
[/editor_group]
{~add-ons/Heir_2_The_Throne/terrain.cfg}
{~add-ons/Heir_2_The_Throne/terrain-graphics.cfg}
#endif
# wmlscope: set export=no
[campaign]
id=Heir 2 The Throne
name= _ "Heir 2 the Throne"
icon="data/campaigns/Heir_To_The_Throne/images/units/konrad-lord-leading.png"
image="data/campaigns/Heir_To_The_Throne/images/campaign_image.png"
abbrev= _ "H2tT"
rank=55
start_year="517 YW"
end_year="520 YW"
define=CAMPAIGN_HEIR_2_THE_THRONE
first_scenario=01_The_Elves_Besieged
description= _ "Fight to regain the throne of Wesnoth, of which you are the legitimate heir.
" + _"(Intermediate level, 11 scenarios.)"
{CAMPAIGN_DIFFICULTY EASY "data/campaigns/Heir_To_The_Throne/images/units/konrad-fighter.png~RC(magenta>red)" ( _ "Easy" ) ( _ "1x enemies, 70% xp" )}
{CAMPAIGN_DIFFICULTY NORMAL "data/add-ons/Heir_2_The_Throne/images/units/konrad/konrad-captain.png~RC(magenta>red)" ( _ "Normal") ( _ "2x enemies, 100% xp" )} {DEFAULT_DIFFICULTY}
{CAMPAIGN_DIFFICULTY HARD "data/campaigns/Heir_To_The_Throne/images/units/konrad-commander.png~RC(magenta>red)" ( _ "Hard" ) ( _ "4x enemies, 100% xp" )}
{CAMPAIGN_DIFFICULTY NIGHTMARE "data/campaigns/Heir_To_The_Throne/images/units/konrad-lord.png~RC(magenta>red)" ( _ "Deadly") ( _ "4x enemies, 8 scenarios" )}
#
# ----Difficulty Notes:
# on higher difficulties, the player gets fewer scenarios per phase
# this both restricts XP and reduces the available rewards
#
[about]
images = story/httt_story1.webp,story/httt_story2.webp,story/httt_story3.webp,story/httt_story4.webp,story/httt_story5.webp,story/httt_story6.webp,story/httt_story7.webp,story/httt_story8.webp
[/about]
[about]
title = _ "Campaign Design"
[entry]
name = "David White (Sirp)"
[/entry]
[/about]
[about]
title = _ "Campaign Maintenance"
[entry]
name = "Dimitar Ilccov (Mythological)"
[/entry]
[entry]
name = "Lari Nieminen (zookeeper)"
comment = "current maintainer"
[/entry]
[entry]
name = "Scott Klempner"
[/entry]
[/about]
[about]
title = _ "Artwork and Graphics Design"
[entry]
name = "doofus-01"
comment = "new sprites and animations (Princess, Battle Princess, Dark Queen, Sea Orc)"
[/entry]
[entry]
name = "Emilien Rotival (LordBob)"
comment = "portraits (Delfador, Asheviere, Moremirmu)"
[/entry]
[entry]
name = "Francisco Muñoz (fmunoz)"
[/entry]
[entry]
name = "Kathrin Polikeit (Kitty)"
comment = "portraits (Konrad, Li'sar, Kalenz, Chantal)"
[/entry]
[entry]
name = "Neoriceisgood"
[/entry]
[entry]
name = "Richard Kettering (Jetrel)"
[/entry]
[/about]
[about]
title = _ "Miscellaneous"
[entry]
name = "Patrick Parker (Sapient)"
comment = "WML assistance"
[/entry]
[/about]
#############################
# GLOBAL EVENTS
#############################
#ifdef CAMPAIGN_HEIR_2_THE_THRONE
# after Elves Besieged
[event]
name=besieged
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
[modify_side]
side,gold=1,75 # Elves Besieged gives you no carryover
[/modify_side]
[/event]
# after Flight of the Elves. Assuming you grab the bonus gold from Aldril
# remember that it'll be SUMMER at this point
[event]
name=flight
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Elvish Fighter,Elvish Archer,Elvish Scout) _"Benchmark - Difficulty 0" ()}
{ADVANCE_UNIT id=Konrad ""}
[modify_side]
side,gold=1,150 # 60 carryover, plus 15 gold from Aldril
[/modify_side]
[/event]
# after Blackwater Port
# remember that it'll be SUMMER at this point
[event]
name=blackwater
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Horseman,Cavalryman) _"Benchmark - Difficulty 0" ()}
{ADVANCE_UNIT id=Konrad ""}
[modify_side]
side,gold=1,90 # no carryover, but 15 gold from Aldril
[/modify_side]
{GENERIC_UNIT 1 "Knight" recall recall}
{GENERIC_UNIT 1 "Dragoon" recall recall}
[/event]
# after Bay of Pearls
# remember that it'll be SUMMER at this point
[event]
name=pearls
{FIRE_EVENT spawn_npcs}
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Merman Fighter,Merman Hunter,Merman Brawler,Mermaid Initiate) _"Benchmark - Difficulty 0" ()}
{ADVANCE_UNIT id=Konrad ""}
{GENERIC_UNIT 1 "Mermaid Priestess" recall recall}
{GENERIC_UNIT 1 "Merman Netcaster" recall recall}
{GENERIC_UNIT 1 "Merman Netcaster" recall recall}
{GENERIC_UNIT 1 "Merman Fighter" recall recall} {EXPERIENCE 20}
{GENERIC_UNIT 1 "Merman Hunter" recall recall} {EXPERIENCE 20}
{GENERIC_UNIT 1 "Merman Hunter" recall recall} {EXPERIENCE 20}
[modify_side]
side,gold=1,90 # TODO - no carryover? Some other way to nerf this? Maybe there aren't any mermaids to farm up XP on until near the end? Tight turn limit?
[/modify_side]
[/event]
# 1, maybe 2 scenarios completed (or 3+ scenarios but minimal gold)
[event]
name=diff1_elves
{FIRE_EVENT spawn_npcs}
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Elvish Fighter,Elvish Archer,Elvish Scout) _"Benchmark - Difficulty 1" ()}
{ADVANCE_UNIT id=Konrad ""}
{GENERIC_UNIT 1 "Elvish Hero" recall recall}
{GENERIC_UNIT 1 "Elvish Ranger" recall recall}
{GENERIC_UNIT 1 "Elvish Ranger" recall recall}
{GENERIC_UNIT 1 "Elvish Fighter" recall recall} {EXPERIENCE 20}
{GENERIC_UNIT 1 "Elvish Archer" recall recall} {EXPERIENCE 20}
{GENERIC_UNIT 1 "Elvish Archer" recall recall} {EXPERIENCE 20}
[modify_side]
side,gold=1,150
[/modify_side]
[/event]
[event]
name=diff1_outlaws
{FIRE_EVENT spawn_npcs}
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Thug,Poacher) _"Benchmark - Difficulty 1" ()}
{ADVANCE_UNIT id=Konrad ""}
{GENERIC_UNIT 1 "Bandit" recall recall}
{GENERIC_UNIT 1 "Bandit" recall recall}
{GENERIC_UNIT 1 "Bandit" recall recall}
{GENERIC_UNIT 1 "Thug" recall recall} {EXPERIENCE 20}
{GENERIC_UNIT 1 "Thug" recall recall} {EXPERIENCE 20}
{GENERIC_UNIT 1 "Thug" recall recall} {EXPERIENCE 20}
[modify_side]
side,gold=1,150
[/modify_side]
[/event]
[event]
name=diff1_dwarves
{FIRE_EVENT spawn_npcs}
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Dwarvish Miner) _"Benchmark - Difficulty 1" ()}
{ADVANCE_UNIT id=Konrad ""}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Ulfdain x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,30} )}
{GENERIC_UNIT 1 "Dwarvish Fighter" recall recall}
{GENERIC_UNIT 1 "Dwarvish Fighter" recall recall}
{GENERIC_UNIT 1 "Dwarvish Fighter" recall recall}
{GENERIC_UNIT 1 "Dwarvish Fighter" recall recall}
[modify_side]
side,gold=1,150
[/modify_side]
[/event]
# 2-3 scenarios completed
[event]
name=diff2_elves
{FIRE_EVENT spawn_npcs}
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Elvish Fighter,Elvish Archer,Elvish Scout) _"Benchmark - Difficulty 2" ()}
{ADVANCE_UNIT id=Konrad ""}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Kalenz x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,0} )}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Moremirmu x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,30} )}
{GENERIC_UNIT 1 "Elvish Champion" recall recall}
{GENERIC_UNIT 1 "Elvish Avenger" recall recall}
{GENERIC_UNIT 1 "Elvish Hero" recall recall}
{GENERIC_UNIT 1 "Elvish Hero" recall recall}
{GENERIC_UNIT 1 "Elvish Ranger" recall recall}
{GENERIC_UNIT 1 "Elvish Ranger" recall recall}
{GENERIC_UNIT 1 "Elvish Marksman" recall recall}
{GENERIC_UNIT 1 "Elvish Marksman" recall recall}
[modify_side]
side,gold=1,175
[/modify_side]
[/event]
[event]
name=diff2_outlaws
{FIRE_EVENT spawn_npcs}
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Thug,Poacher,Footpad) _"Benchmark - Difficulty 2" ()}
{ADVANCE_UNIT id=Konrad ""}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Kalenz x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,0} )}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Harper x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,0} )}
{GENERIC_UNIT 1 "Highwayman" recall recall}
{GENERIC_UNIT 1 "Highwayman" recall recall}
{GENERIC_UNIT 1 "Bandit" recall recall}
{GENERIC_UNIT 1 "Bandit" recall recall}
{GENERIC_UNIT 1 "Bandit" recall recall}
{GENERIC_UNIT 1 "Outlaw" recall recall}
{GENERIC_UNIT 1 "Outlaw" recall recall}
{GENERIC_UNIT 1 "Outlaw" recall recall}
[modify_side]
side,gold=1,175
[/modify_side]
[/event]
[event]
name=diff2_dwarves
{FIRE_EVENT spawn_npcs}
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Dwarvish Miner,Thug,Poacher) _"Benchmark - Difficulty 2" ()}
{ADVANCE_UNIT id=Konrad ""}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Kalenz x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,0} )}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Ulfdain x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,0} {ADVANCE_UNIT id=Ulfdain ""} )}
{GENERIC_UNIT 1 "Dwarvish Lord" recall recall}
{GENERIC_UNIT 1 "Dwarvish Steelclad" recall recall}
{GENERIC_UNIT 1 "Dwarvish Steelclad" recall recall}
{GENERIC_UNIT 1 "Dwarvish Steelclad" recall recall}
{GENERIC_UNIT 1 "Dwarvish Steelclad" recall recall}
{GENERIC_UNIT 1 "Dwarvish Fighter" recall recall}
{GENERIC_UNIT 1 "Dwarvish Fighter" recall recall}
{GENERIC_UNIT 1 "Dwarvish Fighter" recall recall}
{GENERIC_UNIT 1 "Dwarvish Ulfserker" recall recall}
[modify_side]
side,gold=1,175
[/modify_side]
[/event]
# 4-6 scenarios completed
# TODO - this should probably include a completed companion-quest too, since we're assuming the player is optimizing?
[event]
name=diff3_elves
{FIRE_EVENT spawn_npcs}
{KILL (side,x,y=1,recall,recall {NOT id=Konrad})}
{NEW_RECRUIT1 (Elvish Fighter,Elvish Archer,Elvish Scout,Elvish Shaman,Dwarvish Miner) _"Benchmark - Difficulty 3" ()}
{ADVANCE_UNIT id=Konrad ""} {ADVANCE_UNIT id=Konrad ""}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Moremirmu x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,00} {ADVANCE_UNIT id=Moremirmu ""} )}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Ulfdain x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,00} {ADVANCE_UNIT id=Ulfdain ""} )}
{MOVE_UNDER_KONRAD( {UNSTORE_NPC Kalenz x,y="$($stored_konrad.x+1)",$stored_konrad.y side,experience=1,90} )}
{GENERIC_UNIT 1 "Elvish Champion" recall recall}
{GENERIC_UNIT 1 "Elvish Champion" recall recall}
{GENERIC_UNIT 1 "Elvish Hero" recall recall}
{GENERIC_UNIT 1 "Elvish Avenger" recall recall}
{GENERIC_UNIT 1 "Elvish Ranger" recall recall}
{GENERIC_UNIT 1 "Elvish Sharpshooter" recall recall}
{GENERIC_UNIT 1 "Elvish Sharpshooter" recall recall}
{GENERIC_UNIT 1 "Elvish Marksman" recall recall}
{GENERIC_UNIT 1 "Elvish Druid" recall recall}
{GENERIC_UNIT 1 "Elvish Druid" recall recall}
[modify_side]
side,gold=1,200
[/modify_side]
[/event]
#------------------
# LOAD MACROS
#------------------
[load_resource]
id=stronger_amlas
[/load_resource]
{GLOBAL__INITIAL_NPC_SPAWN}
{GLOBAL__AUTOSTORE_NPCs}
{GLOBAL__ANIMATIONS_RECRUIT}
{GLOBAL__HERODEATHS}
{GLOBAL__EXACTING_IMPLEMENTATION}
{GLOBAL__SMITE_IMPLEMENTATION}
# reset zoom, in case we do weird things with save-loading
[event]
name=prestart
priority=99
[zoom]
factor,relative=1,no
[/zoom]
[/event]
# allow miner to advance to ulf, since we get miners alongside our ulf companion
[modify_unit_type]
type=Dwarvish Miner
add_advancement=Dwarvish Ulfserker
[/modify_unit_type]
#------------------
# SUMMONS
#------------------
[event]
name,first_time_only=unit placed,no
{FILTER( side=1 {AND type_adv_tree="Mudcrawler","Fire Guardian","Granite Golem"} )}
{GIVE_OBJECT_TO id=$unit.id ({EFFECT new_ability ([abilities]
[dummy]
name,description=_"summoned","This elemental will dissipate at the end of the scenario."
[/dummy]
[/abilities])} )}
[allow_undo]
[/allow_undo]
[/event]
[event]
name=victory
{KILL( side=1 {AND type_adv_tree="Mudcrawler","Fire Guardian","Granite Golem"} )}
[/event]
#------------------
# MAGE ADVANCEMENTS
#------------------
# Alduin only lets Konrad advance Red Mages, and Valley of Death only allows White Mages
# To get both advancements, you must complete both scenarios
[event]
name=pre advance
first_time_only=no
{FILTER side,type=1,Mage}
[if] {VARIABLE_CONDITIONAL status_s06 not_equals completed} {THEN(
{GIVE_OBJECT_TO id=$unit.id ({EFFECT remove_advancement types="Red Mage"})}
)} [/if]
[if] {VARIABLE_CONDITIONAL status_s15b not_equals in_progress}
{VARIABLE_CONDITIONAL status_s15b not_equals completed} {THEN(
{GIVE_OBJECT_TO id=$unit.id ({EFFECT remove_advancement types="White Mage"})}
)} [/if]
[/event]
#------------------
# HI / WHITE MAGE
#------------------
# Konrad's HI are all warrior monks, so prefix their names with "Brother"
[event]
name=recruit,prefix_brother # not unit placed, or we add Brother multiple times
first_time_only=no
{FILTER type_adv_tree="Heavy Infantryman"}
[filter_condition]
{VARIABLE_CONDITIONAL unit.side equals 1} # either side 1, or one of the AI allies in S15a/b
{OR({VARIABLE_CONDITIONAL status_s15a equals in_progress})}
{OR({VARIABLE_CONDITIONAL status_s15b equals in_progress})}
[/filter_condition]
{STORE_UNIT_VAR id=$unit.id name name_before_adding_brother}
{MODIFY_UNIT id=$unit.id name _"Brother $name_before_adding_brother"}
{CLEAR_VARIABLE name_before_adding_brother}
[allow_undo]
[/allow_undo]
[/event]
[event]
name=post advance # only post advance, and only White Mage, or we add Brother multiple times
first_time_only=no
{FILTER type,side="White Mage",1}
{STORE_UNIT_VAR id=$unit.id name name_before_adding_brother}
{DEBUG_MSG "before:$name_before_adding_brother"}
[if] {HAVE_UNIT id,gender=$unit.id,male}
{THEN( {MODIFY_UNIT id=$unit.id name _"Brother $name_before_adding_brother"} )}
{ELSE( {MODIFY_UNIT id=$unit.id name _"Sister $name_before_adding_brother"} )}
[/if]
{CLEAR_VARIABLE name_before_adding_brother}
[allow_undo]
[/allow_undo]
[/event]
#endif
[/campaign]