-
-
Notifications
You must be signed in to change notification settings - Fork 991
/
17a_The_Duel.cfg
277 lines (245 loc) · 6.98 KB
/
17a_The_Duel.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
#textdomain wesnoth-ei
[scenario]
id=17a_The_Duel
name= _ "The Duel"
map_file=17a_The_Duel.map
turns=unlimited
next_scenario=18_Epilogue
{UNDERGROUND}
{INTRO_AND_SCENARIO_MUSIC underground.ogg the_deep_path.ogg}
{EXTRA_SCENARIO_MUSIC the_dangerous_symphony.ogg}
{EXTRA_SCENARIO_MUSIC legends_of_the_north.ogg}
{campaigns/Eastern_Invasion/utils/final_battle.cfg}
[side]
type=Lieutenant
id=Gweddry
name= _ "Gweddry"
side=1
canrecruit=yes
controller=human
team_name=good
user_team_name=_"Wesnothians"
gold=200
{FLAG_VARIANT loyalist}
[/side]
[side]
type=Lich Lord
id=Mal-Ravanal
name= _ "Mal-Ravanal"
side=2
canrecruit=yes
recruit=
controller=ai
gold=0
team_name=bad
user_team_name=_"Undead"
profile=portraits/mal-ravanal.png
[ai]
aggression=0.6
caution=0.2
leader_value=20
[avoid]
x=20,28
y= 4, 8
[/avoid]
[/ai]
{FLAG_VARIANT undead}
[/side]
[event]
name=prestart
[objectives]
side=1
[objective]
description= _ "Defeat Mal-Ravanal while Dacyn is nearby"
condition=win
[/objective]
[objective]
description= _ "Death of Gweddry"
condition=lose
[/objective]
[objective]
description= _ "Death of Dacyn"
condition=lose
[/objective]
{IS_LAST_SCENARIO}
[/objectives]
[/event]
[event]
name=start
# We don't want him to appear on the recall list
[kill]
id=Konrad
[/kill]
[recall]
id=Dacyn
show=no
[/recall]
{MODIFY_UNIT id=Dacyn moves 0}
{MODIFY_UNIT id=Dacyn attacks_left 0}
[message]
speaker=Mal-Ravanal
message= _ "I have waited a long time for this day to come. I shall have my revenge, Dacyn!"
[/message]
[message]
speaker=Dacyn
message= _ "Indeed, it is time to end this."
[/message]
[message]
speaker=narrator
message= _ "The rules of the duel are these:
You may recruit or recall up to 5 units.
At the end of your first turn, your keep will disappear, and you must battle with whatever troops you have at that time."
image=wesnoth-icon.png
[/message]
[message]
speaker=Dacyn
message= _ "When we attack Mal-Ravanal I will need to be nearby with the Null Stone to prevent his teleportation. We cannot afford to let him escape."
[/message]
[/event]
#define DUEL_UNIT TYPE X Y
[unit]
type={TYPE}
side=2
x={X}
y={Y}
random_traits=yes
animate=yes
moves=0
[/unit]
#enddef
[event]
name=side 2 turn 1
{DUEL_UNIT (Necromancer) 24 5}
{DUEL_UNIT (Lich) 25 6}
{DUEL_UNIT (Deathblade) 25 7}
{DUEL_UNIT (Draug) 24 7}
{DUEL_UNIT (Death Knight) 23 7}
{DUEL_UNIT (Spectre) 23 6}
[/event]
[event]
name=turn 2
[terrain]
x,y=6,15
terrain=Cud
[/terrain]
[terrain]
x,y=24,6
terrain=Cud
[/terrain]
[/event]
# NOTE: the player will be recalling a keep full of level 3 units with magic, arcane,
# and impact attacks. Mal-Ravanal needs to cheat a fair bit just to even the odds
[event]
name=turn 5,turn 11,turn 17,turn 23,turn 30,turn 38,turn 47,turn 57,turn 68,turn 80
first_time_only=no
[fire_event]
name=summon
[/fire_event]
[/event]
# if Mal-Ravanal is low on troops, have him summon some more
[event]
name=turn end
first_time_only=no
[if]
[have_unit]
side=2
#ifdef HARD
count=1-4
#else
count=1-3
#endif
[/have_unit]
[then]
[fire_event]
name=summon
[/fire_event]
[/then]
[/if]
[/event]
#Mal-Ravanal summons 3 additional undead on the battlefield
[event]
name=summon
first_time_only=no
[animate_unit]
[filter]
id=Mal-Ravanal
[/filter]
flag=summon
[/animate_unit]
[repeat]
times=3
[do]
#ifdef EASY
{VARIABLE_OP new_summon_type rand "Bone Shooter,Bone Shooter,Revenant,Revenant,Necrophage,Necrophage,Wraith"}
#endif
#ifdef NORMAL
{VARIABLE_OP new_summon_type rand "Bone Shooter,Revenant,Necrophage,Wraith,Deathblade"}
#endif
#ifdef HARD
{VARIABLE_OP new_summon_type rand "Bone Shooter,Revenant,Necrophage,Wraith,Shadow,Banebow,Spectre,Ghast,Deathblade,Draug"}
#endif
[store_locations]
[not]
[filter]
# matches all units
[/filter]
[/not]
[and]
terrain=Uu
[/and]
variable=new_summon_locations
[/store_locations]
{VARIABLE_OP loci rand "1..$new_summon_locations.length"}
{VARIABLE_OP loci sub 1}
[unit]
x,y=$new_summon_locations[$loci].x,$new_summon_locations[$loci].y
type=$new_summon_type
side=2
animate=yes
[/unit]
[/do]
[/repeat]
{CLEAR_VARIABLE new_summon_type,new_summon_locations,loci}
[fire_event]
name=summon_explanation
[/fire_event]
[/event]
[event]
name=summon_explanation
[message]
speaker=Gweddry
message= _ "Wait — what just happened? He called more warriors out of the ground! That’s not allowed!"
[/message]
[message]
speaker=Mal-Ravanal
message= _ "Stop talking and fight! The rules say nothing about bringing up warriors that were already here."
[/message]
[/event]
[event]
name=last breath
[filter]
id=Gweddry
[/filter]
[message]
speaker=Gweddry
message= _ "No! This cannot be the way it was meant to end!"
[/message]
[endlevel]
result=defeat
[/endlevel]
[/event]
[event]
name=last breath
[filter]
id=Dacyn
[/filter]
[message]
speaker=Dacyn
message= _ "Wesnoth, I have failed you..."
[/message]
[endlevel]
result=defeat
[/endlevel]
[/event]
{LATE_DEFEAT}
[/scenario]