#textdomain wesnoth-did [scenario] id=11_Descent_into_Darkness next_scenario=12_Endless_Night name=_ "Descent into Darkness" map_data="{campaigns/Descent_Into_Darkness/maps/11_Descent_into_Darkness.map}" turns=-1 {INTRO_AND_SCENARIO_MUSIC the_city_falls.ogg the_deep_path.ogg} {EXTRA_SCENARIO_MUSIC the_king_is_dead.ogg} {EXTRA_SCENARIO_MUSIC revelation.ogg} victory_when_enemies_defeated=no [story] [part] story=_ "“To become a lich, one must first die.”" background=story/book.jpg scale_background=no [/part] [part] story=_ "So reads the book that Malin has reclaimed. “The spells of necromancy bind the spirit, but only once it has been unbound from the body. To become a lich, the mage must make the necessary incantations with his dying breaths. He thus binds his own spirit in much the same way necromancers bind the spirits of others. Because he retains his own will, however, the lich can call upon the awesome powers of the spirit world.”" background=story/book.jpg scale_background=no [/part] [part] story=_ "The words, and the idea, stick in the back of his mind. With all of Wesnoth forbidden to him, Malin finds refuge in a nameless frontier village where few questions are asked. When word filters to the town that Parthyn has been overrun by orcs, it rekindles hatred within him. With renewed purpose, he raises his undead minions and travels northward." background=story/travel.jpg scale_background=no [/part] [part] story=_ "Malin soon finds the track of an enormous orc army, and follows them until he reaches their camp. As he sees the number of orcs, the enormity of his quest begins to dawn on him. He attacks the camp anyway but is quickly driven back, and badly injured by a thrown orcish dagger as he retreats. He finds refuge in a small cave." background=story/end.jpg scale_background=no [/part] [/story] {BIGMAP_11} {UNDERGROUND} [side] side=1 controller=human type=Apprentice Mage id=Malin Keshar name=_ "Malin Keshar" profile=portraits/malin_old-decay.png unrenamable=yes canrecruit=yes recruit=Walking Corpse,Vampire Bat,Ghost,Ghoul,Skeleton Archer,Skeleton,Dark Adept DiD income=-2 gold=100 fog=yes shroud=yes {FLAG_VARIANT undead} [/side] [side] # Troll leader side=2 team_name=trolls user_team_name=_"Trolls" controller=ai # place leader later no_leader=yes income=-2 gold=60 recruit=Troll Whelp,Troll,Troll Rocklobber,Troll Warrior,Troll Shaman [ai] caution=0.5 grouping=defensive [goal] name=protect_unit [criteria] side=2 canrecruit=yes [/criteria] value=10 [/goal] recruitment_pattern=fighter,fighter,mixed fighter # Avoid the spiders, the wose, and the beginning area [avoid] x=2-9,2-27,5-9 y=11-15,30-35,19-23 [/avoid] [/ai] fog=yes shroud=no [/side] [side] # Eastern village trolls side=3 team_name=trolls user_team_name=_"Trolls" controller=ai no_leader=yes income=-2 gold=0 [ai] # Avoid the spiders, the wose, and the beginning area [avoid] x=2-9,2-27,5-9 y=11-15,30-35,19-23 [/avoid] [/ai] fog=yes shroud=no [/side] [side] # Western village trolls side=4 team_name=trolls user_team_name=_"Trolls" controller=ai no_leader=yes income=-2 gold=0 [ai] # Avoid the spiders, the wose, and the beginning area [avoid] x=2-9,2-27,5-9 y=11-15,30-35,19-23 [/avoid] [/ai] fog=yes shroud=no [/side] [side] # Monsters side=5 controller=ai no_leader=yes income=-2 gold=0 [ai] # This is mostly for the Wose -- the others are guardians [goal] name=target [criteria] side=1 [/criteria] value=5 [/goal] [/ai] fog=yes shroud=yes [/side] [event] name=prestart [if] [have_unit] id=Malin Keshar [and] type=Apprentice Necromancer [or] type=Apprentice Mage [/or] [/and] [/have_unit] [then] [kill] id=Malin Keshar [/kill] [unit] id=Malin Keshar name=_ "Malin Keshar" type=Dark Mage side=1 x,y=3,34 profile=portraits/malin_old-decay.png unrenamable=yes canrecruit=yes [/unit] [/then] [/if] [store_unit] [filter] id=Malin Keshar [/filter] kill=yes variable=stored_Malin [/store_unit] # Malin starts injured and poisoned {VARIABLE stored_Malin.hitpoints 9} {VARIABLE stored_Malin.status.poisoned yes} [unstore_unit] variable=stored_Malin [/unstore_unit] {CLEAR_VARIABLE stored_Malin} # Castle trolls - all difficulties {UNIT 2 (Troll) 14 7 (ai_special=guardian)} {UNIT 2 (Troll) 8 7 (ai_special=guardian)} {UNIT 2 (Troll) 16 3 (ai_special=guardian)} {UNIT 2 (Troll Rocklobber) 12 1 (ai_special=guardian)} {UNIT 2 (Troll Shaman) 7 4 (ai_special=guardian)} # Eastern village trolls - all difficulties {UNIT 3 (Troll) 30 19 (ai_special=guardian)} {UNIT 3 (Troll) 31 12 (ai_special=guardian)} {UNIT 3 (Troll Shaman) 33 14 (ai_special=guardian)} # Western village trolls - all difficulties {UNIT 4 (Troll Shaman) 4 21 (ai_special=guardian)} {UNIT 4 (Troll) 10 26 (ai_special=guardian)} {UNIT 4 (Troll Whelp) 2 25 (ai_special=guardian)} {UNIT 4 (Troll) 10 16 (ai_special=guardian)} # Monsters {UNIT 5 (Giant Rat) 14 29 (ai_special=guardian)} {UNIT 5 (Giant Rat) 21 28 (ai_special=guardian)} {UNIT 5 (Giant Rat) 24 34 (ai_special=guardian)} {UNIT 5 (Giant Rat) 18 18 (ai_special=guardian)} {UNIT 5 (Giant Rat) 22 5 (ai_special=guardian)} {UNIT 5 (Vampire Bat) 29 26 (ai_special=guardian)} {UNIT 5 (Vampire Bat) 26 31 (ai_special=guardian)} {UNIT 5 (Vampire Bat) 19 32 (ai_special=guardian)} {UNIT 5 (Vampire Bat) 19 23 (ai_special=guardian)} {UNIT 5 (Vampire Bat) 18 13 (ai_special=guardian)} {UNIT 5 (Vampire Bat) 18 34 (ai_special=guardian)} {UNIT 5 (Giant Spider) 7 12 (ai_special=guardian)} {UNIT 5 (Giant Spider) 8 13 (ai_special=guardian)} {UNIT 5 (Giant Spider) 6 15 (ai_special=guardian)} #ifdef NORMAL {UNIT 2 (Troll) 7 7 (ai_special=guardian)} {UNIT 4 (Troll Whelp) 4 19 (ai_special=guardian)} {UNIT 3 (Troll Whelp) 31 16 (ai_special=guardian)} #endif #ifdef HARD {UNIT 2 (Troll) 7 7 (ai_special=guardian)} {UNIT 4 (Troll Rocklobber) 8 18 (ai_special=guardian)} {UNIT 3 (Troll Rocklobber) 27 16 (ai_special=guardian)} #endif # The wose [unit] type=Ancient Wose side=5 x,y=7,21 id=Dumdumbadoom name= _"Dumdumbadoom" ai_special=guardian [/unit] {MODIFY_UNIT side=2,3,4,5 upkeep loyal} [/event] [event] name=start {MOVE_UNIT (id=Malin Keshar) 5 32} [redraw] side=1 [/redraw] {CREATE_ADVISOR} [message] role=advisor message=_ "Master, you are gravely injured!" [/message] [message] speaker=Malin Keshar message=_ "I won’t go down like this, felled by an orc’s blade. I won’t see them defeat me!" [/message] [message] role=advisor message=_ "There is another way, master. Remember the book..." [/message] [message] speaker=Malin Keshar message=_ "Yes... yes. The orcs are too strong for me now, but once I have undergone the transformation they’ll begin to fall before me. And I will continue to hound them until the last one falls!" [/message] [message] speaker=Malin Keshar message=_ "Leave me now while I prepare." [/message] [message] role=advisor message=_ "Yes, master." [/message] {PUT_TO_RECALL_LIST (role=advisor)} [message] speaker=narrator message=_ "With his last bits of strength, Malin assembles an altar as the book instructs." image=wesnoth-icon.png [/message] [item] x,y=6,31 image=misc/makeshift-altar.png [/item] [recall] role=advisor x,y=7,31 [/recall] [delay] time=500 [/delay] {MOVE_UNIT (id=Malin Keshar) 6 31} {MODIFY_UNIT role=advisor facing sw} [message] speaker=Malin Keshar message=_ "I pray that I am strong enough to complete the spell." [/message] [message] speaker=Malin Keshar message=_ "I’m ready. Do it." [/message] [animate_unit] flag=attack hits=yes [filter] role=advisor [/filter] [primary_attack] range=melee [/primary_attack] [facing] [filter] id=Malin Keshar [/filter] [/facing] [animate] flag=defend [filter] id=Malin Keshar [/filter] hits=no [facing] [filter] role=advisor [/filter] [/facing] [/animate] [/animate_unit] [kill] id=Malin Keshar fire_event=no animate=yes [/kill] {PUT_TO_RECALL_LIST (role=advisor)} {FADE_TO_BLACK} [redraw] [/redraw] {DELAY 1000} [message] speaker=narrator message=_ "There is darkness..." image=wesnoth-icon.png [/message] [message] speaker=narrator message=_ "and peace..." image=wesnoth-icon.png [/message] [message] speaker=narrator message=_ "for a moment." image=wesnoth-icon.png [/message] {DELAY 500} [message] speaker=narrator message=_ "Then they are replaced by a pulling, a pain too strong to resist, and then..." image=wesnoth-icon.png [/message] [message] speaker=narrator message=_ "by emptiness." image=wesnoth-icon.png [/message] {FADE_IN} # and is reborn as a lich [unit] type=Lich DiD side=1 id=Mal Keshar name=_ "Mal Keshar" unrenamable=yes canrecruit=yes profile=portraits/malin_lich.png x,y=6,31 hitpoints=9 facing=se animate=yes [/unit] [redraw] [/redraw] # He's not necessarilly totally happy about this [message] speaker=Mal Keshar message=_ "AAAaaiiigghh!!" # wmllint: no spellcheck sound=lich-die.ogg [/message] [message] speaker=Mal Keshar message=_ "The cold, it burns!" [/message] [message] speaker=Mal Keshar message=_ "I need warmth... life... I sense some here!" [/message] [animate_unit] flag=attack hits=yes [filter] id=Mal Keshar [/filter] [primary_attack] range=ranged [/primary_attack] [facing] [filter_adjacent_location] [filter] id=Malin Keshar [/filter] adjacent=nw [/filter_adjacent_location] [/facing] [/animate_unit] # Blow open a wall [move_unit_fake] type=Iceball side=1 x=6,10 y=31,31 [/move_unit_fake] {QUAKE "cave-in.ogg"} [terrain] x,y=10,31 terrain=Uh [/terrain] {INCIDENTAL_MUSIC the_dangerous_symphony.ogg} [music] name=knalgan_theme.ogg append=yes [/music] [music] name=heroes_rite.ogg append=yes [/music] [objectives] side=1 [objective] condition=win description=_ "Regain your strength" [/objective] [objective] condition=lose description=_ "Destruction of Mal Keshar" [/objective] [/objectives] # Previously recruited and new adepts can now also become liches {MODIFY_UNIT (type=Dark Adept DiD) advances_to (Dark Sorcerer)} {MODIFY_UNIT (type=Dark Sorcerer DiD) advances_to (Lich,Necromancer)} [disallow_recruit] side=1 type=Dark Adept DiD [/disallow_recruit] [allow_recruit] side=1 type=Dark Adept [/allow_recruit] [/event] # Ensure that you can't lose to the first couple of bats and rats simply by # getting unlucky. {FORCE_CHANCE_TO_HIT id="Mal Keshar" side=5 100 ( [variable] name=turn_number less_than=5 [/variable] )} [event] name=attacker_hits first_time_only=yes [filter] id=Mal Keshar [/filter] [filter_attack] name=touch [/filter_attack] [message] speaker=Mal Keshar message=_ "Yes! I can draw energy even from these insignificant creatures." [/message] [/event] [event] # See your goal name=moveto [filter] id=Mal Keshar x=20-25 y=27-29 [/filter] [remove_shroud] # See the road to the castle and the castle itself side=1 x=3-13,20-22,18-20,17-19,13-16,11-15 y=2-8,18-28,15-17,14-16,12-13,9-11 [/remove_shroud] [redraw] side=1 [/redraw] [scroll_to] x,y=8,5 [/scroll_to] {DELAY 2000} [message] speaker=Mal Keshar message=_ "There, in along this old road, I sense a place worthy of being my home. From there I will build my armies. But I am still too weak to clear the vermin from it. I must finish regaining my strength." [/message] [message] speaker=Mal Keshar message=_ "I will need a castle from which to call upon my soldiers. I sense one nearby." [/message] [remove_shroud] side=1 x=27-32 y=23-27 [/remove_shroud] [redraw] side=1 [/redraw] [scroll_to] x,y=34,24 [/scroll_to] {DELAY 1500} [message] speaker=Mal Keshar message=_ "Yes, this will do until I can take my new home." [/message] [objectives] side=1 [objective] condition=win description=_ "Clear your new home of trolls" [/objective] [objective] condition=lose description=_ "Destruction of Mal Keshar" [/objective] {TURNS_RUN_OUT} [gold_carryover] bonus=yes carryover_percentage=40 [/gold_carryover] [/objectives] # Turns are measured from here {VARIABLE totalTurns 50} {VARIABLE_OP totalTurns add $turn_number} [modify_turns] value=$totalTurns [/modify_turns] {CLEAR_VARIABLE totalTurns} [/event] [event] # Set the troll enemy and return income to normal when you reach your keep name=moveto [filter] id=Mal Keshar x,y=30,25 [/filter] [unit] # Troll leader type=Troll Hero side=2 id=Grnknrr x,y=10,6 canrecruit=yes [/unit] [modify_side] side=2 income=0 [/modify_side] {MODIFY_UNIT side=2 upkeep full} [capture_village] side=2 x=1-13 y=1-10 [/capture_village] [modify_side] side=1 income=0 [/modify_side] [/event] [event] name=turn refresh first_time_only=no [if] [variable] name=side_number equals=5 [/variable] [variable] name=wose_awakened not_equals=yes [/variable] [then] {MODIFY_UNIT id=Dumdumbadoom moves 0} [/then] [/if] [/event] [event] # Fun with the wose name=moveto [filter] side=1 [filter_adjacent] id=Dumdumbadoom [/filter_adjacent] [/filter] [terrain] x,y=7,21 terrain=Gg [/terrain] [message] speaker=Dumdumbadoom message=_ "Who has awoken me from my slumber? Undead? I shall not suffer the existence of such foul creatures." [/message] {VARIABLE wose_awakened yes} [/event] [event] # Have a nice trip, see you in the fall. . . name=moveto first_time_only=no [filter] x,y=24,13 [not] type=Vampire Bat,Blood Bat,Dread Bat,Ghost,Wraith,Spectre,Shadow,Nightgaunt [/not] [/filter] [message] x,y=24,13 message=_ "AAAaaaggghhhh!! ..." # wmllint: no spellcheck [/message] {MOVE_UNIT (x,y=24,13) 25 13} [kill] x,y=25,13 animate=no fire_event=yes [/kill] [/event] # Defeat Conditions {MAL_DEATH} # Victory Condition [event] # Kill the troll leader name=die [filter] side=2 canrecruit=yes [/filter] [endlevel] result=victory bonus=yes {NEW_GOLD_CARRYOVER 40} [/endlevel] [/event] [event] name=victory {VARIABLE timesForever 1} [/event] [/scenario]