Long March rebalancing:

- added a (small) encampment

- less ambushers

- reduced ambush range for activation of nearby units

- undead and elves now fight each other
This commit is contained in:
Jan Rietema 2008-03-27 17:07:40 +00:00
parent 300a4b37d1
commit befe76a519
2 changed files with 296 additions and 247 deletions

View file

@ -47,8 +47,8 @@ Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Rd
Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Hh , Hh , Gg , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Rp , Hh , Mm , Hh , Gs^Fp , Gs^Fp , Ss , Ww , Ww , Ww , Ss , Gg , Gg , Gs^Fp , Gs^Fp , Re , Gg , Gs^Fp , Gg , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp
Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gg , Gs^Fp , Mm , Hh , Hh , Gg , Hh , Hh , Gs^Fp , Rp , Rp , Hh , Hh , Hh , Gs^Fp , Ss , Gs^Fp , Ww , Ss , Ss , Gs^Fp , Gs^Fp , Re , Re , Gg , Gg , Gs^Fp , Gg , Gg , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp
Gs^Fp , Gs^Fp , Gg , Gs^Fp , Hh , Mm , Mm , Mm , Mm , Hh , Hh , Gs^Fp , Gs^Fp , Gs^Fp , Gg , Gs^Fp , Gs^Fp , Hh , Ss , Ss , Gg , Ww , Ss , Gg , Gs^Fp , Gs^Fp , Re , Gg , Gg , Gs^Fp , Gg , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp
Gs^Fp , Gs^Fp , Hh , Gg , Hh , Mm , Mm , Mm , Mm , Hh , Gs^Fp , Gs^Fp , Gs^Fp , Rp , Gs^Fp , Rp , Rp , Gs^Fp , Gs^Fp , Ss , Ss , Ss , Gs^Fp , Gs^Fp , Gg , Gs^Fp , Re , Gg , 1 Gg , Gg , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp
Hh , Hh , Hh , Hh , Hh , Mm , Mm , Mm , Mm , Gs^Fp , Gg , Gs^Fp , Rd , Gs^Fp , Ss , Gs^Fp , Gs^Fp , Rd , Rp , Gs^Fp , Rd , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gg , Gs^Fp , Re , Re , Gs^Fp , Gg , Gg , Gg , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp
Gs^Fp , Gs^Fp , Hh , Gg , Hh , Mm , Mm , Mm , Mm , Hh , Gs^Fp , Gs^Fp , Gs^Fp , Rp , Gs^Fp , Rp , Rp , Gs^Fp , Gs^Fp , Ss , Ss , Ss , Gs^Fp , Gs^Fp , Gg , Gs^Fp , Re , Gg , 1 Ke , Ce , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp
Hh , Hh , Hh , Hh , Hh , Mm , Mm , Mm , Mm , Gs^Fp , Gg , Gs^Fp , Rd , Gs^Fp , Ss , Gs^Fp , Gs^Fp , Rd , Rp , Gs^Fp , Rd , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gg , Gs^Fp , Re , Re , Ce , Gs^Fp , Gg , Gg , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp
Hh , Hh , Hh , Hh , Mm , Mm , Hh , Mm , Hh , Hh , Hh , Gs^Fp , Gs^Fp , Gs^Fp , Ss , Ss , Ss , Gs^Fp , Gs^Fp , Rp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Re , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp
Hh , Hh , Hh , Hh , Hh , Mm , Hh , Hh , Gs^Fp , Gs^Fp , Hh , Gs^Fp , Gs^Fp , Gs^Fp , Ss , Ss , Ss^Vhs , Ss , Ss , Gs^Fp , Gs^Fp , Gs^Fp , Ss , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Re , Re , Gg , Gs^Fp , Gg , Gs^Fp , Gs^Fp , Gs^Fp
Hh , Hh , Hh , Hh , Hh , Hh , Hh , Gg , Hh , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gg , Gg , Gs^Fp , Ss , Ss , Ss , Ss , Ss , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Re , Gs^Fp , Gg , Gg , Gs^Fp , Gs^Fp , Gs^Fp

View file

@ -4,9 +4,15 @@
name= _ "The Long March"
next_scenario=7b_Pebbles_In_The_Flood
{SCENARIO_MUSIC nunc_dimittis.ogg}
{EXTRA_SCENARIO_MUSIC knolls.ogg}
[music]
name=revelation.ogg
ms_before=500
[/music]
[music]
name=northerners.ogg
ms_before=500
append=yes
[/music]
map_data="{campaigns/The_South_Guard/maps/6b_The_Long_March.map}"
@ -18,6 +24,8 @@
{DAWN}
{MORNING}
{AFTERNOON}
{VICTORY_AND_DEFEAT_MUSIC}
victory_when_enemies_defeated=no
turns=40
@ -27,8 +35,8 @@
[side]
side=1
type=Horseman Commander
id=Deoran
name= _ "Deoran"
description=Deoran
user_description= _ "Deoran"
unrenamable=yes
team_name=South_Guard
controller=human
@ -46,38 +54,24 @@
recruit=Bowman, Spearman, Cavalryman, Thug, Footpad, Poacher
[/side]
# This is a side for the elvish ambushers, who are still in hiding and will
# remain idle until discovered
# We're not using an extra side for the ambusher elves
# - they will be on the undead side by default (so the undead
# don't trigger ambushes), then change to the active elven side
# and are being stoned to prevent any action
#
# note: this means that elves can trigger ambushes, which should
# be treated as if they "ran for reinforcements" - thus these elves
# switch to their side just as if the player had triggered the ambush
# (this is a better solution than undead triggering ambushes, and
# should occur less often)
# The Undead Hordes (Part II)
[side]
side=2
no_leader=yes
# problem: they have to be on the same team
# as the other elves, otherwise they get
# slaughtered by the active ambusher
#
# but they also have to be on the undead team
# otherwise they get slaughtered by those
#
# but that means that the undead and elves are
# all on the same side, which is a shame
team_name=elves
controller=ai
[ai]
ai_algorithm=idle_ai
[/ai]
[/side]
# The Undead Hordes (Part II)
[side]
side=3
no_leader=yes
team_name=elves
team_name=undead
controller=ai
{GOLD 10 20 30}
@ -94,13 +88,12 @@
[/ai]
recruit=Vampire Bat
[/side]
# When discovering an ambusher, the ambusher will be moved to this side so
# it may move and attack normally
[side]
side=4
colour=blue
side=3
no_leader=yes
team_name=elves
controller=ai
@ -115,39 +108,41 @@
[/ai]
[/side]
#prestart
[event]
name=prestart
{PLACE_IMAGE (items/gohere.png) 16 3}
{SG_GUARD (Naga Warrior) (Fssth) (_"Fssth") 4 9 14}
{SG_GUARD (Naga Warrior) (Fssth) (_"Fssth") 3 9 14}
#ifdef NORMAL
{SG_GUARD (Naga Fighter) (Wizzi) (_"Wizzi") 4 10 14}
{SG_GUARD (Naga Fighter) (Wizzi) (_"Wizzi") 3 10 14}
#endif
#ifdef HARD
{SG_GUARD (Naga Warrior) (Wizzi) (_"Wizzi") 4 10 14}
{SG_GUARD (Naga Warrior) (Wizzi) (_"Wizzi") 3 10 14}
#endif
[recall]
id=Sir Gerrick
description=Sir Gerrick
[/recall]
[recall]
id=Minister Hylas
description=Minister Hylas
[/recall]
[recall]
id=Jarek
description=Jarek
[/recall]
[recall]
id=Urza Afalas
description=Urza Afalas
[/recall]
# retrieve two units from the recall list
# but with certain criteria
# first: a swordsman
[store_unit]
variable=swordsman
[filter]
@ -170,38 +165,39 @@
[/wml_filter]
[/filter]
[/store_unit]
# pick the "best" unit
# that is, the one with the highest damage + xp/4
# and a little random spice
{VARIABLE best_score 0}
{VARIABLE best_unit -1}
{FOREACH swordsman i}
{VARIABLE dam $swordsman[$i].attack[0].damage}
{VARIABLE_OP dam multiply $swordsman[$i].attack[0].number}
{VARIABLE xp $swordsman[$i].experience}
{VARIABLE_OP xp divide 4}
{VARIABLE_OP dam add xp}
{RANDOM 0..6}
{VARIABLE_OP dam add $random}
[if]
[variable]
name=dam
greater_than=$best_score
[/variable]
[then]
{VARIABLE best_score $dam}
{VARIABLE best_unit $i}
[/then]
[/if]
{VARIABLE dam $swordsman[$i].attack[0].damage}
{VARIABLE_OP dam multiply $swordsman[$i].attack[0].number}
{VARIABLE xp $swordsman[$i].experience}
{VARIABLE_OP xp divide 4}
{VARIABLE_OP dam add xp}
{RANDOM 0..6}
{VARIABLE_OP dam add $random}
[if]
[variable]
name=dam
greater_than=$best_score
[/variable]
[then]
{VARIABLE best_score $dam}
{VARIABLE best_unit $i}
[/then]
[/if]
{NEXT i}
[recall]
id=$swordsman[$best_unit].id
description=$swordsman[$best_unit].description
[/recall]
{CLEAR_VARIABLE swordsman}
# now an archer
[store_unit]
variable=archer
[filter]
@ -225,36 +221,37 @@
[/wml_filter]
[/filter]
[/store_unit]
# pick the "best" unit
# that is, the one with the highest damage + xp/4
# and a little random spice
{VARIABLE best_score 0}
{VARIABLE best_unit -1}
{FOREACH archer i}
{VARIABLE dam $archer[$i].attack[1].damage}
{VARIABLE_OP dam multiply $archer[$i].attack[1].number}
{VARIABLE xp $archer[$i].experience}
{VARIABLE_OP xp divide 4}
{VARIABLE_OP dam add xp}
{RANDOM 0..6}
{VARIABLE_OP dam add $random}
[if]
[variable]
name=dam
greater_than=$best_score
[/variable]
[then]
{VARIABLE best_score $dam}
{VARIABLE best_unit $i}
[/then]
[/if]
{VARIABLE dam $archer[$i].attack[1].damage}
{VARIABLE_OP dam multiply $archer[$i].attack[1].number}
{VARIABLE xp $archer[$i].experience}
{VARIABLE_OP xp divide 4}
{VARIABLE_OP dam add xp}
{RANDOM 0..6}
{VARIABLE_OP dam add $random}
[if]
[variable]
name=dam
greater_than=$best_score
[/variable]
[then]
{VARIABLE best_score $dam}
{VARIABLE best_unit $i}
[/then]
[/if]
{NEXT i}
[recall]
id=$archer[$best_unit].id
description=$archer[$best_unit].description
[/recall]
{CLEAR_VARIABLE archer}
# Note: the code for the ambushers is mostly identical to that of
# Crossroads in HttT.
@ -272,54 +269,69 @@
{VARIABLE random_ambusher_type_table[6].type "Elvish Ranger"}
{VARIABLE random_ambusher_type_table[7].type "Elvish Hero"}
{VARIABLE random_ambusher_type_table[8].type "Elvish Fighter"}
#ifdef NORMAL
{VARIABLE random_ambusher_type_table[9].type "Elvish Archer"}
{VARIABLE random_ambusher_type_table[10].type "Elvish Fighter"}
#endif
#ifdef EASY
{VARIABLE random_ambusher_type_table[9].type "Elvish Archer"}
{VARIABLE random_ambusher_type_table[10].type "Elvish Fighter"}
{VARIABLE random_ambusher_type_table[11].type "Elvish Archer"}
{VARIABLE random_ambusher_type_table[12].type "Elvish Fighter"}
#endif
{VARIABLE random_ambusher_type_i 0}
# place an elvish ambusher
# who hides in the forest until he changes side
# place an elvish ambusher
# who hides in the forest until he changes side
#define ELVISH_AMBUSHER X Y SIDE TYPE
[unit]
x={X}
y={Y}
type={TYPE}
side={SIDE}
random_traits=yes
upkeep=loyal
[status]
hides=yes
[/status]
[/unit]
[object]
silent=yes
[filter]
x,y={X},{Y}
[/filter]
[effect]
apply_to=new_ability
[abilities]
[hides]
id=elvish_ambush
affect_self=yes
[filter_self]
# only effective as long as the unit
# is on the ambusher side
[unit]
x={X}
y={Y}
type={TYPE}
side={SIDE}
random_traits=yes
generate_description=yes
upkeep=loyal
[filter_location]
terrain=Gs^Fp
[/filter_location]
[/filter_self]
[/hides]
[/abilities]
[/effect]
[/object]
[status]
hides=yes
stone=yes
[/status]
[/unit]
[object]
silent=yes
[filter]
x,y={X},{Y}
[/filter]
[effect]
apply_to=new_ability
[abilities]
[hides]
id=elvish_ambush
affect_self=yes
[filter_self]
# only effective as long as the unit
# is on the ambusher side
side={SIDE}
[filter_location]
terrain=Gs^Fp
[/filter_location]
[/filter_self]
[/hides]
[/abilities]
[/effect]
[/object]
#enddef
#define ELVISH_AMBUSH_AREA SIDE X_SPAN Y_SPAN NUMBER
@ -341,13 +353,13 @@
[filter]
[/filter]
[/not]
# not too close to the starting area
[not]
x=21-36
y=43-50
[/not]
# not too close to the fixed ambush
[not]
x=12-14
@ -355,7 +367,7 @@
[/not]
[filter_adjacent_location]
terrain=Rp,Rd,Re
terrain=Rp,Rd,Re
[/filter_adjacent_location]
[not]
@ -414,40 +426,38 @@
[/while]
#enddef
# undead spawn types depend on difficulty
# number of elven ambushers, too
# and place different types of Elvish Ambushers
# in the fixed central valley ambush
#ifdef EASY
{VARIABLE undead_spawn_types "Ghost,Wraith,Shadow,Skeleton Archer,Revenant,Deathblade,Blood Bat,Ghoul,Ghost,Wraith,Shadow"}
{VARIABLE ambushing_elves 32}
{ELVISH_AMBUSHER 12 34 2 "Elvish Archer"}
{VARIABLE ambushing_elves 26}
{ELVISH_AMBUSHER 13 33 2 "Elvish Fighter"}
{ELVISH_AMBUSHER 14 30 2 "Elvish Archer"}
#endif
#ifdef NORMAL
{VARIABLE undead_spawn_types "Wraith,Shadow,Bone Shooter,Revenant,Deathblade,Blood Bat,Ghoul,Wraith,Shadow"}
{VARIABLE ambushing_elves 40}
{ELVISH_AMBUSHER 12 34 2 "Elvish Archer"}
{VARIABLE ambushing_elves 30}
{ELVISH_AMBUSHER 13 33 2 "Elvish Hero"}
{ELVISH_AMBUSHER 14 30 2 "Elvish Ranger"}
#endif
#ifdef HARD
{VARIABLE undead_spawn_types "Wraith,Shadow,Bone Shooter,Revenant,Deathblade,Necrophage,Wraith,Shadow,Shadow"}
{VARIABLE ambushing_elves 48}
{ELVISH_AMBUSHER 12 34 2 "Elvish Ranger"}
{VARIABLE ambushing_elves 34}
{ELVISH_AMBUSHER 13 33 2 "Elvish Hero"}
{ELVISH_AMBUSHER 14 30 2 "Elvish Ranger"}
#endif
{ELVISH_AMBUSHER 12 33 2 "Elvish Sorceress"}
{ELVISH_AMBUSHER 14 33 2 "Elvish Captain"}
{ELVISH_AMBUSHER 14 33 2 "Elvish Sorceress"}
{ELVISH_AMBUSHER 12 33 2 "Elvish Captain"}
{TIME_ACTIONS (
{ELVISH_AMBUSH_AREA 2 1-29 23-50 $ambushing_elves}
{ELVISH_AMBUSH_AREA 2 1-29 23-50 $ambushing_elves}
)}
{CLEAR_VARIABLE possible_ambush_locations}
@ -455,56 +465,58 @@
{CLEAR_VARIABLE random_ambusher_type_i}
{CLEAR_VARIABLE ambusher}
{CLEAR_VARIABLE ambushing_elves}
# set ambush dialog variables
{VARIABLE ambush 0}
{VARIABLE ambush_x 99}
{VARIABLE ambush_y 99}
{VARIABLE ambush_distance 80}
# store the secret paths and cover them with forest
# Rp -> Re covered by forest
[store_locations]
variable=secret_path
terrain=Rp
[/store_locations]
{FOREACH secret_path i}
{MODIFY_TERRAIN Gs^Fp $secret_path[$i].x $secret_path[$i].y}
{MODIFY_TERRAIN Gs^Fp $secret_path[$i].x $secret_path[$i].y}
{NEXT i}
# Rd -> Gg covered by forest
[store_locations]
variable=secret_track
terrain=Rd
[/store_locations]
{FOREACH secret_track i}
{MODIFY_TERRAIN Gs^Fp $secret_track[$i].x $secret_track[$i].y}
{MODIFY_TERRAIN Gs^Fp $secret_track[$i].x $secret_track[$i].y}
{NEXT i}
# urza dialogue variables
# coordinates of last dialogue
{VARIABLE urza_x 24}
{VARIABLE urza_y 46}
{VARIABLE urza_dialogue_num 0}
# the various messages
{VARIABLE urza_dialogue[0].msg ( _ "We have to go even further west. There are elves living to the north, and I don't think they'll receive us too kindly!")}
{VARIABLE urza_dialogue[1].msg ( _ "Come on! Hurry!")}
{VARIABLE urza_dialogue[2].msg ( _ "Keep moving!")}
{VARIABLE urza_dialogue[3].msg ( _ "We're almost there!")}
{VARIABLE urza_dialogue[4].msg ( _ "Just a little further!")}
[/event]
[event]
name=moveto
first_time_only=no
# reveal all hidden paths within 3 hexes
# of where Urza moves
[filter]
id=Urza Afalas
description=Urza Afalas
[filter_location]
terrain=Gg,Hh,Re,Gs^Fp
# do the radius checking here, too
@ -530,7 +542,7 @@
[/and]
[/store_locations]
{FOREACH uncover i}
{MODIFY_TERRAIN Re $uncover[$i].x $uncover[$i].y}
{MODIFY_TERRAIN Re $uncover[$i].x $uncover[$i].y}
{NEXT i}
[store_locations]
variable=uncover
@ -542,20 +554,20 @@
[/and]
[/store_locations]
{FOREACH uncover i}
{MODIFY_TERRAIN Gg $uncover[$i].x $uncover[$i].y}
{MODIFY_TERRAIN Gg $uncover[$i].x $uncover[$i].y}
{NEXT i}
# check if a new dialogue part is needed
# do that if the distance between this event and the
# do that if the distance between this event and the
# last dialogue is more than 8 hexes
{VARIABLE x_delta $urza_x}
{VARIABLE_OP x_delta add -$x1}
{VARIABLE_OP x_delta multiply $x_delta}
{VARIABLE y_delta $urza_y}
{VARIABLE_OP y_delta add -$y1}
{VARIABLE_OP y_delta multiply $y_delta}
[if]
[variable]
name=x_delta
@ -585,110 +597,145 @@
[/if]
[/then]
[/if]
# we'll allow undo even if terrain was uncovered
# the dialogue will break undoing, anyway
[allow_undo]
[/allow_undo]
[/event]
# elven ambush event
[event]
name=moveto
first_time_only=no
[filter]
side=1
side=1,3
[filter_adjacent]
side=2
race=elf
[/filter_adjacent]
[/filter]
# swap all elves within 5 hexes to the active side
# swap all elves within 4 hexes to the active side
# they effectively join the ambush
# and remove stoning
[unstone]
[filter]
side=2
[filter_location]
terrain=Gs^Fp
[and]
x=$x1
y=$y1
radius=4
[/and]
[/filter_location]
[/filter]
[/unstone]
{MODIFY_UNIT (
side=2
[filter_location]
terrain=Gs^Fp
[and]
x,y=$x1,$y1
radius=5
radius=4
[/and]
[/filter_location]
) side 4}
) side 3}
[redraw][/redraw]
# do a dialog if the last ambush was far enough away
# we just want to prevent triggering all the dialogue in
# the first part of the journey!
# (...not that there is that much dialogue here...)
{VARIABLE x_delta $ambush_x}
{VARIABLE_OP x_delta add -$x1}
{VARIABLE_OP x_delta multiply $x_delta}
{VARIABLE y_delta $ambush_y}
{VARIABLE_OP y_delta add -$y1}
{VARIABLE_OP y_delta multiply $y_delta}
# if the last ambush dialogue was 9 hexes or more
# distant, do another one
# store the triggering unit to prevent dialogue when
# a non-player side triggers this
[store_unit]
variable=triggerer
kill=no
[filter]
x,y=$x1,$y1
[/filter]
[/store_unit]
[if]
[variable]
name=x_delta
greater_than=$ambush_distance
[/variable]
[or]
[variable]
name=y_delta
greater_than=$ambush_distance
[/variable]
[/or]
[have_unit]
x,y=$x1,$y1
side=1
[/have_unit]
[then]
{VARIABLE_OP ambush add 1}
{VARIABLE ambush_x $x1}
{VARIABLE ambush_y $y1}
# if the last ambush dialogue was 9 hexes or more
# distant, do another one
[if]
[variable]
name=ambush
equals=1
name=x_delta
greater_than=$ambush_distance
[/variable]
[or]
[variable]
name=y_delta
greater_than=$ambush_distance
[/variable]
[/or]
[then]
[message]
race=elf
side=4
message= _"You humans have kidnapped Mebrin the Sage. You will pay for your crimes."
[/message]
[message]
speaker=Deoran
message= _"Your sage Mebrin is the criminal. He practices necromancy and has turned himself into Lich. By the laws of Wesnoth, the punishment for his crimes is death!"
[/message]
[message]
race=elf
side=4
message= _"It is you who is a criminal and who is in a company of criminals. We will not let you kill Mebrin!"
[/message]
[message]
speaker=Deoran
message= _"I was a fool to waste my words on you. Prepare to meet your beloved Mebrin - or, should I say Mal M'brin in *hell*, elves!"
[/message]
[/then]
[else]
{VARIABLE_OP ambush add 1}
{VARIABLE ambush_x $x1}
{VARIABLE ambush_y $y1}
[if]
[variable]
name=ambush
greater_than=1
equals=1
[/variable]
[then]
[message]
race=elf
side=4
message= _ "Get them!"
side=3
message= _"You humans have kidnaped Mebrin the Sage. You will pay for your crimes."
[/message]
[message]
description=Deoran
message= _"Your sage Mebrin is the criminal. He practices necromancy and has turned himself into Lich. By the laws of Wesnoth, the punnishment for his crimes is death!"
[/message]
[message]
race=elf
side=3
message= _"It is you who is a criminal and who is in a company of criminals. We will not let you kill Mebrin!"
[/message]
[message]
description=Deoran
message= _"I was a fool to waste my words on you. Prepare to meet your beloved Mebrin or should I say Mal M'brin in hell, elves !"
[/message]
{VARIABLE_OP ambush_distance add 40}
[/then]
[else]
[if]
[variable]
name=ambush
greater_than=1
[/variable]
[then]
[message]
race=elf
side=3
message= _ "Get them !"
[/message]
{VARIABLE_OP ambush_distance add 40}
[/then]
[/if]
[/else]
[/if]
[/else]
[/then]
[/if]
[/then]
[/if]
@ -720,10 +767,10 @@
message= _ "Do we have any choice? Our food is running out, and it will be winter soon..."
[/message]
{MOVE_UNIT (id=Urza Afalas) 24 46}
{MOVE_UNIT (description=Urza Afalas) 24 46}
# reveal the first bit of path
{MODIFY_TERRAIN Gg 23 47}
# note: the following is NOT supposed to be supplied as a RANGE!
# change the individual coordinates 22,47 and 21,48 !
@ -735,12 +782,12 @@
[/remove_shroud]
[redraw]
[/redraw]
[message]
speaker=Urza Afalas
message= _ "This way! The only ford is a bit west of here, and the path to the north will lead you into trouble!"
[/message]
[message]
speaker=Sir Gerrick
message= _ "I think we should head north. The road leads north, and the ford is north. Why does he want us to head west?"
@ -782,7 +829,7 @@
[event]
name=die
[filter]
id=Urza Afalas
description=Urza Afalas
[/filter]
[message]
speaker=unit
@ -794,6 +841,7 @@
[/endlevel]
[/event]
# re-spawn some undead after turn 2
# up to a maximum number depending on the turn
# place them slightly east of the mountain range
@ -806,14 +854,14 @@
{VARIABLE undead_spawns $turn_number}
{VARIABLE_OP undead_spawns add -2}
# we'll subtract the number of undead that already exist
[store_unit]
[filter]
race=undead
[/filter]
variable=undead
[/store_unit]
[/store_unit]
[if]
[variable]
@ -829,19 +877,19 @@
{VARIABLE undead_spawns $turn_number}
[/else]
[/if]
{VARIABLE_OP undead_spawns add -$undead.length}
{REPEAT $undead_spawns (
{VARIABLE_OP undead_spawn_y random "19..34"}
{VARIABLE_OP undead_spawn_y random "19..34"}
{VARIABLE_OP undead_spawn_type random $undead_spawn_types}
{VARIABLE_OP undead_spawn_type random $undead_spawn_types}
[unit]
side=3
type=$undead_spawn_type
x,y=19,$undead_spawn_y
[/unit]
[unit]
side=2
type=$undead_spawn_type
x,y=19,$undead_spawn_y
[/unit]
)}
[/event]
[/event]
@ -850,10 +898,10 @@
name=moveto
[filter]
x,y=1-18,1-28
id=Urza Afalas
description=Urza Afalas
[/filter]
{MOVE_UNIT (id=Urza Afalas) 9 25}
{MOVE_UNIT (description=Urza Afalas) 9 25}
[message]
speaker=Urza Afalas
message= _ "Hurry! There are bandits in these woods!"
@ -872,36 +920,36 @@
name=moveto
[filter]
x,y=7-11,1-27
id=Deoran
description=Deoran
[/filter]
{MOVE_UNIT (id=Urza Afalas) 10 18}
{MOVE_UNIT (description=Urza Afalas) 10 18}
[message]
speaker=Urza Afalas
message= _ "The river is just ahead!"
[/message]
#ifdef HARD
{GENERIC_UNIT 4 Bandit 5 28}
{GENERIC_UNIT 3 Bandit 5 28}
#else
{GENERIC_UNIT 4 Thug 5 28}
{GENERIC_UNIT 3 Thug 5 28}
#endif
#ifdef EASY
{GENERIC_UNIT 4 Thief 6 28}
{GENERIC_UNIT 3 Thief 6 28}
#else
{GENERIC_UNIT 4 Rogue 6 28}
{GENERIC_UNIT 3 Rogue 6 28}
#endif
#ifdef EASY
{GENERIC_UNIT 4 Footpad 5 32}
{GENERIC_UNIT 3 Footpad 5 32}
#else
{GENERIC_UNIT 4 Outlaw 5 32}
{GENERIC_UNIT 3 Outlaw 5 32}
#endif
#ifdef HARD
{GENERIC_UNIT 4 Trapper 5 31}
{GENERIC_UNIT 3 Trapper 5 31}
#else
{GENERIC_UNIT 4 Poacher 5 31}
{GENERIC_UNIT 3 Poacher 5 31}
#endif
[message]
type=Trapper
@ -912,7 +960,7 @@
message= _ "The elves payed us well to kill you."
[/message]
[message]
speaker=Urza Afalas
description=Urza Afalas
message= _ "You bastards!"
[/message]
[message]
@ -924,7 +972,7 @@
message= _ "You would have done the same to us if you were in our place!"
[/message]
[message]
speaker=Urza Afalas
description=Urza Afalas
message= _ "I probably would have..."
[/message]
[/event]
@ -933,7 +981,7 @@
name=moveto
[filter]
x,y=5-14,1-19
id=Deoran
description=Deoran
[/filter]
[message]
@ -951,9 +999,9 @@
x,y=12-15,31-33
[/filter]
{SG_GUARD (Elvish Fighter) (Urien) (_"Urien") 4 12 34}
{SG_GUARD (Elvish Archer) (Jesa) (_"Jesa") 4 15 31}
{SG_GUARD (Elvish Archer) (Plinth) (_"Plinth") 4 15 34}
{SG_GUARD (Elvish Fighter) (Urien) (_"Urien") 3 12 34}
{SG_GUARD (Elvish Archer) (Jesa) (_"Jesa") 3 15 31}
{SG_GUARD (Elvish Archer) (Plinth) (_"Plinth") 3 15 34}
[message]
speaker=Plinth
@ -974,7 +1022,7 @@
[event]
name=moveto
[filter]
id=Deoran
description=Deoran
x,y=16,3
[/filter]
[message]
@ -995,7 +1043,7 @@
message= _ "But there was a dark cloud looming behind Deoran and his men..."
image=wesnoth-icon.png
[/message]
{CLEAR_VARIABLE secret_path}
{CLEAR_VARIABLE secret_track}
{CLEAR_VARIABLE urza_dialogue}
@ -1012,5 +1060,6 @@
bonus=yes
result=victory
[/endlevel]
[/event]
[/scenario]