DiD S8: updated gameplay and dialogue

This commit is contained in:
nemaara 2019-01-14 02:36:17 -05:00
parent a8a0a40d5e
commit 9b9b1baf68

View file

@ -4,14 +4,19 @@
id=08_A_Small_Favor2
name= _ "A Small Favor — Part 2"
map_data="{campaigns/Descent_Into_Darkness/maps/08_A_Small_Favor2.map}"
{TURNS 30 27 25}
{TURNS 25 22 19}
next_scenario=09_A_Small_Favor3
victory_when_enemies_defeated=no
{UNDERGROUND}
[time]
id=indoors
name= _ "Indoors"
image=misc/time-schedules/schedule-indoors.png
lawful_bonus=-10
[/time]
{SCENARIO_MUSIC loyalists.ogg}
{EXTRA_SCENARIO_MUSIC the_king_is_dead.ogg}
{SCENARIO_MUSIC casualties_of_war.ogg}
{EXTRA_SCENARIO_MUSIC battle.ogg}
{EXTRA_SCENARIO_MUSIC siege_of_laurelmor.ogg}
# No story; this occurs immediately after the previous scenario
@ -44,9 +49,21 @@
no_leader=yes
hidden=yes
# A guard
{NAMED_NOTRAIT_UNIT 2 (Halberdier) 10 4 () ( _ "Guard")} {GUARDIAN}
[ai]
village_value=0
aggression=0.8
[/ai]
[/side]
# City guard
[side]
side=3
controller=ai
team_name=defenders
user_team_name= _ "Defenders"
no_leader=yes
hidden=yes
color=green
[ai]
village_value=0
aggression=0.8
@ -56,7 +73,44 @@
# This macro places the doors and adds the door-opening event
{MANOR_DOORS 1}
#TODO: Create some scenery (fire, torches, ...)
# Scenery
{PLACE_IMAGE items/ankh-necklace.png 3 15}
{PLACE_IMAGE items/ball-blue.png 2 10}
{PLACE_IMAGE items/ball-magenta.png 25 2}
{PLACE_IMAGE items/ball-green.png 8 2}
{PLACE_IMAGE items/stone-tablet.png 6 16}
{PLACE_IMAGE items/stone-tablet.png 15 13}
{PLACE_IMAGE items/ankh-necklace.png 3 15}
{PLACE_IMAGE items/ornate2.png 17 1}
{PLACE_IMAGE items/potion-blue.png 26 4}
{PLACE_IMAGE items/potion-grey.png 27 5}
{PLACE_IMAGE items/potion-green.png 27 6}
{PLACE_IMAGE items/potion-red.png 25 6}
{PLACE_IMAGE items/potion-yellow.png 26 6}
{PLACE_IMAGE items/altar-evil.png 26 5}
{PLACE_IMAGE items/barrel.png 24 10}
{PLACE_IMAGE items/barrel.png 25 10}
{PLACE_IMAGE items/barrel.png 22 9}
{PLACE_IMAGE items/box.png 25 9}
{PLACE_IMAGE items/box.png 22 11}
{PLACE_IMAGE items/box.png 21 12}
{PLACE_IMAGE items/box.png 9 7}
{PLACE_IMAGE items/chest-open.png 8 7}
{PLACE_IMAGE items/chest-plain-open.png 9 9}
{PLACE_IMAGE items/barrel.png 8 9}
{PLACE_IMAGE items/altar.png 15 2}
{PLACE_IMAGE items/holy-water.png 17 1}
{PLACE_IMAGE items/holy-water.png 18 1}
{PLACE_IMAGE items/ring-white.png 13 3}
{PLACE_IMAGE items/ring-red.png 24 1}
{PLACE_IMAGE items/dragonstatue.png 11 12}
{PLACE_IMAGE items/dragonstatue.png 10 12}
{PLACE_IMAGE items/dragonstatue.png 21 3}
{PLACE_IMAGE scenery/monolith2.png 14 12}
{PLACE_IMAGE scenery/monolith3.png 13 15}
{PLACE_IMAGE scenery/monolith1.png 17 14}
{PLACE_IMAGE scenery/monolith1.png 17 14}
[event]
name=prestart
@ -65,7 +119,7 @@
side=1
[objective]
condition=win
description= _ "Find the mage Lord Karres"
description= _ "Find mage Lord Karres"
[/objective]
[objective]
condition=lose
@ -91,26 +145,26 @@
variable=random
[case]
value=0
{VARIABLE karres_x 10}
{VARIABLE karres_y 18}
[/case]
[case]
value=1
{VARIABLE karres_x 3}
{VARIABLE karres_x 1}
{VARIABLE karres_y 11}
[/case]
[case]
value=1
{VARIABLE karres_x 8}
{VARIABLE karres_y 1}
[/case]
[case]
value=2
{VARIABLE karres_x 14}
{VARIABLE karres_x 13}
{VARIABLE karres_y 3}
[/case]
[case]
value=3
{VARIABLE karres_x 28}
{VARIABLE karres_y 3}
{VARIABLE karres_x 24}
{VARIABLE karres_y 1}
[/case]
[/switch]
@ -138,6 +192,9 @@
[value]
type=Heavy Infantryman
[/value]
[value]
type=Shock Trooper
[/value]
[value]
type=Spearman
[/value]
@ -147,24 +204,45 @@
[value]
type=Fencer
[/value]
[value]
type=Fencer
[/value]
[value]
type=Duelist
[/value]
[value]
type=Pikeman
[/value]
[value]
type=Swordsman
[/value]
#ifndef EASY
[value]
type=Swordsman
[/value]
[value]
type=Duelist
[/value]
#endif
#ifdef HARD
[value]
type=Swordsman
[/value]
[value]
type=Pikeman
[/value]
[value]
type=Duelist
[/value]
#endif
[/set_variables]
[random_placement]
num_items=8
num_items={ON_DIFFICULTY 5 6 7}
variable=loc
min_distance=4
min_distance=3
[filter_location]
terrain=Iwr
[not]
x,y=20,20
radius=6
[/not]
terrain=Iwr,Icn,Ior
[not]
x=1-5
y=1-5
@ -174,12 +252,16 @@
[/not]
[/filter_location]
[command]
{NAMED_NOTRAIT_UNIT 2 "$guardtypetable[$($loc.n % $guardtypetable.length)].type" $loc.x $loc.y () (_ "Guard")} {GUARDIAN}
[set_variable]
name=ind
rand=1..$guardtypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{NAMED_NOTRAIT_UNIT 2 "$guardtypetable[$ind].type" $loc.x $loc.y () (_ "Guard")} {GUARDIAN}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
{CLEAR_VARIABLE guardtypetable}
[set_variables]
name=magetypetable
[value]
@ -191,6 +273,12 @@
[value]
type=Mage
[/value]
[value]
type=Mage
[/value]
[value]
type=Mage
[/value]
[value]
type=White Mage
[/value]
@ -202,41 +290,96 @@
[/value]
#ifndef EASY
[value]
type=Silver Mage
type=White Mage
[/value]
[value]
type=Red Mage
[/value]
#endif
#ifdef HARD
[value]
type=White Mage
[/value]
[value]
type=Red Mage
[/value]
[value]
type=Red Mage
[/value]
#endif
[/set_variables]
[random_placement]
num_items={ON_DIFFICULTY 12 14 16}
num_items={ON_DIFFICULTY 6 7 8}
variable=loc
min_distance=2
[filter_location]
terrain=Iwr
[not]
x,y=20,20
radius=6
[/not]
terrain=Iwr,Icn,Ior
[not]
x=1-5
y=1-5
[/not]
[not]
[filter_adjacent_location]
terrain=!,Iwr
[/filter_adjacent_location]
[filter][/filter]
[/not]
[/filter_location]
[command]
{GENERIC_UNIT 2 "$magetypetable[$($loc.n % $magetypetable.length)].type" $loc.x $loc.y}
[set_variable]
name=ind
rand=1..$magetypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 2 "$magetypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
#ifdef EASY
[set_variable]
name=S7_turns
value=$(min(7,($S7_turns)))
[/set_variable]
[set_variable]
name=spawn1
value=$("7 + ($S7_turns)")
[/set_variable]
[set_variable]
name=spawn2
value=$("14 + ($S7_turns)")
[/set_variable]
#endif
#ifdef NORMAL
[set_variable]
name=S7_turns
value=$(min(6,($S7_turns)))
[/set_variable]
[set_variable]
name=spawn1
value=$("6 + ($S7_turns)")
[/set_variable]
[set_variable]
name=spawn2
value=$("12 + ($S7_turns)")
[/set_variable]
#endif
#ifdef HARD
[set_variable]
name=S7_turns
value=$(min(5,($S7_turns)))
[/set_variable]
[set_variable]
name=spawn1
value=$("5 + ($S7_turns)")
[/set_variable]
[set_variable]
name=spawn2
value=$("10 + ($S7_turns)")
[/set_variable]
#endif
{CLEAR_VARIABLE magetypetable}
[recall]
id=Darken Volk
x,y=20,17
x,y=18,15
[/recall]
# We want Volk facing another direction
@ -291,31 +434,473 @@
[message]
speaker=narrator
image=wesnoth-icon.png
message= _ "Malin and Darken Volk enter the mage lords manor, quickly closing the heavy gates behind them."
message= _ "Malin and Darken Volk enter the mage lords manor, closing the heavy gates behind them."
[/message]
[message]
speaker=Malin Keshar
message= _ "That gate wont hold back the soldiers for more than a few hours. Wed better hurry."
speaker=Darken Volk
message= _ "That gate will not hold back the soldiers for long. We must hurry."
[/message]
[/event]
[event]
name=die
name=sighted
[filter]
side=2
[/filter]
[filter_second]
side=1
[/filter_second]
[message]
speaker=unit
message= _ "Undead have entered the manor! Defend yourselves!"
[/message]
[/event]
# City guard spawns
[event]
name=new turn
first_time_only=yes
[filter_condition]
[variable]
name=turn_number
numerical_equals=$S7_turns
[/variable]
[/filter_condition]
[random_placement]
num_items=1
variable=loc
min_distance=1
[filter_location]
x=22,23,21-26
y=18,18,19-20
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
[set_variable]
name=ind
rand=1..$guardtypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 3 "$guardtypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
[fire_event]
name=city guard dialogue
[/fire_event]
[/event]
[event]
name=new turn
first_time_only=no
[filter_condition]
[variable]
name=turn_number
greater_than=$S7_turns
[/variable]
[/filter_condition]
{RANDOM 0..3}
[if]
[variable]
name=random
greater_than=2
[/variable]
[then]
[random_placement]
num_items=1
variable=loc
min_distance=1
[filter_location]
x=22,23,21-26
y=18,18,19-20
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
[set_variable]
name=ind
rand=1..$guardtypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 3 "$guardtypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
[random_placement]
num_items=1
variable=loc
min_distance=1
[filter_location]
x=22,23,21-26
y=18,18,19-20
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
[set_variable]
name=ind
rand=1..$magetypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 3 "$magetypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
[/then]
[/if]
[/event]
[event]
name=new turn
first_time_only=no
[filter_condition]
[variable]
name=turn_number
greater_than=$spawn1
[/variable]
[/filter_condition]
{RANDOM 0..2}
[if]
[variable]
name=random
greater_than=1
[/variable]
[then]
[random_placement]
num_items=1
variable=loc
min_distance=1
[filter_location]
x=22,23,21-26
y=18,18,19-20
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
[set_variable]
name=ind
rand=1..$guardtypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 3 "$guardtypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
[random_placement]
num_items=1
variable=loc
min_distance=1
[filter_location]
x=22,23,21-26
y=18,18,19-20
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
[set_variable]
name=ind
rand=1..$magetypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 3 "$magetypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
[fire_event]
name=city guard dialogue2
[/fire_event]
[/then]
[/if]
[/event]
[event]
name=new turn
first_time_only=no
[filter_condition]
[variable]
name=turn_number
greater_than=$spawn2
[/variable]
[/filter_condition]
{RANDOM 0..11}
[if]
[variable]
name=random
greater_than=6
[/variable]
[then]
[random_placement]
num_items=1
variable=loc
min_distance=1
[filter_location]
x=22,23,21-26
y=18,18,19-20
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
[set_variable]
name=ind
rand=1..$guardtypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 3 "$guardtypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
[random_placement]
num_items=1
variable=loc
min_distance=1
[filter_location]
x=22,23,21-26
y=18,18,19-20
[not]
[filter][/filter]
[/not]
[/filter_location]
[command]
[set_variable]
name=ind
rand=1..$magetypetable.length
[/set_variable]
{VARIABLE_OP ind sub 1}
{GENERIC_UNIT 3 "$magetypetable[$ind].type" $loc.x $loc.y}
{CLEAR_VARIABLE ind}
[/command]
[/random_placement]
[fire_event]
name=city guard dialogue2
[/fire_event]
[fire_event]
name=city guard dialogue3
[/fire_event]
[/then]
[/if]
[/event]
[event]
name=city guard dialogue
[message]
side=3
[filter_location]
x=22,23,21-26
y=18,18,19-20
[/filter_location]
message= _ "Hunt down the undead! Destroy them all!"
[/message]
[message]
speaker=Darken Volk
message= _ "The city guard has entered the manor. We will have to hold them off while we search."
[/message]
[/event]
[event]
name=city guard dialogue2
[message]
speaker=Darken Volk
message= _ "More guards are coming. We must hasten our search!"
[/message]
[/event]
[event]
name=city guard dialogue3
[message]
speaker=Malin Keshar
message= _ "It does not look like we have much time left!"
[/message]
[/event]
# Flavor text
[event]
name=moveto
[filter]
x,y=15,13
side=1
[/filter]
[message]
speaker=narrator
message= _ "The only thing we have to fear is fear itself."
image=wesnoth-icon.png
[/message]
[delay]
time=350
[/delay]
[sound]
name=wail-long.wav
[/sound]
[delay]
time=350
[/delay]
[message]
speaker=narrator
message= _ "<i>... nameless, unreasoning, unjustified terror...</i>"
image=attacks/wail.png
[/message]
[allow_undo][/allow_undo]
[/event]
[event]
name=moveto
[filter]
x,y=6,16
side=1
[/filter]
[message]
speaker=narrator
message= _ "There is nothing good or bad, but thinking makes it so."
image=wesnoth-icon.png
[/message]
[allow_undo][/allow_undo]
[/event]
[event]
name=moveto
[filter]
x,y=2,10
side=1
[/filter]
[message]
speaker=narrator
message= _ "<i>Mirrors of shallow blue, they stare,
Piercing, unblinking, a pitiless reflection,
Shattering our brittle, fancied reality.</i>"
image=wesnoth-icon.png
[/message]
[allow_undo][/allow_undo]
[/event]
[event]
name=moveto
[filter]
x,y=8,2
side=1
[/filter]
[message]
speaker=narrator
message= _ "<i>Emerald, verdant green gives way,
Touched by shadow, the dark dye of black,
A fetid stain of pestilence.</i>"
image=wesnoth-icon.png
[/message]
[allow_undo][/allow_undo]
[/event]
[event]
name=moveto
[filter]
x,y=25,2
side=1
[/filter]
[message]
speaker=narrator
message= _ "<i>Crimson pool, the essence of life,
Flesh and blood flow away to rot,
Leaving only bones to remain.</i>"
image=wesnoth-icon.png
[/message]
[allow_undo][/allow_undo]
[/event]
# Lord Karres
[event]
name=sighted
[filter]
id=Lord Karres
[/filter]
[filter_second]
side=1
[/filter_second]
[message]
speaker=Lord Karres
message= _ "Darken Volk! I should have known it was you! What are you doing here?"
[/message]
[message]
speaker=Darken Volk
message= _ "Taking back what is rightfully mine."
[/message]
[message]
speaker=Lord Karres
message= _ "As impudent as ever. What lies in that book is not meant for human eyes — yours or mine."
[/message]
[message]
speaker=Darken Volk
message= _ "I am not here to argue."
[/message]
[message]
speaker=Lord Karres
message= _ "Of course you are not. I assume your arrogance has only grown over the years."
[/message]
[message]
speaker=Darken Volk
message= _ "If you wish to continue lecturing me, by all means, do so. It will only make you easier to kill."
[/message]
[message]
speaker=Lord Karres
message= _ "I regret that it has come to this."
[/message]
[/event]
[event]
name=moveto
[filter]
x,y=26,5
side=1
[/filter]
[message]
speaker=Darken Volk
message= _ "Someone was... messing... with some potions here."
[/message]
[/event]
[event]
name=last breath
[filter]
id=Lord Karres
[/filter]
[message]
speaker=Lord Karres
message= _ "How... dare you..."
[/message]
[message]
speaker=Darken Volk
message= _ "Cease your prattle, you decrepit old man."
[/message]
[kill]
id=Lord Karres
animate=yes
fire_event=yes
[/kill]
{QUAKE rumble.ogg}
[terrain]
x,y=5,4
x=6,7
y=4,4
terrain=Iwr
[/terrain]
[redraw][/redraw]
[message]
speaker=Darken Volk
message= _ "I feel the breaking of an illusion spell. The book must be in the great hall, in the northwest corner of the manor. Let us move quickly now!"
message= _ "I feel the breaking of an illusion spell. The book is in the great hall, in the northwest corner of the manor. Let us move quickly!"
[/message]
[objectives]
@ -340,18 +925,19 @@
[event]
name=moveto
[filter]
x,y=1,1
x,y=1-3,1-3
id=Malin Keshar,Darken Volk
[/filter]
[message]
speaker=unit
message=_ "I think I found the passage to the great hall. Follow me quickly!"
message=_ "I found the passage to the great hall!"
[/message]
[endlevel]
result=victory
bonus=no
linger_mode=no
{NEW_GOLD_CARRYOVER 100}
carryover_report=no
[/endlevel]
@ -361,7 +947,14 @@
# should carry over to the next scenario.
[event]
name=victory
{SET_GOT_INSIDE_MANOR}
{CLEAR_VARIABLE guardtypetable}
{CLEAR_VARIABLE magetypetable}
{CLEAR_VARIABLE random}
{CLEAR_VARIABLE S7_turns}
{CLEAR_VARIABLE spawn1}
{CLEAR_VARIABLE spawn2}
[/event]
{HERODEATH_MALIN}