diff --git a/data/campaigns/The_South_Guard/scenarios/07a_Into_the_Depths.cfg b/data/campaigns/The_South_Guard/scenarios/07a_Into_the_Depths.cfg index e50292234e89..cae27393617f 100644 --- a/data/campaigns/The_South_Guard/scenarios/07a_Into_the_Depths.cfg +++ b/data/campaigns/The_South_Guard/scenarios/07a_Into_the_Depths.cfg @@ -17,7 +17,7 @@ {UNDERGROUND} victory_when_enemies_defeated=no - {TURNS 50 45 40} + {TURNS 50 47 44} {SG_INTO_THE_DEPTHS} {TSG_BIGMAP {JOURNEY_07A_NEW} } @@ -42,15 +42,17 @@ share_vision=all - {GOLD 125 100 80} - {INCOME 10 8 6} + {GOLD 175 150 125} + {INCOME 4 2 0} [/side] + {STARTING_VILLAGES 1 4} + # The Undead Hordes [side] side=2 - type=Lich + type=Ancient Lich id="Mal M'Brin" name= _ "Mal M’Brin" profile=portraits/mal-mbrin.png @@ -59,8 +61,8 @@ user_team_name=_"Undead" controller=ai - {GOLD 50 100 150} - {INCOME 0 0 2} + {GOLD 40 50 60} + {INCOME 9 12 15} canrecruit=yes [ai] @@ -77,28 +79,77 @@ village_value=0.1 [avoid] - x,y=2-14,16-26 + x,y=2-15,12-20 [/avoid] [/ai] #ifdef EASY - recruit=Skeleton,Ghost,Vampire Bat,Walking Corpse + recruit=Bone Shooter,Revenant,Vampire Bat #endif #ifdef NORMAL - recruit=Skeleton,Ghoul,Ghost,Vampire Bat,Walking Corpse + recruit=Bone Shooter,Revenant,Vampire Bat,Dark Adept #endif #ifdef HARD - recruit=Deathblade,Ghoul,Ghost,Wraith,Blood Bat,Walking Corpse,Dark Adept + recruit=Bone Shooter,Deathblade,Ghoul,Revenant,Blood Bat,Dark Adept #endif - {FLAG_VARIANT undead} - [/side] + # decrease Mebrin's moves so he doesn't run around too much + # also make him weaker + [modifications] + [object] + [effect] + apply_to=movement + increase=-2 + [/effect] + [/object] +#ifdef EASY + [object] + [effect] + apply_to=attack + range=melee + increase_damage=-3 + [/effect] + [effect] + apply_to=attack + range=ranged + increase_damage=-3 + [/effect] + [effect] + apply_to=hitpoints + increase_total=-20 + [/effect] + [/object] +#endif +#ifdef NORMAL + [object] + [effect] + apply_to=attack + increase_damage=-2 + [/effect] + [effect] + apply_to=hitpoints + increase_total=-15 + [/effect] + [/object] +#endif #ifdef HARD - {LIMIT_CONTEMPORANEOUS_RECRUITS 2 "Deathblade" 2} - {LIMIT_CONTEMPORANEOUS_RECRUITS 2 "Wraith" 2} -#else - {LIMIT_CONTEMPORANEOUS_RECRUITS 2 "Vampire Bat" 4} + [object] + [effect] + apply_to=attack + increase_damage=-1 + [/effect] + [effect] + apply_to=hitpoints + increase_total=-10 + [/effect] + [/object] #endif + [/modifications] + + {FLAG_VARIANT undead} + [/side] + + {STARTING_VILLAGES 2 13} [side] side=3 @@ -110,7 +161,8 @@ user_team_name=_"Undead" controller=ai - {GOLD 50 80 125} + {GOLD 30 40 50} + {INCOME 3 4 5} canrecruit=yes [ai] @@ -119,100 +171,76 @@ village_value=0.3 [avoid] - x,y=2-14,16-26 + x,y=2-15,12-20 [/avoid] [/ai] -#ifdef EASY recruit=Walking Corpse,Ghoul -#endif - -#ifdef NORMAL - recruit=Walking Corpse,Ghoul -#endif - -#ifdef HARD - recruit=Walking Corpse,Soulless,Ghoul,Necrophage -#endif {FLAG_VARIANT undead} [/side] - # Passive trolls + {STARTING_VILLAGES 3 9} [side] side=4 - type=Troll Hero - id=Grek - name= _ "Grek" + type=Lich + id=Mal Tera + name= _ "Mal Tera" - team_name=South_Guard - user_team_name=_"South Guard" + team_name=undead_hordes + user_team_name=_"Undead" controller=ai - {GOLD 60 30 10} + {GOLD 50 75 100} + {INCOME 6 9 12} canrecruit=yes - [ai] -#ifdef EASY - recruitment_pattern=fighter,fighter,mixed fighter -#else recruitment_pattern=fighter -#endif - aggression=0.1 - caution=0.9 + aggression=0.8 + village_value=0.2 + [avoid] - x,y=14-38,1-35 + x,y=2-15,12-20 [/avoid] [/ai] #ifdef EASY - recruit=Troll, Troll Rocklobber + recruit=Walking Corpse,Ghoul,Soulless #endif #ifdef NORMAL - recruit=Troll Whelp + recruit=Walking Corpse,Soulless,Ghoul #endif #ifdef HARD - recruit=Troll Whelp + recruit=Walking Corpse,Soulless,Ghoul,Necrophage #endif + {FLAG_VARIANT undead} [/side] - {STARTING_VILLAGES 4 8} + {STARTING_VILLAGES 4 6} - # Aggressive trolls; the trolls turn to this side and start being useful if - # the player pays them + # Trolls [side] side=5 - no_leader=yes - team_name=South_Guard - user_team_name=_"South Guard" + type=Troll Hero + id=Grek + name= _ "Grek" + + team_name=trolls controller=ai - color=purple + gold=0 + income=-20 hidden=yes - fog=yes - share_vision=all - - [ai] - recruitment_pattern=fighter,fighter,mixed fighter - aggression=0.9 - caution=0.5 - village_value=0.0 - [goal] - name=target - [criteria] - side=2 - [/criteria] - value=5 - [/goal] - [/ai] - - recruit=Troll Whelp,Troll,Troll Rocklobber + canrecruit=yes + recruit= [/side] + {STARTING_VILLAGES 5 8} + # Scenario Setup [event] @@ -221,39 +249,70 @@ [unit] side=2 type=Eyestalk - x,y=10,8 + x,y=17,10 id=Eye Guardian name=_ "Eye Guardian" - facing=sw + facing=nw [/unit] - [unit] - side=2 - type=Revenant - x,y=13,9 - facing=sw - ai_special=guardian - [/unit] + # undead guardians for side 4 + {LOYAL_UNDEAD_UNIT 4 Skeleton 31 21} {GUARDIAN} + {LOYAL_UNDEAD_UNIT 4 (Skeleton Archer) 32 21} {GUARDIAN} - # Guardians in M'Brin's keep -#ifndef EASY - [unit] - side=2 - type=Revenant - x,y=22,28 - facing=se - upkeep=loyal - ai_special=guardian - [/unit] +#ifdef EASY + {LOYAL_UNDEAD_UNIT 4 (Walking Corpse) 31 22} {GUARDIAN} + {LOYAL_UNDEAD_UNIT 4 (Walking Corpse) 31 23} {GUARDIAN} +#endif +#ifdef NORMAL + {LOYAL_UNDEAD_UNIT 4 (Soulless) 31 22} {GUARDIAN} + {LOYAL_UNDEAD_UNIT 4 (Walking Corpse) 31 23} {GUARDIAN} +#endif +#ifdef HARD + {LOYAL_UNDEAD_UNIT 4 (Soulless) 31 22} {GUARDIAN} + {LOYAL_UNDEAD_UNIT 4 (Soulless) 31 23} {GUARDIAN} +#endif - [unit] - side=2 - type=Revenant - x,y=23,30 - facing=se - upkeep=loyal - ai_special=guardian - [/unit] + # Mal M'brin's guards + + {LOYAL_UNDEAD_UNIT 2 (Revenant) 23 27} {GUARDIAN} + {LOYAL_UNDEAD_UNIT 2 (Bone Shooter) 22 25} {GUARDIAN} + {LOYAL_UNDEAD_UNIT 2 (Deathblade) 22 28} {GUARDIAN} + +#ifdef EASY + {LOYAL_UNDEAD_UNIT 2 (Revenant) 19 26} {GUARDIAN} + {LOYAL_UNDEAD_UNIT 2 (Revenant) 19 29} {GUARDIAN} + {NAMED_LOYAL_UNIT 2 (Dark Sorcerer) 20 27 (Mal Maul) (_"Mal Maul")} {GUARDIAN} +#endif +#ifdef NORMAL + {LOYAL_UNDEAD_UNIT 2 (Revenant) 19 26} {GUARDIAN} + {LOYAL_UNDEAD_UNIT 2 (Draug) 19 29} {GUARDIAN} + {NAMED_LOYAL_UNIT 2 (Dark Sorcerer) 20 27 (Mal Maul) (_"Mal Maul")} {GUARDIAN} +#endif +#ifdef HARD + {LOYAL_UNDEAD_UNIT 2 (Draug) 19 26} {GUARDIAN} + {LOYAL_UNDEAD_UNIT 2 (Draug) 19 29} {GUARDIAN} + {NAMED_LOYAL_UNIT 2 (Necromancer) 20 27 (Mal Maul) (_"Mal Maul")} {GUARDIAN} +#endif + + # trolls + +#ifdef EASY + {LOYAL_UNIT 5 (Troll) 5 17} {GUARDIAN} + {LOYAL_UNIT 5 (Troll Rocklobber) 12 16} {GUARDIAN} + {LOYAL_UNIT 5 (Troll Whelp) 3 15} {GUARDIAN} + {LOYAL_UNIT 5 (Troll) 5 19} {GUARDIAN} +#endif +#ifdef NORMAL + {LOYAL_UNIT 5 (Troll) 5 17} {GUARDIAN} + {LOYAL_UNIT 5 (Troll Rocklobber) 12 16} {GUARDIAN} + {LOYAL_UNIT 5 (Troll Whelp) 3 15} {GUARDIAN} + {LOYAL_UNIT 5 (Troll Whelp) 5 19} {GUARDIAN} +#endif +#ifdef HARD + {LOYAL_UNIT 5 (Troll Whelp) 5 17} {GUARDIAN} + {LOYAL_UNIT 5 (Troll Rocklobber) 12 16} {GUARDIAN} + {LOYAL_UNIT 5 (Troll Whelp) 3 15} {GUARDIAN} + {LOYAL_UNIT 5 (Troll Whelp) 5 19} {GUARDIAN} #endif [/event] @@ -275,6 +334,40 @@ id=Minister Hylas [/recall] + [if] + [variable] + name=stored_Sir_Gerrick.id + equals="Sir Gerrick" + [/variable] + [then] + {VARIABLE stored_Sir_Gerrick.x "recall"} + {VARIABLE stored_Sir_Gerrick.y "recall"} + + [unstore_unit] + variable=stored_Sir_Gerrick + [/unstore_unit] + + [foreach] + array=stored_Sir_Gerrick_army + [do] + {VARIABLE this_item.x "recall"} + {VARIABLE this_item.y "recall"} + + [unstore_unit] + variable=this_item + [/unstore_unit] + [/do] + [/foreach] + + {CLEAR_VARIABLE stored_Sir_Gerrick_army} + {CLEAR_VARIABLE stored_Sir_Gerrick} + [/then] + [/if] + + [recall] + id=Sir Gerrick + [/recall] + [message] speaker=Deoran message= _ "It is so dark down here! It feels like the light from our torches is doing hardly anything at all." @@ -309,17 +402,6 @@ description= _ "Find the source of the undead under the citadel" condition=win [/objective] - [objective] - [show_if] - [variable] - name=late_payment_for_troll_help - boolean_equals=yes - [/variable] - [/show_if] - {OPTIONAL_OBJECTIVE_CAPTION} - description= _ "Meet with the troll leader and offer $troll_help_cost| gold to receive their help" - condition=win - [/objective] [objective] description= _ "Death of Deoran" condition=lose @@ -368,337 +450,169 @@ name=sighted [filter] - side=4 + side=5 [/filter] [filter_second] side=1 [/filter_second] - [redraw][/redraw] + [remove_shroud] + [filter_side] + side=1 + [/filter_side] + x,y=8,17 + radius=4 + [/remove_shroud] + + [lift_fog] + [filter_side] + side=1 + [/filter_side] + x,y=8,17 + radius=4 + multiturn=yes # To allow resetting the fog at the end of this event + [/lift_fog] + + [redraw] + side=1 + clear_shroud=yes + [/redraw] # po: bad grammar/different manner of speech here for the trolls [message] speaker=Grek - message= _ "Who go there? I see... I sees some humans and elfsies! What are you doing in our caves?" + message= _ "Who go there? I see... I sees some humans and elfsies! What you doing in our caves?" [/message] - [message] speaker=Deoran - message= _ "We do not mean to trespass on your territory. We are hunting the undead and have no quarrel with you. Would you like to join us?" + message= _ "We do not mean to trespass on your territory. We are hunting the undead and have no quarrel with you." [/message] - [message] speaker=Grek - message= _ "Undead! Ha, them puny skeletons we smash all the time! You be friendly so we no attack you, but why we should help you?" + message= _ "Undead! Pesky skeletons invade our home, drive us into hiding! They too stupid to find us here, but we no leave here either." [/message] - -#ifdef EASY - {VARIABLE troll_help_cost 100} -#endif -#ifdef NORMAL - {VARIABLE troll_help_cost 125} -#endif -#ifdef HARD - {VARIABLE troll_help_cost 150} -#endif - - # The help from the trolls can be received either on first sighting of - # them or later; so here's what the trolls do to help you, moved into a - # separate event so that the WML doesn't need to be duplicated. - - [event] - name=troll help - - [gold] - side=1 - amount=-$troll_help_cost - [/gold] - - [remove_shroud] - side=1 - x,y=1-38,1-35 - [/remove_shroud] - - [store_gold] - side=4 - variable=side_4_gold - [/store_gold] - - [modify_side] - side=5 - gold=$side_4_gold - hidden=no - [/modify_side] - [modify_side] - side=4 - hidden=yes - [/modify_side] - - # Note: the order of storing the villages, flipping the - # units and recapturing the villages is important, because a - # side with no leader cannot own villages. - - [store_villages] - owner_side=4 - variable=side_4_villages - [/store_villages] - - {MODIFY_UNIT side=4 side 5} - - [foreach] - array=side_4_villages - [do] - [capture_village] - x,y=$this_item.x,$this_item.y - side=5 - [/capture_village] - [/do] - [/foreach] - - {CLEAR_VARIABLE side_4_gold,side_4_villages} - - [message] - speaker=Grek - message= _ "Gold is good. We trade gold for weapons and fire. We help you kill undead now." - [/message] - [message] - speaker=Deoran - message= _ "Excellent. Can you help guide us through these tunnels? We are not well suited to fighting in the caves." - [/message] - [message] - speaker=Grek - message= _ "We lead you to bad lich. We killed dwarves and take their thunder fire. Grek put by wall near sand. You use to attack lich." - [/message] - - [lift_fog] - [filter_side] - side=1 - [/filter_side] - x=16,16,17,17 - y=23,24,24,25 - radius=1 - [/lift_fog] - {HIGHLIGHT_IMAGE 17 24 items/bomb.png ()} - [message] - speaker=Grek - scroll=no - message= _ "Go look down passage, you see thunderball there? Only need one spark and BOOM! Back door into lich lair." - [/message] - - {VARIABLE bomb_ready yes} - {VARIABLE troll_allies yes} - {CLEAR_VARIABLE late_payment_for_troll_help} - [/event] - [message] speaker=Deoran - message= _ "What should we offer them for their help?" - [option] - label= _ "We will give you $troll_help_cost gold pieces if you help us defeat the undead." - [command] - [store_gold] - side=1 - variable=side_1_gold - [/store_gold] - - [if] - [variable] - name=side_1_gold - greater_than_equal_to=$troll_help_cost - [/variable] - - [then] - [fire_event] - name=troll help - [/fire_event] - [/then] - - [else] - [message] - speaker=Grek - message= _ "Haha, humans and elfsies poor, you no have much gold! If you want troll help, you come to me when you have gold." - [/message] - - {VARIABLE late_payment_for_troll_help yes} - - [show_objectives] - side=1 - [/show_objectives] - [/else] - [/if] - {CLEAR_VARIABLE side_1_gold} - [/command] - [/option] - - [option] - label= _ "We will offer you freedom and a place in our lands." - [command] - [message] - speaker=Grek - message= _ "Ha! Who want stupid human land!" - [/message] - [role] - role=disillusioned - side=1 - type="Mage of Light,White Mage," + - "Elvish Sylph," + - "Master Bowman,Halberdier,Royal Guard,Cavalier," + - "Elvish Enchantress,Elvish Shyde,Elvish Champion,Elvish Marshal,Elvish Avenger," + - "Longbowman,Javelineer,Pikeman,Swordsman,Dragoon," + - "Elvish Hero,Elvish Sorceress,Elvish Captain,Elvish Marksman,Elvish Druid," + - "Bowman,Spearman,Cavalryman," + - "Elvish Fighter,Elvish Shaman,Peasant," + - "Mounted General,Horseman Commander,Junior Commander" - [not] - id=Ethiliel - [/not] - search_recall_list=no - [/role] - - [message] - role=disillusioned - message= _ "Then you will not aid us in our quest to destroy the undead menace?" - [/message] - [message] - speaker=Grek - # wmllint: local spelling "Bah" - message= _ "We smash undead whenever we want! Puny skeleton break easy under troll fist. We no scare. If you want troll help, you come see me and give gold!" - [/message] - [message] - speaker=Ethiliel - message= _ "These creatures are much too simpleminded to be of any help to us. We should just proceed onward and be glad they are not attacking us as well." - [/message] - [message] - speaker=Deoran - message= _ "I think that trolls might not be as stupid as you believe they are. They may be of use if we can find the gold to pay them. But for now, we have to continue on alone." - [/message] - - {VARIABLE late_payment_for_troll_help yes} - - [show_objectives] - side=1 - [/show_objectives] - [/command] - [/option] + message= _ "It seems that we have a common enemy, then. Would you like to join forces to defeat the undead?" + [/message] + [message] + speaker=Grek + message= _ "Join? Join with humans and elfsies? Hmm. Okay. Humans and elfsies friends. We help you beat skeletons, but after they gone we take back our home and you leave. Okay?" + [/message] + [message] + speaker=Deoran + message= _ "Very well. Can you help guide us through these tunnels? We are not well suited to fighting in the caves." + [/message] + [message] + speaker=Grek + message= _ "It okay. Grek lead you to lich. Look there!" [/message] - [/event] - - [event] - name=moveto - first_time_only=no - [filter] + [remove_shroud] + [filter_side] + side=1 + [/filter_side] + x,y=28,9 + radius=2 + [/remove_shroud] + [redraw] side=1 - [filter_adjacent] - id=Grek - [/filter_adjacent] - [/filter] + clear_shroud=yes + [/redraw] - [filter_condition] - [variable] - name=troll_allies - boolean_not_equals=yes - [/variable] - [/filter_condition] + [scroll_to] + x,y=28,9 + [/scroll_to] + [delay] + time=1500 + [/delay] - [store_gold] + [remove_shroud] + [filter_side] + side=1 + [/filter_side] + x,y=27,22 + radius=2 + [/remove_shroud] + [redraw] side=1 - variable=side_1_gold - [/store_gold] + clear_shroud=yes + [/redraw] - [message] - speaker=Grek - message= _ "You can afford troll help now?" - [option] - [show_if] - [variable] - name=side_1_gold - greater_than_equal_to=$troll_help_cost - [/variable] - [/show_if] - - label= _ "Here’s $troll_help_cost for your help against the undead." - - [command] - [fire_event] - name=troll help - [/fire_event] - [/command] - [/option] - - [option] - label= _ "No, just looking around." - - [command] - [allow_undo][/allow_undo] - [/command] - [/option] - [/message] - {CLEAR_VARIABLE side_1_gold} - [/event] + [scroll_to] + x,y=27,22 + [/scroll_to] + [delay] + time=1500 + [/delay] - [event] - name=moveto - first_time_only=no + [remove_shroud] + [filter_side] + side=1 + [/filter_side] + x,y=18,27 + radius=3 + [/remove_shroud] - [filter] + [redraw] side=1 - x,y=17,24 - [/filter] - [filter_condition] - [variable] - name=bomb_ready - boolean_equals=yes - [/variable] - [/filter_condition] + clear_shroud=yes + [/redraw] - [message] - speaker=unit - message= _ "I’m lighting it!" - [/message] - [sound] - name=fuse.ogg - [/sound] + [scroll_to] + x,y=18,27 + [/scroll_to] [delay] - time=2000 + time=1500 [/delay] - [sound] - name=explosion.ogg - [/sound] - [remove_item] - x,y=17,24 - [/remove_item] - - [scroll] - x,y=10,10 - [/scroll] - [scroll] - x,y=-10,-10 - [/scroll] - [scroll] - x,y=10,10 - [/scroll] - [scroll] - x,y=-10,-10 - [/scroll] - {MODIFY_TERRAIN Re 18 23} - {MODIFY_TERRAIN Wwf 18 24} + [store_villages] + owner_side=5 + variable=side_5_villages + [/store_villages] - [redraw] - clear_shroud=yes + {MODIFY_UNIT side=5 side 5} + + [foreach] + array=side_5_villages + [do] + [capture_village] + x,y=$this_item.x,$this_item.y + side=1 + [/capture_village] + [/do] + [/foreach] + + {CLEAR_VARIABLE side_5_villages} + + [modify_unit] + [filter] + side=5 + [/filter] side=1 - [/redraw] + [/modify_unit] [message] - speaker=unit - message= _ "I’ve broken through!" + speaker=Deoran + message= _ "Excellent. Onwards we go!" [/message] - {CLEAR_VARIABLE bomb_ready} + [reset_fog] + [filter_side] + side=1 + [/filter_side] + x,y=8,17 + radius=4 + [/reset_fog] + + [redraw] + side=1 + clear_shroud=yes + [/redraw] [/event] + # Confrontation with Mal Brin [event] name=sighted @@ -707,7 +621,7 @@ [/filter] [filter_second] - side=1,5 + side=1 [/filter_second] [redraw][/redraw] @@ -823,8 +737,90 @@ speaker="Mal M'Brin" message= _ "You? Destroy me? Your flesh will provide a fine feast for my ghouls, and once they are through with you, you will serve me forever in undeath!" [/message] + + [gold] + side=2 + {QUANTITY amount 75 100 125} + [/gold] + [/event] + + # time over events + + [event] + name=turn 40 + + [sound] + name=magic-dark-big.ogg + [/sound] + + [message] + speaker=Minister Hylas + message= _ "I feel the touch of dark magic. This is quite a powerful spell—the very air feels thick and heavy." + [/message] + [message] + speaker=Ethiliel + message= _ "It is Mebrin's doing. I recognize the energy, though it has been twisted by the touch of the black arts. He used to use this spell to heal the mind and purge negative emotions from the body. I imagine it will have exactly the opposite effect now." + [/message] + [/event] + [event] + name=turn 44 + + [sound] + name=magic-dark-big.ogg + [/sound] + + [message] + speaker=Deoran + message= _ "I feel... faint..." + [/message] + [message] + speaker=Ethiliel + message= _ "We must hurry! Once Mebrin's spell takes full effect, none of us will be able to stop him." + [/message] + [/event] + [event] + name=turn 47 + + [sound] + name=magic-dark-big.ogg + [/sound] + + [message] + speaker=Sir Gerrick + message= _ "I feel so weary... I can hardly grasp my weapon anymore..." + [/message] + [/event] + [event] + name=time over + + [sound] + name=magic-dark-big.ogg + repeat=1 + [/sound] + + [message] + speaker="Mal M'Brin" + message= _ "Taste the breath of oblivion!" + [/message] + [message] + speaker=Ethiliel + message= _ "Mebrin has caught us in his spell! We are doomed..." + [/message] [/event] + [event] + name=last breath + [filter] + id="Grek" + [/filter] + + [message] + speaker="Grek" + message= _ "Ouch! Me hurt! Me feel cold! Me dying..." + [/message] + [/event] + + [event] name=last breath [filter] @@ -871,7 +867,10 @@ message= _ "Yes, just let me gather my thoughts, and I will lead you back to your homes." [/message] - {CLEAR_VARIABLE troll_allies,troll_help_cost} + [kill] + side=1 + race=troll + [/kill] [endlevel] result=victory