DiD S9: updated scenario gameplay and dialogue

This commit is contained in:
nemaara 2019-01-16 02:20:27 -05:00
parent b6a636b524
commit 0f78003aff

View file

@ -4,15 +4,15 @@
id=09_A_Small_Favor3
name= _ "A Small Favor — Part 3"
map_data="{campaigns/Descent_Into_Darkness/maps/09_A_Small_Favor3.map}"
{TURNS 30 27 25}
{TURNS 21 18 15}
next_scenario=10_Alone_at_Last
victory_when_enemies_defeated=no
{UNDERGROUND}
{SCENARIO_MUSIC underground.ogg}
{EXTRA_SCENARIO_MUSIC loyalists.ogg}
{EXTRA_SCENARIO_MUSIC suspense.ogg}
{SCENARIO_MUSIC the_city_falls.ogg}
{EXTRA_SCENARIO_MUSIC the_king_is_dead.ogg}
{EXTRA_SCENARIO_MUSIC vengeful.ogg}
# No storyl; this occurs immediately after the previous scenario
@ -44,18 +44,9 @@
no_leader=yes
hidden=yes
# Mages in rooms
{NAMED_NOTRAIT_UNIT 2 Mage 16 15 () ( _ "Guardian")} {GUARDIAN}
{NAMED_NOTRAIT_UNIT 2 Mage 18 15 () ( _ "Guardian")} {GUARDIAN}
{NAMED_NOTRAIT_UNIT 2 Mage 22 13 () ( _ "Guardian")} {GUARDIAN}
{NAMED_NOTRAIT_UNIT 2 Mage 24 12 () ( _ "Guardian")} {GUARDIAN}
{NAMED_NOTRAIT_UNIT 2 Mage 27 10 () ( _ "Guardian")} {GUARDIAN}
{NAMED_NOTRAIT_UNIT 2 Mage 29 10 () ( _ "Guardian")} {GUARDIAN}
# Mages in great hall
{NAMED_NOTRAIT_UNIT 2 (Silver Mage) 13 8 ("") ( _ "Guardian")} {GUARDIAN}
{NAMED_NOTRAIT_UNIT 2 (Red Mage) 14 9 ("") ( _ "Guardian")} {GUARDIAN}
{NAMED_NOTRAIT_UNIT 2 (White Mage) 16 8 ("") ( _ "Guardian")} {GUARDIAN}
# Book guards
{NAMED_NOTRAIT_UNIT 2 (Silver Mage) 11 9 ("") ( _ "Guardian")} {GUARDIAN}
{NAMED_NOTRAIT_UNIT 2 (Silver Mage) 13 7 ("") ( _ "Guardian")} {GUARDIAN}
[ai]
village_value=0
@ -69,6 +60,7 @@
team_name=intruders
user_team_name= _ "Intruders"
no_leader=yes
color=black
hidden=yes
shroud=yes
share_maps=no
@ -94,12 +86,106 @@
[/goal]
[/ai]
[/side]
# City guard
[side]
side=4
controller=ai
team_name=defenders
user_team_name= _ "Defenders"
no_leader=yes
hidden=yes
color=green
[ai]
village_value=0
aggression=0.8
[/ai]
[/side]
# This macro places the doors and adds the door-opening event
{MANOR_DOORS 1,3}
#TODO: Create some scenery (fire, torches, ...)
{PLACE_IMAGE items/book5.png 11 7}
# book
{PLACE_IMAGE items/book5.png 12 8}
# scenery
{PLACE_IMAGE items/dragonstatue.png 23 16}
{PLACE_IMAGE items/dragonstatue.png 24 15}
{PLACE_IMAGE items/dragonstatue.png 31 12}
{PLACE_IMAGE scenery/monolith2.png 34 11}
{PLACE_IMAGE scenery/monolith3.png 29 14}
{PLACE_IMAGE scenery/monolith1.png 29 16}
{PLACE_IMAGE scenery/monolith3.png 26 15}
{PLACE_IMAGE scenery/monolith4.png 26 18}
{PLACE_IMAGE scenery/castle-ruins2.png 32 15}
{PLACE_IMAGE scenery/castle-ruins3.png 32 14}
{PLACE_IMAGE scenery/castle-ruins3.png 25 15}
{PLACE_IMAGE scenery/castle-ruins2.png 24 18}
{PLACE_IMAGE scenery/castle-ruins.png 33 4}
{PLACE_IMAGE scenery/castle-ruins3.png 33 3}
{PLACE_IMAGE scenery/castle-ruins2.png 31 5}
{PLACE_IMAGE scenery/castle-ruins2.png 9 11}
{PLACE_IMAGE scenery/castle-ruins.png 8 7}
{PLACE_IMAGE items/ornate2.png 23 11}
{PLACE_IMAGE items/ornate2.png 25 12}
{PLACE_IMAGE items/ornate1.png 20 13}
{PLACE_IMAGE items/coffin-open.png 22 12}
{PLACE_IMAGE items/cloak-green.png 11 17}
{PLACE_IMAGE items/armor.png 14 16}
{PLACE_IMAGE items/armor.png 16 16}
{PLACE_IMAGE items/bow.png 30 9}
{PLACE_IMAGE items/bow-crystal.png 29 9}
{PLACE_IMAGE items/spear-fancy.png 27 10}
{PLACE_IMAGE items/axe.png 27 9}
{PLACE_IMAGE items/potion-blue.png 18 3}
{PLACE_IMAGE items/potion-blue.png 17 6}
{PLACE_IMAGE items/potion-grey.png 17 3}
{PLACE_IMAGE items/potion-grey.png 19 4}
{PLACE_IMAGE items/potion-grey.png 21 5}
{PLACE_IMAGE items/potion-green.png 19 5}
{PLACE_IMAGE items/potion-green.png 22 3}
{PLACE_IMAGE items/potion-red.png 19 3}
{PLACE_IMAGE items/potion-red.png 14 3}
{PLACE_IMAGE items/potion-yellow.png 17 4}
{PLACE_IMAGE items/altar-evil.png 18 4}
{PLACE_IMAGE items/altar.png 14 8}
{PLACE_IMAGE items/holy-water.png 14 9}
{PLACE_IMAGE items/holy-water.png 14 7}
{PLACE_IMAGE items/holy-water.png 15 8}
{PLACE_IMAGE items/holy-water.png 10 8}
{PLACE_IMAGE items/stone-tablet.png 7 11}
{PLACE_IMAGE items/stone-tablet.png 15 10}
{PLACE_IMAGE items/dragonstatue.png 19 7}
{PLACE_IMAGE scenery/monolith2.png 16 11}
{PLACE_IMAGE scenery/monolith2.png 21 7}
{PLACE_IMAGE scenery/monolith3.png 19 9}
{PLACE_IMAGE scenery/monolith1.png 12 4}
{PLACE_IMAGE scenery/monolith1.png 9 12}
{PLACE_IMAGE scenery/monolith3.png 10 7}
{PLACE_IMAGE scenery/monolith4.png 10 11}
{PLACE_IMAGE scenery/monolith4.png 4 10}
{PLACE_IMAGE items/barrel.png 29 17}
{PLACE_IMAGE items/barrel.png 28 17}
{PLACE_IMAGE items/barrel.png 28 13}
{PLACE_IMAGE items/barrel.png 22 19}
{PLACE_IMAGE items/barrel.png 21 19}
{PLACE_IMAGE items/barrel.png 29 8}
{PLACE_IMAGE items/barrel.png 30 7}
{PLACE_IMAGE items/barrel.png 14 17}
{PLACE_IMAGE items/barrel.png 34 4}
{PLACE_IMAGE items/barrel.png 23 3}
{PLACE_IMAGE items/box.png 29 13}
{PLACE_IMAGE items/box.png 22 18}
{PLACE_IMAGE items/box.png 13 18}
{PLACE_IMAGE items/box.png 13 17}
{PLACE_IMAGE items/box.png 28 4}
{PLACE_IMAGE items/box.png 27 5}
{PLACE_IMAGE items/box.png 26 5}
[event]
name=prestart
@ -127,28 +213,156 @@
[/gold_carryover]
[/objectives]
# Scatter manor guards
{SCATTER_UNITS 6 Pikeman,Duelist,Pikeman,Spearman,Pikeman,Swordsman 3 (
terrain=Rr
[not]
x,y=25,18
radius=4
[/not]
[not]
x,y=31,15
radius=2
[/not]
[not]
x,y=11,7
[/not]
[not]
[filter][/filter]
[/not]
) (
side=2
name= _ "Guard"
random_traits=yes
)}
[set_variables]
name=guardtypetable
[value]
type=Shock Trooper
[/value]
#ifndef HARD
[value]
type=Spearman
[/value]
#endif
[value]
type=Duelist
[/value]
[value]
type=Pikeman
[/value]
[value]
type=Swordsman
[/value]
#ifndef EASY
[value]
type=Swordsman
[/value]
[value]
type=Pikeman
[/value]
[value]
type=Duelist
[/value]
#endif
[value]
type=Heavy Infantryman
[/value]
[value]
type=Spearman
[/value]
[value]
type=Fencer
[/value]
[/set_variables]
[set_variables]
name=magetypetable
[value]
type=Mage
[/value]
[value]
type=White Mage
[/value]
[value]
type=Mage
[/value]
[value]
type=Red Mage
[/value]
[value]
type=Red Mage
[/value]
#ifdef EASY
[value]
type=Mage
[/value]
#endif
#ifndef EASY
[value]
type=White Mage
[/value]
[value]
type=Red Mage
[/value]
#endif
#ifdef HARD
[value]
type=Red Mage
[/value]
[value]
type=White Mage
[/value]
#endif
[value]
type=Mage
[/value]
[value]
type=Mage
[/value]
[value]
type=Mage
[/value]
[/set_variables]
[random_placement]
num_items={ON_DIFFICULTY 5 6 7}
variable=loc
min_distance=3
[filter_location]
terrain=Urb,Urb^E*,Ur,Ur^E*
[not]
x=27-35
y=1-7
[/not]
[not]
x=20-35
y=16-20
[/not]
[not]
x=25-29
y=13-20
[/not]
[not]
x=30-35
y=11-20
[/not]
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
{NAMED_NOTRAIT_UNIT 2 "$guardtypetable[$($loc.n % $guardtypetable.length)].type" $loc.x $loc.y () (_ "Guard")} {GUARDIAN}
[/command]
[/random_placement]
[random_placement]
num_items={ON_DIFFICULTY 6 6 7}
variable=loc
min_distance=3
[filter_location]
terrain=Urb,Urb^E*,Ur,Ur^E*,Irs,Irs^*
[not]
x=27-35
y=1-7
[/not]
[not]
x=20-35
y=16-20
[/not]
[not]
x=25-29
y=13-20
[/not]
[not]
x=30-35
y=11-20
[/not]
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
{NAMED_NOTRAIT_UNIT 2 "$magetypetable[$($loc.n % $magetypetable.length)].type" $loc.x $loc.y () (_ "Mage")} {GUARDIAN}
[/command]
[/random_placement]
# Who has the book?
{VARIABLE hasBook none}
@ -227,11 +441,6 @@
{CLEAR_VARIABLE units_inside_manor}
# Create DV's units
{GENERIC_UNIT 3 (Revenant) 26 16}
[+unit]
animate=yes
[/unit]
{GENERIC_UNIT 3 (Spectre) 26 16}
[+unit]
animate=yes
@ -252,14 +461,9 @@
animate=yes
[/unit]
{GENERIC_UNIT 3 (Nightgaunt) 26 16}
[+unit]
animate=yes
[/unit]
[message]
speaker=Malin Keshar
message= _ "I feel the book is very close, somewhere to the northwest."
speaker=Darken Volk
message= _ "The book is very close, somewhere to the northwest."
[/message]
[unlock_view][/unlock_view]
@ -285,11 +489,11 @@
[if]
[variable]
name=turn_number
greater_than=3
greater_than=4
[/variable]
[then]
{VARIABLE dest.x 11}
{VARIABLE dest.y 7}
{VARIABLE dest.x 12}
{VARIABLE dest.y 8}
[/then]
[else]
{VARIABLE dest.x 16}
@ -338,13 +542,282 @@
{CLEAR_VARIABLE stored_Darken,dest,darken_goto,index}
[/event]
# pursuer spawns
#define SPAWN_GUARD
[random_placement]
num_items=1
variable=loc
min_distance=1
[filter_location]
x=33-34,35
y=17-18,18-19
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
[set_variable]
name=ind
rand=1..$guardtypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 4 "$guardtypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
#enddef
#define SPAWN_MAGE
[random_placement]
num_items=1
variable=loc
min_distance=1
[filter_location]
x=33-34,35
y=17-18,18-19
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
[set_variable]
name=ind
rand=1..$magetypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 4 "$magetypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
#enddef
[event]
name=new turn
first_time_only=no
[if]
[variable]
name=turn_number
greater_than_equal_to={ON_DIFFICULTY 14 12 10}
[/variable]
[then]
{RANDOM 0..2}
[switch]
variable=random
[case]
value=0
{SPAWN_GUARD}
{SPAWN_GUARD}
[/case]
[case]
value=1
{SPAWN_MAGE}
#ifdef HARD
{SPAWN_MAGE}
#else
{SPAWN_GUARD}
#endif
[/case]
[case]
value=2
{SPAWN_GUARD}
{SPAWN_MAGE}
[/case]
[/switch]
[/then]
[elseif]
[variable]
name=turn_number
greater_than_equal_to={ON_DIFFICULTY 8 7 6}
[/variable]
[then]
[set_variable]
name=turn_mod
value=$("($turn_number - {ON_DIFFICULTY 8 7 6}) % 2")
[/set_variable]
[if]
[variable]
name=turn_mod
numerical_equals=0
[/variable]
[then]
{RANDOM 0..3}
[switch]
variable=random
[case]
value=0
{SPAWN_GUARD}
#ifdef HARD
{SPAWN_GUARD}
#endif
[/case]
[case]
value=1
{SPAWN_GUARD}
{SPAWN_GUARD}
[/case]
[case]
value=2
{SPAWN_MAGE}
[/case]
[case]
value=3
{SPAWN_GUARD}
{SPAWN_MAGE}
[/case]
[/switch]
[/then]
[/if]
{CLEAR_VARIABLE turn_mod}
[/then]
[/elseif]
[elseif]
[variable]
name=turn_number
greater_than_equal_to=2
[/variable]
[then]
[set_variable]
name=turn_mod
value=$("($turn_number - 2) % 3")
[/set_variable]
[if]
[variable]
name=turn_mod
numerical_equals=0
[/variable]
[then]
{RANDOM 0..3}
[switch]
variable=random
[case]
value=0
{SPAWN_GUARD}
{SPAWN_GUARD}
[/case]
[case]
value=1
{SPAWN_GUARD}
#ifdef HARD
{SPAWN_GUARD}
#endif
[/case]
[case]
value=2
{SPAWN_MAGE}
[/case]
[case]
value=3
{SPAWN_GUARD}
{SPAWN_MAGE}
[/case]
[/switch]
[/then]
[/if]
{CLEAR_VARIABLE turn_mod}
[/then]
[/elseif]
[/if]
[fire_event]
name=city guard dialogue
[/fire_event]
[fire_event]
name=city guard dialogue2
[/fire_event]
[/event]
[event]
name=city guard dialogue
[filter_condition]
[variable]
name=turn_number
equals=2
[/variable]
[/filter_condition]
[message]
speaker=Darken Volk
message= _ "The guards continue to pursue us."
[/message]
[/event]
[event]
name=city guard dialogue2
[filter_condition]
[variable]
name=turn_number
equals={ON_DIFFICULTY 14 12 10}
[/variable]
[/filter_condition]
[message]
speaker=Malin Keshar
message= _ "The guards are catching up to us!"
[/message]
[/event]
# Flavor text
[event]
name=moveto
[filter]
x,y=15,10
side=1
[/filter]
[message]
speaker=narrator
message= _ "<i>Beware that, when fighting monsters, you yourself do not become a monster... for when you gaze long into the abyss, the abyss gazes also into you.</i>"
image=wesnoth-icon.png
[/message]
[allow_undo][/allow_undo]
[/event]
[event]
name=moveto
[filter]
x,y=7,11
side=1
[/filter]
[message]
speaker=narrator
message= _ "<i>Death is the twilight that follows the light of day.
Life fades with the setting sun into darkness.
Existence churns and the soul is reborn into endless night.</i>"
image=wesnoth-icon.png
[/message]
[allow_undo][/allow_undo]
[/event]
[event]
name=moveto
[filter]
x,y=18,4
side=1
[/filter]
[message]
speaker=Malin Keshar
message= _ "There are quite a few failed potions around here."
[/message]
[allow_undo][/allow_undo]
[/event]
[event]
name=moveto
[filter]
x,y=22,12
side=1
[/filter]
[message]
speaker=Malin Keshar
message= _ "This coffin is empty."
[/message]
[allow_undo][/allow_undo]
[/event]
[event]
# a side 1 unit finds the book
name=moveto
[filter]
side=1
canrecruit=no
x,y=11,7
x,y=12,8
[/filter]
[filter_condition]
[variable]
@ -354,13 +827,13 @@
[/filter_condition]
[message]
x,y=11,7
message=_ "I have found the book, master! It is here."
x,y=12,8
message=_ "I have found the book, master!"
[/message]
[if]
[have_unit]
x,y=11,7
x,y=12,8
race=undead
[/have_unit]
[then]
@ -385,7 +858,7 @@
name=moveto
[filter]
id=Malin Keshar
x,y=11,7
x,y=12,8
[/filter]
[filter_condition]
[variable]
@ -395,19 +868,24 @@
[/filter_condition]
[remove_item]
x,y=11,7
x,y=12,8
[/remove_item]
{VARIABLE hasBook Malin}
[message]
speaker=Malin Keshar
message= _ "Weve got the book, but now how do we get out of here?"
message= _ "Such an old, worn book. It does not seem like much, but at least weve got it now."
[/message]
[message]
speaker=Malin Keshar
message= _ "... So... how do we get out of here?"
[/message]
[message]
speaker=Darken Volk
message= _ "Theres a small tunnel in the cellar to the northeast. It will lead us far enough out of the city that we can escape pursuit."
message= _ "There is a small tunnel in the cellar to the northeast. It will lead us far enough out of the city that we can escape pursuit."
[/message]
[objectives]
@ -437,12 +915,12 @@
name=moveto
[filter]
id=Malin Keshar
x,y=30-31,1
x,y=29-32,1-3
[/filter]
[message]
speaker=Malin Keshar
message= _ "Phew! Lets get out of here."
message= _ "Lets get out of here."
[/message]
[endlevel]
@ -459,7 +937,7 @@
name=moveto
[filter]
id=Darken Volk
x,y=11,7
x,y=12,8
[/filter]
[filter_condition]
[variable]
@ -469,7 +947,7 @@
[/filter_condition]
[remove_item]
x,y=11,7
x,y=12,8
[/remove_item]
{VARIABLE hasBook Darken}
@ -508,6 +986,10 @@
id=Darken Volk
[/scroll_to_unit]
[delay]
time=500
[/delay]
[message]
speaker=Malin Keshar
message= _ "Wait, you arent leaving me behind, are you?"
@ -523,13 +1005,13 @@
[message]
speaker=Darken Volk
message= _ "You have served me well, my apprentice."
message= _ "You have served me well, boy."
[/message]
[message]
speaker=narrator
image=wesnoth-icon.png
message= _ "As he heads into the tunnel Darken Volk collapses its entrance, leaving Malin to be captured and executed by the city guards."
message= _ "As he heads into the tunnel, Darken Volk collapses the entrance, leaving Malin to be captured and executed by the city guards."
[/message]
[endlevel]
@ -541,12 +1023,12 @@
name=moveto
[filter]
id=Malin Keshar
x,y=30-31,1
x,y=29-32,1-3
[/filter]
[message]
speaker=Malin Keshar
message= _ "Phew! Lets get out of here."
message= _ "Lets get out of here."
[/message]
[endlevel]
@ -558,14 +1040,48 @@
[/event]
[/event]
[event]
name=time over
[remove_shroud]
side=1
x=29-33
y=0-4
[/remove_shroud]
[unit]
type=Royal Guard
side=4
x,y=32,2
id=RGuard
canrecruit=yes
animate=yes
facing=sw
[/unit]
{GENERIC_UNIT 4 (Pikeman) 30 2} {FACING sw}
{GENERIC_UNIT 4 (Longbowman) 30 1} {FACING sw}
{GENERIC_UNIT 4 (Swordsman) 31 2} {FACING sw}
{GENERIC_UNIT 4 (Mage of Light) 31 1} {FACING sw}
[message]
speaker=RGuard
message= _ "Surround those necromancers! They cannot escape us now!"
[/message]
[endlevel]
result=defeat
[/endlevel]
[/event]
[event]
name=victory
{CLEAR_VARIABLE guardtypetable}
{CLEAR_VARIABLE magetypetable}
{CLEAR_VARIABLE random}
{MODIFY_UNIT (id=Darken Volk) side 1}
[/event]
{HERODEATH_MALIN}
{HERODEATH_VOLK_B}
{TIME_OVER_DEFEAT_MANOR}
[/scenario]