1#textdomain wesnoth-httt
2[scenario]
3    id=15_The_Lost_General
4    name= _ "The Lost General"
5    map_data="{campaigns/Heir_To_The_Throne/maps/15_The_Lost_General.map}"
6    {TURNS 64 60 54}
7
8    {UNDERGROUND}
9
10    next_scenario=16_Hasty_Alliance
11
12    {SCENARIO_MUSIC "the_deep_path.ogg"}
13    {EXTRA_SCENARIO_MUSIC "underground.ogg"}
14    {EXTRA_SCENARIO_MUSIC "knalgan_theme.ogg"}
15    {EXTRA_SCENARIO_MUSIC "into_the_shadows.ogg"}
16    {EXTRA_SCENARIO_MUSIC "heroes_rite.ogg"}
17
18    {HTTT_TRACK {JOURNEY_15_NEW} }
19
20    [event]
21        name=prestart
22        [objectives]
23            side=1
24            [objective]
25                description= _ "Defeat all enemy leaders"
26                condition=win
27            [/objective]
28            [objective]
29                description= _ "Death of Konrad"
30                condition=lose
31            [/objective]
32            [objective]
33                description= _ "Death of Delfador"
34                condition=lose
35            [/objective]
36            [objective]
37                description= _ "Death of Kalenz"
38                condition=lose
39            [/objective]
40
41            {TURNS_RUN_OUT}
42
43            [gold_carryover]
44                bonus=yes
45                carryover_percentage=40
46            [/gold_carryover]
47        [/objectives]
48    [/event]
49
50    [side]
51        type=Commander
52        id=Konrad
53        name= _ "Konrad"
54        unrenamable=yes
55        profile=portraits/konrad-human.png
56        side=1
57        canrecruit=yes
58        team_name=elves
59        user_team_name=_"Rebels"
60        controller=human
61        {GOLD 350 250 100}
62        shroud=yes
63        {FLAG_VARIANT long}
64    [/side]
65
66    [side]
67        id=Geldar
68        name= _ "Geldar"
69        type=Dwarvish Lord
70        side=2
71        canrecruit=yes
72        recruit=Dwarvish Fighter
73        gold=150
74        team_name=elves
75        user_team_name=_"Rebels"
76        {FLAG_VARIANT knalgan}
77    [/side]
78
79    [side]
80        id=Brugg
81        name= _ "Brugg"
82        type=Troll Warrior
83        side=3
84        canrecruit=yes
85        recruit=Orcish Warrior,Wolf Rider,Troll,Troll Whelp,Troll Rocklobber,Goblin Pillager,Orcish Assassin,Orcish Crossbowman
86        {GOLD 290 350 410}
87        [ai]
88            {ATTACK_DEPTH 4 5 5}
89        [/ai]
90        team_name=evil
91        user_team_name=_"Evil"
92    [/side]
93
94    [side]
95        id=Lionel
96        name= _ "Lionel"
97        type=Death Knight
98        side=4
99        canrecruit=yes
100        recruit=Skeleton,Ghost,Revenant,Skeleton Archer,Bone Shooter
101        {GOLD 240 300 360}
102        [ai]
103            {ATTACK_DEPTH 4 5 5}
104        [/ai]
105        team_name=evil
106        user_team_name=_"Evil"
107        {FLAG_VARIANT undead}
108    [/side]
109
110    {PLACE_IMAGE scenery/signpost.png 27 22}
111    {PLACE_IMAGE scenery/rubble.png 28 25}
112    {PLACE_IMAGE scenery/rubble.png 26 24}
113    {PLACE_IMAGE scenery/rubble.png 27 24}
114
115    {PLACE_IMAGE scenery/whirlpool.png 13 22}
116    {PLACE_IMAGE scenery/whirlpool.png 7 23}
117
118    [event]
119        name=prestart
120        {NEED_DELFADOR placement=leader}
121        {NEED_KALENZ placement=leader}
122        [allow_recruit]
123            side=1
124            type=Dwarvish Fighter,Dwarvish Thunderer
125        [/allow_recruit]
126        [disallow_recruit]
127            side=1
128            type=Dwarvish Guardsman
129        [/disallow_recruit]
130    [/event]
131
132    [event]
133        name=start
134        [message]
135            speaker=Delfador
136            message= _ "We are now in the main dwarvish caverns."
137        [/message]
138        [message]
139            speaker=Delfador
140            message= _ "Underground roads once led to the different parts of the complex, but now everything lies in ruins."
141        [/message]
142    [/event]
143
144    [event]
145        name=moveto
146        [filter]
147            x=27
148            y=22
149            side=1
150        [/filter]
151        [message]
152            speaker=narrator
153            image="scenery/signpost.png"
154            message= _ "The sign says ‘Guest quarters’."
155        [/message]
156        [allow_undo][/allow_undo]
157    [/event]
158
159    [event]
160        name=moveto
161        [filter]
162            x=17
163            y=24
164            side=1
165        [/filter]
166
167        {NAMED_LOYAL_UNIT 2 (Dwarvish Fighter) 17 23 (Burlin) ( _ "Burlin")}
168
169        [message]
170            speaker=Burlin
171            message= _ "My uncle’s family drowned after the orcs flooded that cavern..."
172        [/message]
173    [/event]
174
175    [event]
176        name=moveto
177        [filter]
178            x=13
179            y=22
180            side=1
181            race=merman
182        [/filter]
183        [message]
184            speaker=narrator
185            image="wesnoth-icon.png"
186            message= _ "A hidden whirlpool sucks you down into a subterranean current!"
187        [/message]
188        {PLACE_IMAGE items/bones.png 2 22}
189        {PLACE_IMAGE items/bones.png 4 21}
190        [unit]
191            id=Ulfdain
192            name= _ "Ulfdain"
193            type=Dwarvish Ulfserker
194            side=2
195            x,y=2,21
196            random_traits=no
197
198            [modifications]
199                {TRAIT_LOYAL}
200                {TRAIT_RESILIENT}
201            [/modifications]
202            {IS_LOYAL}
203        [/unit]
204        [teleport]
205            [filter]
206                x,y=$x1,$y1
207            [/filter]
208            x,y=6,23
209        [/teleport]
210        [scroll_to]
211            x,y=6,23
212        [/scroll_to]
213        [remove_shroud]
214            side=1
215            x=2-4
216            y=21-24
217        [/remove_shroud]
218        [redraw]
219            side=1
220        [/redraw]
221        [message]
222            speaker=Ulfdain
223            message= _ "What’s this, more trolls? Aye, come to papa, little whelps."
224        [/message]
225        [message]
226            x,y=6,23
227            message= _ "Hello? Who is here?"
228        [/message]
229        [message]
230            speaker=Ulfdain
231            message= _ "What in the world are you? Some sort o’ monster’s appendage set tae lure me down to be yer watery meal, eh?"
232        [/message]
233        [message]
234            x,y=6,23
235            # po: Comic relief
236            male_message= _ "I am a merman, dweller of the vast oceans! Do not ask me what I am doing in a cave. My lord can be somewhat eccentric. We are fighting at the side of your fellow cave-dwellers to drive back the orcs and trolls."
237            # po: Comic relief
238            female_message= _ "I am a mermaid, dweller of the vast oceans! Do not ask me what I am doing in a cave. My lord can be somewhat eccentric. We are fighting at the side of your fellow cave-dwellers to drive back the orcs and trolls."
239        [/message]
240        [message]
241            speaker=Ulfdain
242            [show_if]
243                [have_unit]
244                    x,y=6,23
245                    gender=male
246                [/have_unit]
247            [/show_if]
248            # wmllint: directory spelling mer-mahn
249            message= _ "(sniffs) A mer-mahn. Never heard of it. I doubt yer as tasty as my friends here."
250        [/message]
251        [message]
252            speaker=Ulfdain
253            [show_if]
254                [have_unit]
255                    x,y=6,23
256                    gender=female
257                [/have_unit]
258            [/show_if]
259            # wmllint: directory spelling mer-mead
260            message= _ "(sniffs) A mer-mead. Never heard of it. I doubt yer as tasty as my friends here."
261        [/message]
262        [message]
263            x,y=6,23
264            message= _ "Why are you down here? Are those... troll carcasses?"
265        [/message]
266        [message]
267            speaker=Ulfdain
268            message= _ "I was brawlin’ with these wee pups here defending my outpost. We got a little carried away, fell in the water, and were sucked down intae this grotto."
269        [/message]
270        [message]
271            x,y=6,23
272            message= _ "How long have you been here?"
273        [/message]
274        [message]
275            speaker=Ulfdain
276            message= _ "Och, several days at least. The troll meat is starting to stink, and I’m a little ravenous, if ye catch my drift. Canna’ swim past that current, and no’ for lack o’ tryin’."
277        [/message]
278        [message]
279            x,y=6,23
280            message= _ "I will rescue you. Hold onto my shoulders, sir dwarf."
281        [/message]
282        [message]
283            speaker=Ulfdain
284            message= _ "Thanks. Nae need to wait around here. Let’s go."
285        [/message]
286        [store_unit]
287            [filter]
288                id=Ulfdain
289            [/filter]
290
291            kill=yes
292            variable=stored_Ulfdain
293        [/store_unit]
294    [/event]
295
296    [event]
297        name=moveto
298        [filter]
299            x=7
300            y=23
301            side=1
302            race=merman
303        [/filter]
304        [message]
305            speaker=narrator
306            image="wesnoth-icon.png"
307            message= _ "Better prepared this time to fight the current, you eventually manage to emerge from the whirlpool."
308        [/message]
309        [teleport]
310            [filter]
311                id=$unit.id
312            [/filter]
313            x,y=13,22
314        [/teleport]
315        {VARIABLE stored_Ulfdain.x 14}
316        {VARIABLE stored_Ulfdain.y 22}
317        {VARIABLE stored_Ulfdain.side 1}
318        [unstore_unit]
319            variable=stored_Ulfdain
320            find_vacant=yes
321        [/unstore_unit]
322        [place_shroud]
323            side=1
324            x= 2-7 , 7-8
325            y=21-24,22-24
326        [/place_shroud]
327        [message]
328            speaker=Ulfdain
329            [show_if]
330                [have_unit]
331                    id=$unit.id
332                    gender=male
333                [/have_unit]
334            [/show_if]
335            message= _ "Well, mer-mahn, we made it. I will fight for yer lord. He sounds like a brave fellow."
336        [/message]
337        [message]
338            speaker=Ulfdain
339            [show_if]
340                [have_unit]
341                    id=$unit.id
342                    gender=female
343                [/have_unit]
344            [/show_if]
345            message= _ "Well, mer-mead, we made it. I will fight for yer lord. He sounds like a brave fellow."
346        [/message]
347        {CLEAR_VARIABLE stored_Ulfdain}
348    [/event]
349
350    [event]
351        name=moveto
352        [filter]
353            x=22-25
354            y=1-23
355            side=1
356        [/filter]
357
358        [sound]
359            name=thunderstick.ogg
360        [/sound]
361        [delay]
362            time=200
363        [/delay]
364
365        # This dialog has several purposes:
366        # 1. Clue to the player that he's exploring in the right direction
367        # 2. Clue to the player to hurry up, in order to save Geldar
368        # 3. An excuse to play the thunderstick sound :)
369        [message]
370            speaker=Konrad
371            # We don't use {WHISPER} since it adds parentheses and two pairs of parentheses would be confusing.
372            message=_ "<i>(motions for silence)</i>
373
374<small>What was that raucous noise?</small>"
375        [/message]
376        [message]
377            speaker=Delfador
378            {DELFADOR_MENTORING}
379            message=_ "That can only have been a Dwarven thunderstick, Konrad. Our Knalgan allies must be in the thick of battle."
380        [/message]
381        # Let $unit speak too, so it's clear where the battle is.
382        [if]
383            [have_unit]
384                id=$unit.id
385                race=dwarf
386            [/have_unit]
387            [then]
388                [message]
389                    speaker=unit
390                    # po: speaker is a dwarf
391                    message=_ "That’ll be Lord Geldar’s clan, my lords. Their scouting patrols should’ve found us by now."
392                [/message]
393            [/then]
394            [else]
395                [message]
396                    speaker=unit
397                    # po: The unit is saying that a battle between the player's dwarven allies and their enemies is not far, but still under the shroud. Translate freely.
398                    male_message=_ "We must hurry to assist them, my lords."
399                    # po: The unit is saying that a battle between the player's dwarven allies and their enemies is not far, but still under the shroud. Translate freely.
400                    female_message=_ "female^We must hurry to assist them, my lords."
401                [/message]
402            [/else]
403        [/if]
404        [allow_undo][/allow_undo]
405    [/event]
406
407    [event]
408        name=moveto
409        [filter]
410            x=11-19
411            y=10-16
412            side=1
413        [/filter]
414        [remove_shroud]
415            side=1
416            x=14-16,12-18,10-19,12-18
417            y=10,   11,   12-14,15
418        [/remove_shroud]
419        [redraw]
420        [/redraw]
421        [scroll_to]
422            x,y=15,13
423        [/scroll_to]
424        [delay]
425            time=1500
426        [/delay]
427        [message]
428            speaker=narrator
429            image="wesnoth-icon.png"
430            message= _ "You emerge into a vast natural cathedral, the walls arching higher than you can see in the darkness. Stretching across the gallery is a great chasm, around which the cave floor appears to have been completely worn smooth. This was once the center of a bustling dwarvish empire, the remnants of which have since been driven into the upper caves of Knalga by the forces of darkness."
431        [/message]
432    [/event]
433
434    [event]
435        name=moveto
436        [filter]
437            x=20-30
438            y=18-30
439            side=1
440        [/filter]
441        [message]
442            speaker=unit
443            # TODO: mention some sounds coming from the cave-in? (Ostensibly,
444            # the sounds of the skeletons working to open the passage.)
445            message= _ "There is a big cave-in south of here."
446        [/message]
447    [/event]
448    [event]
449        name=moveto
450        [filter]
451            x=20-30
452            y=24-25
453            side=1
454        [/filter]
455        {QUAKE "cave-in.ogg"}
456        [message]
457            speaker=unit
458            message= _ "The rocks are moving!"
459        [/message]
460        [terrain]
461            x=28
462            y=26
463            terrain=Uu
464        [/terrain]
465
466        {PLACE_IMAGE scenery/rubble.png 28 26}
467
468        [terrain]
469            x=26
470            y=25
471            terrain=Uu
472        [/terrain]
473
474        {PLACE_IMAGE scenery/rubble.png 26 25}
475
476        #just in case that the player waits until the other end is
477        # open to catch him alone
478        [unit]
479#ifdef HARD
480            type=Revenant
481#else
482            type=Skeleton
483#endif
484            side=4
485            x=24
486            y=28
487            [modifications]
488                {TRAIT_LOYAL}
489            [/modifications]
490            {IS_LOYAL}
491        [/unit]
492        [unit]
493#ifdef EASY
494            type=Walking Corpse
495#endif
496#ifdef NORMAL
497            type=Skeleton
498#endif
499#ifdef HARD
500            type=Revenant
501#endif
502            side=4
503            x=24
504            y=28
505            [modifications]
506                {TRAIT_LOYAL}
507            [/modifications]
508            {IS_LOYAL}
509        [/unit]
510    [/event]
511
512    [event]
513        name=sighted
514        [filter]
515            side=2
516        [/filter]
517        [filter_second]
518            side=1
519        [/filter_second]
520        [message]
521            speaker=second_unit
522            message= _ "Who goes there? Friend or foe?"
523        [/message]
524        [message]
525            speaker=unit
526            message= _ "We are desperately trying to rid these tunnels of orcs and trolls! Please help us in our quest."
527        [/message]
528#ifdef EASY
529        {NARRATOR_MESSAGE (_ "The dwarves are your allies in this scenario. If you help their leader survive the battle, he may provide you with useful information.")}
530#endif
531    [/event]
532
533    [event]
534        name=sighted
535        [filter]
536            side=3
537        [/filter]
538        [filter_second]
539            side=1
540        [/filter_second]
541        [message]
542            speaker=second_unit
543            message= _ "Vile creature! Let us rid these tunnels of its kind!"
544        [/message]
545    [/event]
546
547    [event]
548        name=sighted
549        [filter]
550            side=4
551        [/filter]
552        [filter_second]
553            side=1
554        [/filter_second]
555        [message]
556            speaker=second_unit
557            message= _ "I did not know that the undead were in these pits!"
558        [/message]
559    [/event]
560
561    [event]
562        name=sighted
563        [filter]
564            id=Lionel
565        [/filter]
566        [filter_second]
567            side=1
568        [/filter_second]
569        [message]
570            speaker=second_unit
571            message= _ "Who is this foul enemy that we fight?"
572        [/message]
573        [message]
574            speaker=Lionel
575            message= _ "I am Lionel. I am the Lost General. I will avenge myself upon you all!"
576        [/message]
577        [message]
578            speaker=Konrad
579            message= _ "Avenge? What have we done to you that you must avenge?"
580        [/message]
581        [message]
582            speaker=Delfador
583            message= _ "Lionel? A General? I remember that name..."
584        [/message]
585        [message]
586            speaker=Lionel
587            message= _ "Remember me, do you? Aye. I was the king’s finest general, sent down to these pits to retrieve the Sceptre. But the orcs trapped me and my men in this cavern, to starve to death. The dwarves were no help, leaving me to die. Now I will get revenge on you all!"
588        [/message]
589
590#define MORE_UNITS
591    {LOYAL_UNIT 4 (Revenant) 23 28}
592#enddef
593
594        {MORE_UNITS}
595        {MORE_UNITS}
596        {MORE_UNITS}
597    [/event]
598
599    [event]
600        name=last breath
601        [filter]
602            id=Lionel
603        [/filter]
604        [message]
605            speaker=Lionel
606            message= _ "Argh! I am vanquished! But at least by worthy foes, instead of those disgusting orcs."
607        [/message]
608        [message]
609            speaker=Delfador
610            message= _ "Rest in peace, Lionel. The poor, lost general."
611        [/message]
612        [message]
613            speaker=Lionel
614            message= _ "I am destroyed, but my mission must be completed. Though you are foes, you are at least worthy ones, so I will tell you that the Sceptre is east from here, the way you have come from, deep in the caverns. I made the mistake of not asking for directions when I became lost. May you have better fortune in your quest than I did!"
615        [/message]
616    [/event]
617
618    [event]
619        name=turn 20
620
621        {QUAKE "rumble.ogg"}
622        {QUAKE "rumble.ogg"}
623        {QUAKE "rumble.ogg"}
624        {QUAKE "rumble.ogg"}
625        [message]
626            speaker=narrator
627            image="wesnoth-icon.png"
628            message= _ "The earth shakes."
629        [/message]
630        # just to open another exit to the undeads
631        [terrain]
632            x=15
633            y=26
634            terrain=Uu
635        [/terrain]
636
637        {PLACE_IMAGE scenery/rubble.png 15 26}
638
639        [terrain]
640            x=16
641            y=26
642            terrain=Uu
643        [/terrain]
644
645        {PLACE_IMAGE scenery/rubble.png 16 26}
646
647        {LOYAL_UNIT 4 (Skeleton) 23 28}
648    [/event]
649
650    [event]
651        name=enemies defeated
652
653        #
654
655        # We don't know if Geldar will be alive at this point,
656        # but if he is, then he gives you guardsmen.
657
658        #
659
660        [if]
661            [have_unit]
662                id=Geldar
663            [/have_unit]
664            [then]
665                [message]
666                    speaker=Geldar
667                    message= _ "Tall ones, I thank ye. Life has been nothing but a struggle recently. We are the last outpost o’ civilization in these caves."
668                [/message]
669
670                [message]
671                    speaker=Delfador
672                    message= _ "We have fared little better ourselves, friend. We have fled the Aethenwood last spring and come to these caves to seek the Sceptre of Fire. With the Sceptre, we hope to put the war to an end."
673                [/message]
674
675                [message]
676                    speaker=Geldar
677                    message= _ "The Sceptre? Ah, the Sceptre ye seek. You surface dwellers are ambitious. Beyond my citadel the spawn of the darkness hold complete sway. You’ll no’ survive without assistance."
678                [/message]
679
680                [message]
681                    speaker=Konrad
682                    # po: Relgorn is the dwarvish leader from the previous scenario
683                    message= _ "Lord Relgorn’s troops are fighting at our side, sir."
684                [/message]
685
686                [message]
687                    speaker=Geldar
688                    message= _ "And fine troops they are, Prince, but no dwarf can match a guardsman’s resolute defense. Please accept the service o’ my clan’s defenders, to protect you and your quest."
689                [/message]
690
691                [message]
692                    speaker=Konrad
693                    message= _ "Your boon is most welcome, sir dwarf. Keeping the Sceptre out of the hands of evil beasts is a common goal for us, and we will prevail with your help."
694                [/message]
695
696                [message]
697                    speaker=narrator
698                    image="wesnoth-icon.png"
699                    message= _ "You may now recruit the legendary dwarvish guardsmen!"
700                [/message]
701                [allow_recruit]
702                    side=1
703                    type=Dwarvish Guardsman
704                [/allow_recruit]
705
706                [message]
707                    speaker=Geldar
708                    message= _ "Northeast o’ my keep, Delfador, the tunnels converge towards the deepest reaches o’ the underground kingdom. The Sceptre can only be there."
709                [/message]
710            [/then]
711            [else]
712                [message]
713                    speaker=Delfador
714                    message= _ "These caves are vast. If we are to find the Sceptre of Fire we must hurry. We are not alone, and now that our foes have smelled our blood it will be worse."
715                [/message]
716
717                [message]
718                    speaker=Konrad
719                    message= _ "How will we make it?"
720                [/message]
721
722                [message]
723                    speaker=Delfador
724                    message= _ "I do not know, Konrad, but I can sense our path only leads us downward. We will continue to the northeast, to the deepest depths of these caverns."
725                [/message]
726            [/else]
727        [/if]
728
729        [endlevel]
730            result=victory
731            bonus=yes
732            {NEW_GOLD_CARRYOVER 40}
733        [/endlevel]
734    [/event]
735
736    {campaigns/Heir_To_The_Throne/utils/deaths.cfg}
737[/scenario]
738
739#undef MORE_UNITS
740