Merge pull request #3734 from DisherProject/wesnoth-UtBS
UtBS: code refactor
This commit is contained in:
commit
3ecc6a14e5
10 changed files with 1467 additions and 1845 deletions
|
@ -75,6 +75,24 @@
|
|||
[/criteria]
|
||||
[/goal]
|
||||
[/ai]
|
||||
# limit recruitment to one bandit and trapper
|
||||
[ai]
|
||||
[aspect]
|
||||
id=recruitment_instructions
|
||||
[facet]
|
||||
[value]
|
||||
[limit]
|
||||
type=Bandit
|
||||
max=1
|
||||
[/limit]
|
||||
[limit]
|
||||
type=Trapper
|
||||
max=1
|
||||
[/limit]
|
||||
[/value]
|
||||
[/facet]
|
||||
[/aspect]
|
||||
[/ai]
|
||||
{FLAG_VARIANT6 ragged}
|
||||
[/side]
|
||||
|
||||
|
@ -174,8 +192,6 @@
|
|||
[event]
|
||||
name=prestart
|
||||
|
||||
{VARIABLE bandits_mobilized 0}
|
||||
|
||||
# Set starting scenario objectives
|
||||
|
||||
[objectives]
|
||||
|
@ -314,29 +330,9 @@
|
|||
|
||||
# setup ghost difficulty
|
||||
{VARIABLE max_ghosts {ON_DIFFICULTY 6 7 8} }
|
||||
{VARIABLE ghosts_to_kill "$(ceil($($max_ghosts / 3.0)))"}
|
||||
[/event]
|
||||
|
||||
# Clears a side's units of their guardian status
|
||||
#define MOBILIZE_SIDE SIDE
|
||||
[store_unit]
|
||||
variable=enemy
|
||||
kill=yes
|
||||
[filter]
|
||||
side={SIDE}
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[foreach]
|
||||
array=enemy
|
||||
[do]
|
||||
{CLEAR_VARIABLE this_item.ai_special,this_item.status.guardian}
|
||||
[unstore_unit]
|
||||
variable=this_item
|
||||
[/unstore_unit]
|
||||
[/do]
|
||||
[/foreach]
|
||||
{CLEAR_VARIABLE enemy}
|
||||
#enddef
|
||||
|
||||
# Special Encounter events
|
||||
|
||||
# Encounter 1: Scorpions attack
|
||||
|
@ -805,49 +801,77 @@
|
|||
# These are related to the ogre ambush. A player unit being killed by an ogre,
|
||||
# or an ogre being killed by a player unit, changes the behavior of the bandits
|
||||
# whenever they are encountered.
|
||||
[event]
|
||||
name=mobilize_black_hand_bandits
|
||||
[filter_condition]
|
||||
[variable]
|
||||
name=bandits_mobilized
|
||||
boolean_equals=no
|
||||
[/variable]
|
||||
[have_unit]
|
||||
role="Black Lieutenant"
|
||||
[or]
|
||||
role="Black Hand Bandit"
|
||||
[/or]
|
||||
[/have_unit]
|
||||
[/filter_condition]
|
||||
|
||||
[store_unit]
|
||||
variable=bandits
|
||||
kill=yes
|
||||
[filter]
|
||||
role="Black Lieutenant"
|
||||
[or]
|
||||
role="Black Hand Bandit"
|
||||
[/or]
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[foreach]
|
||||
array=bandits
|
||||
[do]
|
||||
{CLEAR_VARIABLE this_item.ai_special,this_item.status.guardian}
|
||||
[unstore_unit]
|
||||
variable=this_item
|
||||
[/unstore_unit]
|
||||
[/do]
|
||||
[/foreach]
|
||||
{CLEAR_VARIABLE bandits}
|
||||
|
||||
{VARIABLE bandits_mobilized yes}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=die
|
||||
first_time_only=no
|
||||
[filter]
|
||||
side=1
|
||||
[/filter]
|
||||
[filter_second]
|
||||
side=3
|
||||
[not]
|
||||
type=Giant Scorpion
|
||||
[/not]
|
||||
race=ogre
|
||||
[/filter_second]
|
||||
|
||||
[filter_condition]
|
||||
[variable]
|
||||
name=bandits_mobilized
|
||||
less_than=1
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
{MOBILIZE_SIDE 2}
|
||||
{VARIABLE bandits_mobilized 1}
|
||||
[fire_event]
|
||||
name=mobilize_black_hand_bandits
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=die
|
||||
first_time_only=no
|
||||
[filter]
|
||||
side=3
|
||||
[not]
|
||||
type=Giant Scorpion
|
||||
[/not]
|
||||
race=ogre
|
||||
[/filter]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=ogres_killed
|
||||
equals=3
|
||||
[/variable]
|
||||
[variable]
|
||||
name=bandits_mobilized
|
||||
less_than=1
|
||||
[/variable]
|
||||
[then]
|
||||
{MOBILIZE_SIDE 2}
|
||||
{VARIABLE bandits_mobilized 1}
|
||||
[fire_event]
|
||||
name=mobilize_black_hand_bandits
|
||||
[/fire_event]
|
||||
[/then]
|
||||
[else]
|
||||
{VARIABLE_OP ogres_killed add 1}
|
||||
|
@ -907,82 +931,15 @@
|
|||
speaker=Kaleh
|
||||
message= _ "We need that water, and if we have to go through you to get it, so be it."
|
||||
[/message]
|
||||
{MOBILIZE_SIDE 2}
|
||||
|
||||
{UNCLEAR_FOG}
|
||||
|
||||
[fire_event]
|
||||
name=mobilize_black_hand_bandits
|
||||
[/fire_event]
|
||||
[/then]
|
||||
|
||||
[else]
|
||||
{VARIABLE black_patrol_dialogue 0}
|
||||
[event]
|
||||
name=sighted
|
||||
|
||||
[filter]
|
||||
side=1
|
||||
[/filter]
|
||||
|
||||
[filter_second]
|
||||
role=Black Lieutenant
|
||||
[/filter_second]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=black_patrol_dialogue
|
||||
equals=0
|
||||
[/variable]
|
||||
[then]
|
||||
[scroll_to_unit]
|
||||
role=Black Lieutenant
|
||||
[/scroll_to_unit]
|
||||
|
||||
{CLEAR_FOG 1 8 44 2}
|
||||
|
||||
[message]
|
||||
role=Black Lieutenant
|
||||
message= _ "We don’t know who you are, and we don’t much care. Tremble before the might of the Black Hand!"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "We need that water, and if we have to go through you to get it, so be it."
|
||||
[/message]
|
||||
|
||||
{VARIABLE black_patrol_dialogue 1}
|
||||
[if]
|
||||
[variable]
|
||||
name=bandits_mobilized
|
||||
less_than=1
|
||||
[/variable]
|
||||
[then]
|
||||
{MOBILIZE_SIDE 2}
|
||||
{VARIABLE bandits_mobilized 1}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
{UNCLEAR_FOG}
|
||||
[/event]
|
||||
# events that spark off Bandit mobility:
|
||||
# - a fight between one of the bandits
|
||||
# - and a player unit dying
|
||||
[event]
|
||||
name=attack_end
|
||||
[filter]
|
||||
side=1
|
||||
[/filter]
|
||||
[filter_second]
|
||||
side=2
|
||||
[/filter_second]
|
||||
|
||||
[filter_condition]
|
||||
[variable]
|
||||
name=bandits_mobilized
|
||||
less_than=1
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
{MOBILIZE_SIDE 2}
|
||||
{VARIABLE bandits_mobilized 1}
|
||||
[/event]
|
||||
[event]
|
||||
name=sighted
|
||||
[filter]
|
||||
|
@ -992,13 +949,6 @@
|
|||
side=1
|
||||
[/filter_second]
|
||||
|
||||
[filter_condition]
|
||||
[variable]
|
||||
name=black_patrol_dialogue
|
||||
equals=0
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
[scroll_to_unit]
|
||||
role=Black Lieutenant
|
||||
[/scroll_to_unit]
|
||||
|
@ -1015,18 +965,11 @@
|
|||
message= _ "We need that water, and if we have to go through you to get it, so be it."
|
||||
[/message]
|
||||
|
||||
{VARIABLE black_patrol_dialogue 1}
|
||||
[if]
|
||||
[variable]
|
||||
name=bandits_mobilized
|
||||
less_than=1
|
||||
[/variable]
|
||||
[then]
|
||||
{MOBILIZE_SIDE 2}
|
||||
{VARIABLE bandits_mobilized 1}
|
||||
[/then]
|
||||
[/if]
|
||||
{UNCLEAR_FOG}
|
||||
|
||||
[fire_event]
|
||||
name=mobilize_black_hand_bandits
|
||||
[/fire_event]
|
||||
[/event]
|
||||
[/else]
|
||||
[/if]
|
||||
|
@ -1467,32 +1410,6 @@
|
|||
[/modify_side]
|
||||
[/event]
|
||||
|
||||
# limit recruitment to one bandit and trapper
|
||||
[event]
|
||||
name=recruit
|
||||
first_time_only="yes"
|
||||
[filter]
|
||||
side=2
|
||||
type=Bandit
|
||||
[/filter]
|
||||
[disallow_recruit]
|
||||
side=2
|
||||
type=Bandit
|
||||
[/disallow_recruit]
|
||||
[/event]
|
||||
[event]
|
||||
name=recruit
|
||||
first_time_only="yes"
|
||||
[filter]
|
||||
side=2
|
||||
type=Trapper
|
||||
[/filter]
|
||||
[disallow_recruit]
|
||||
side=2
|
||||
type=Trapper
|
||||
[/disallow_recruit]
|
||||
[/event]
|
||||
|
||||
#Encounter 7 Mirage
|
||||
#Oasis disappears as soon as player moves to the location
|
||||
[event]
|
||||
|
@ -1760,12 +1677,11 @@
|
|||
[/if]
|
||||
# clearing variables
|
||||
{CLEAR_VARIABLE bandits_mobilized}
|
||||
{CLEAR_VARIABLE black_patrol_dialogue}
|
||||
{CLEAR_VARIABLE ghosts}
|
||||
{CLEAR_VARIABLE ghosts_already_spawned}
|
||||
{CLEAR_VARIABLE ghosts_killed}
|
||||
{CLEAR_VARIABLE max_ghosts}
|
||||
{CLEAR_VARIABLE to_kill}
|
||||
{CLEAR_VARIABLE ghosts_to_kill}
|
||||
[/event]
|
||||
|
||||
#time over defeat event
|
||||
|
@ -1786,158 +1702,119 @@
|
|||
# spawn a number of ghosts each turn depending on how "exposed"
|
||||
# the player units are. Only units in the middle of the desert attract
|
||||
# ghosts.
|
||||
|
||||
# LOST SOUL DISAPPEARANCE at first daylight
|
||||
[event]
|
||||
name=new turn
|
||||
first_time_only=no
|
||||
{VARIABLE turn_temp $turn_number}
|
||||
{VARIABLE_OP turn_temp modulo 15}
|
||||
# LOST SOUL DISAPPEARANCE at first daylight
|
||||
[if]
|
||||
[variable]
|
||||
name=turn_temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
[or]
|
||||
[variable]
|
||||
name=turn_temp
|
||||
numerical_equals=7
|
||||
[/variable]
|
||||
[/or]
|
||||
[then]
|
||||
# reset the ghosts' counters
|
||||
{VARIABLE ghosts_already_spawned 0}
|
||||
{VARIABLE ghosts_killed 0}
|
||||
[kill]
|
||||
role=LostSoul
|
||||
animate=no
|
||||
fire_event=no
|
||||
[/kill]
|
||||
[/then]
|
||||
[/if]
|
||||
[if]
|
||||
[filter_condition]
|
||||
[have_location]
|
||||
time_of_day_id=dawn1,dawn2
|
||||
[/have_location]
|
||||
[/filter_condition]
|
||||
|
||||
# reset the ghosts' counters
|
||||
{VARIABLE ghosts_already_spawned 0}
|
||||
{VARIABLE ghosts_killed 0}
|
||||
[kill]
|
||||
role=LostSoul
|
||||
animate=no
|
||||
fire_event=no
|
||||
[/kill]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=new turn
|
||||
first_time_only=no
|
||||
[filter_condition]
|
||||
[have_location]
|
||||
time_of_day_id=dusk1,dusk2
|
||||
[or]
|
||||
time_of_day=chaotic
|
||||
[/or]
|
||||
[/have_location]
|
||||
[variable]
|
||||
name=ghosts_already_spawned
|
||||
less_than=$max_ghosts
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
# store "exposed" units - those surrounded by a lot of desert
|
||||
[store_locations]
|
||||
variable=ghost_spawn_locs
|
||||
[filter]
|
||||
side=1
|
||||
[/filter]
|
||||
terrain=Hd, Dd, Rr
|
||||
[filter_adjacent_location]
|
||||
count="5,6"
|
||||
adjacent="n,ne,se,s,sw,nw"
|
||||
terrain=Hd, Dd, Rr
|
||||
[/filter_adjacent_location]
|
||||
[/store_locations]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=turn_temp
|
||||
not_equals=1
|
||||
[/variable]
|
||||
[variable]
|
||||
name=turn_temp
|
||||
not_equals=7
|
||||
name=ghost_spawn_locs.length
|
||||
greater_than=0
|
||||
[/variable]
|
||||
[then]
|
||||
# store "exposed" units - those surrounded by a lot of desert
|
||||
# 1 ghost per 4/3/2 exposed units (roughly) per turn
|
||||
{VARIABLE ghosts_per_unit "$($ghost_spawn_locs.length / {ON_DIFFICULTY 4 3 2})"}
|
||||
|
||||
# spawn more rapidly as time goes by
|
||||
{VARIABLE ghosts_per_turn "$(($turn_number / 21) + {ON_DIFFICULTY 1 2 3})"}
|
||||
|
||||
{VARIABLE ghost_limit "$($max_ghosts - $ghosts_already_spawned)"}
|
||||
|
||||
{VARIABLE ghosts "$(min([$ghosts_per_unit, $ghosts_per_turn, $ghost_limit]))"}
|
||||
|
||||
{CLEAR_VARIABLE ghosts_per_unit,ghosts_per_turn,ghost_limit}
|
||||
|
||||
# store all possible spawn locations in range
|
||||
# pick one random ghost_spawn from which
|
||||
# to store all locations in range
|
||||
{RANDOM "0..$($ghost_spawn_locs.length - 1)"}
|
||||
|
||||
[store_locations]
|
||||
variable=ghost_spawn
|
||||
[filter]
|
||||
side=1
|
||||
[/filter]
|
||||
[not]
|
||||
time_of_day=lawful
|
||||
[/not]
|
||||
variable=spawn
|
||||
x=$ghost_spawn_locs[$random].x
|
||||
y=$ghost_spawn_locs[$random].y
|
||||
radius=8
|
||||
terrain=Hd, Dd, Rr
|
||||
[filter_adjacent_location]
|
||||
count="5,6"
|
||||
adjacent="n,ne,se,s,sw,nw"
|
||||
terrain=Hd, Dd, Rr
|
||||
[filter]
|
||||
side=1
|
||||
[/filter]
|
||||
[/filter_adjacent_location]
|
||||
[/store_locations]
|
||||
|
||||
{VARIABLE ghosts $ghost_spawn.length}
|
||||
{CLEAR_VARIABLE ghost_spawn_locs}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=ghosts
|
||||
greater_than=0
|
||||
[/variable]
|
||||
[then]
|
||||
# spawn more rapidly as time goes by
|
||||
{VARIABLE ghosts_per_turn $turn_number}
|
||||
{VARIABLE_OP ghosts_per_turn divide 21}
|
||||
{VARIABLE_OP ghosts_per_turn add {ON_DIFFICULTY 1 2 3}}
|
||||
[repeat]
|
||||
times=$ghosts
|
||||
|
||||
# 1 ghost per 4/3/2 exposed units (roughly) per turn
|
||||
{VARIABLE_OP ghosts divide {ON_DIFFICULTY 4 3 2}}
|
||||
[do]
|
||||
{RANDOM "0..$($spawn.length - 1)"}
|
||||
|
||||
# limit ghost appearance rate
|
||||
[if]
|
||||
[variable]
|
||||
name=ghosts
|
||||
greater_than=$ghosts_per_turn
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE ghosts $ghosts_per_turn}
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE ghosts_per_turn}
|
||||
# deduct already spawned ghosts - whether still alive or not
|
||||
{VARIABLE ghost_limit $max_ghosts}
|
||||
{VARIABLE_OP ghost_limit sub $ghosts_already_spawned}
|
||||
[if]
|
||||
[variable]
|
||||
name=ghosts
|
||||
greater_than=$ghost_limit
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE ghosts $ghost_limit}
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE ghost_limit}
|
||||
# wmlindent: start ignoring
|
||||
{NAMED_UNIT 4 "Ghost" $spawn[$random].x $spawn[$random].y () ( _ "Lost Soul") (
|
||||
animate=yes
|
||||
role="LostSoul")}
|
||||
# wmlindent: stop ignoring
|
||||
|
||||
# store all possible spawn locations in range
|
||||
# pick one random ghost_spawn from which
|
||||
# to store all locations in range
|
||||
{RANDOM 1..$ghost_spawn.length}
|
||||
{VARIABLE_OP random sub 1}
|
||||
[store_locations]
|
||||
variable=spawn
|
||||
x=$ghost_spawn[$random].x
|
||||
y=$ghost_spawn[$random].y
|
||||
radius=8
|
||||
terrain=Hd, Dd, Rr
|
||||
[filter_adjacent_location]
|
||||
[filter]
|
||||
side=1
|
||||
[/filter]
|
||||
[/filter_adjacent_location]
|
||||
[/store_locations]
|
||||
{VARIABLE_OP ghosts_already_spawned add 1}
|
||||
[/do]
|
||||
[/repeat]
|
||||
|
||||
{CLEAR_VARIABLE ghost_spawn}
|
||||
{CLEAR_VARIABLE spawn,random}
|
||||
|
||||
[while]
|
||||
[variable]
|
||||
name=ghosts
|
||||
greater_than=0
|
||||
[/variable]
|
||||
[do]
|
||||
{RANDOM 1..$spawn.length}
|
||||
{VARIABLE_OP random sub 1}
|
||||
|
||||
# wmlindent: start ignoring
|
||||
{NAMED_UNIT 4 "Ghost" $spawn[$random].x $spawn[$random].y () ( _ "Lost Soul") (
|
||||
animate=yes
|
||||
role="LostSoul")}
|
||||
# wmlindent: stop ignoring
|
||||
{VARIABLE_OP ghosts_already_spawned add 1}
|
||||
[set_variable]
|
||||
name=ghosts
|
||||
sub=1
|
||||
[/set_variable]
|
||||
[/do]
|
||||
[/while]
|
||||
{CLEAR_VARIABLE spawn}
|
||||
# some ghosts dialogue
|
||||
|
||||
[fire_event]
|
||||
name=ghosts_talk
|
||||
[/fire_event]
|
||||
[/then]
|
||||
[/if]
|
||||
# some ghosts dialogue
|
||||
[fire_event]
|
||||
name=ghosts_talk
|
||||
[/fire_event]
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE turn_temp}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -1964,21 +1841,14 @@
|
|||
role=LostSoul
|
||||
[/filter]
|
||||
|
||||
{VARIABLE to_kill $max_ghosts}
|
||||
{VARIABLE_OP to_kill divide 3}
|
||||
{VARIABLE_OP to_kill round ceil}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=ghosts_killed
|
||||
numerical_not_equals=$to_kill
|
||||
numerical_not_equals=$ghosts_to_kill
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=ghosts_killed
|
||||
add=1
|
||||
[/set_variable]
|
||||
{VARIABLE_OP ghosts_killed add 1}
|
||||
[/then]
|
||||
|
||||
[else]
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -233,10 +233,7 @@
|
|||
[/recall]
|
||||
|
||||
#initialize variables
|
||||
[set_variable]
|
||||
name=naga_ambush
|
||||
value=0
|
||||
[/set_variable]
|
||||
{VARIABLE naga_ambush no}
|
||||
|
||||
#close one of the two northern tunnels
|
||||
{RANDOM 1..10}
|
||||
|
@ -330,7 +327,7 @@
|
|||
[if]
|
||||
[variable]
|
||||
name=sneak_up
|
||||
equals=1
|
||||
boolean_equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[remove_shroud]
|
||||
|
@ -343,7 +340,7 @@
|
|||
[/then]
|
||||
[/if]
|
||||
|
||||
{CLEAR_VARIABLE sneak_up}
|
||||
{CLEAR_VARIABLE random,sneak_up}
|
||||
[/event]
|
||||
|
||||
# starting dialogue
|
||||
|
@ -473,43 +470,39 @@
|
|||
|
||||
# Medium: 1 orcish slayer, 2 goblin impalers, 1 naga warrior, 2 naga fighters
|
||||
# Hard: 1 orcish slayer, 2 goblin impalers, 3 naga warriors
|
||||
[event]
|
||||
name=naga_attack
|
||||
|
||||
#define NAGA_ATTACK
|
||||
|
||||
#1 orcish assassin/slayer summons/leads any goblins
|
||||
#1 orcish assassin/slayer summons/leads any goblins
|
||||
|
||||
#ifdef EASY
|
||||
{NAMED_NOTRAIT_UNIT 2 (Orcish Assassin) 24 32 (Orac) ( _ "Orac")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Orcish Assassin) 24 32 (Orac) ( _ "Orac")}
|
||||
#else
|
||||
{NAMED_NOTRAIT_UNIT 2 (Orcish Slayer) 24 32 (Orac) ( _ "Orac")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Orcish Slayer) 24 32 (Orac) ( _ "Orac")}
|
||||
#endif
|
||||
|
||||
#2 nagas appear at edge of lake
|
||||
#2 nagas appear at edge of lake
|
||||
|
||||
#ifdef EASY
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 20 34 (Scylla) ( _ "Scylla")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 20 34 (Scylla) ( _ "Scylla")}
|
||||
#else
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 20 34 (Scylla) ( _ "Scylla")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 20 34 (Scylla) ( _ "Scylla")}
|
||||
#endif
|
||||
#hack to make Scylla female
|
||||
[+unit]
|
||||
gender=female
|
||||
[/unit]
|
||||
#hack to make Scylla female
|
||||
[+unit]
|
||||
gender=female
|
||||
[/unit]
|
||||
|
||||
#ifdef HARD
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 19 34 () ( _ "Lake Naga")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 20 35 () ( _ "Lake Naga")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 19 34 () ( _ "Lake Naga")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 20 35 () ( _ "Lake Naga")}
|
||||
#else
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 19 34 () ( _ "Lake Naga")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 20 35 () ( _ "Lake Naga")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 19 34 () ( _ "Lake Naga")}
|
||||
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 20 35 () ( _ "Lake Naga")}
|
||||
#endif
|
||||
|
||||
[set_variable]
|
||||
name=naga_ambush
|
||||
value=1
|
||||
[/set_variable]
|
||||
|
||||
#enddef
|
||||
{VARIABLE naga_ambush yes}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
|
@ -523,11 +516,13 @@
|
|||
[filter_condition]
|
||||
[variable]
|
||||
name=naga_ambush
|
||||
numerical_equals=0
|
||||
boolean_equals=no
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
{NAGA_ATTACK}
|
||||
[fire_event]
|
||||
name=naga_attack
|
||||
[/fire_event]
|
||||
|
||||
#ifdef EASY
|
||||
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 24 31 () ( _ "Goblin Scout")}
|
||||
|
@ -688,11 +683,13 @@
|
|||
[if]
|
||||
[variable]
|
||||
name=naga_ambush
|
||||
numerical_equals=0
|
||||
boolean_equals=no
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{NAGA_ATTACK}
|
||||
[fire_event]
|
||||
name=naga_attack
|
||||
[/fire_event]
|
||||
|
||||
[message]
|
||||
speaker=Orac
|
||||
|
|
|
@ -730,66 +730,6 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# EVENT 5 IS LISTED OUT OF ORDER BECAUSE FOR SOME REASON IT WASN'T
|
||||
# FIRING WHEN PLACED AFTER EVENT 4.5. CURRENTLY THIS EVENT WORKS
|
||||
# FINE WHEN IT IS HERE AND EVENT 6 FIRES FINE AFTER 4.5. SO EVEN
|
||||
# THOUGH THE EVENTS ARE OUT OF ORDER, I'M LEAVING THEM THIS WAY
|
||||
# BECAUSE IT SEEMS TO MAKE EVERYTHING WORK FINE.
|
||||
|
||||
# Event 5: Sighted dwarf/troll leader events
|
||||
|
||||
#define DWARF_ALLY_APPROACH_MESSAGES
|
||||
{VARIABLE Fundin_approach_message (_ "What are you doing back here? The trolls hide in the southern tunnels, not this way.")}
|
||||
{VARIABLE Nori_approach_message (_ "What are you doing back here? The trolls hide in the southern tunnels, not this way.")}
|
||||
# wmllint: local spelling stinkin'
|
||||
{VARIABLE Thungar_approach_message (_ "Nasty dwarves and stinkin’ elves, we will smash you all!")}
|
||||
{VARIABLE Gnarl_approach_message (_ "Kill the elves! We must stop them here. This is our land, crush the intruders!")}
|
||||
#enddef
|
||||
|
||||
#define TROLL_ALLY_APPROACH_MESSAGES
|
||||
{VARIABLE Fundin_approach_message (_ "Treacherous elves, how can you fight with such horrid creatures as trolls? I will cleave all in two with my axe!")}
|
||||
{VARIABLE Nori_approach_message (_ "If you think you can take these caves from us, then you are fools. We are masters of fighting underground and we will die to defend our home. Fight on, my brothers!")}
|
||||
{VARIABLE Thungar_approach_message (_ "What you doing back here? Nasty dwarves are to the north, no dwarves this way. Go back and fight bravely.")}
|
||||
{VARIABLE Gnarl_approach_message (_ "What you doing back here? Nasty dwarves are to the north, no dwarves this way. Go back and fight bravely.")}
|
||||
#enddef
|
||||
|
||||
#define APPROACH_LEADER LEADER_ID ENTER_X_SPAN ENTER_Y_SPAN REMOVE_X_SPAN REMOVE_Y_SPAN
|
||||
[event]
|
||||
name=moveto
|
||||
|
||||
[filter]
|
||||
x={ENTER_X_SPAN}
|
||||
y={ENTER_Y_SPAN}
|
||||
side=1
|
||||
[/filter]
|
||||
|
||||
[remove_shroud]
|
||||
x={REMOVE_X_SPAN}
|
||||
y={REMOVE_Y_SPAN}
|
||||
side=1
|
||||
[/remove_shroud]
|
||||
|
||||
[message]
|
||||
speaker={LEADER_ID}
|
||||
message=${LEADER_ID}_approach_message
|
||||
[/message]
|
||||
[/event]
|
||||
#enddef
|
||||
|
||||
# NW dwarf
|
||||
{APPROACH_LEADER Fundin 23-31 8-17 22-31 7-17}
|
||||
|
||||
# NE dwarf
|
||||
{APPROACH_LEADER Nori 41-51 10-16 40-52 9-17}
|
||||
|
||||
# SW troll
|
||||
{APPROACH_LEADER Thungar 23-31 37-44 21-32 37-44}
|
||||
|
||||
# SE troll
|
||||
{APPROACH_LEADER Gnarl 42-51 37-45 42-51 37-46}
|
||||
#undef APPROACH_LEADER
|
||||
|
||||
# victory events for trolls and dwarves here to make the ally event easier to follow
|
||||
#define CLOAK_KILL_OBJECTIVES
|
||||
[objectives]
|
||||
summary= _ "New Objectives:"
|
||||
|
@ -818,220 +758,6 @@
|
|||
[/objectives]
|
||||
#enddef
|
||||
|
||||
#define TROLL_ALLY_VICTORY
|
||||
[event]
|
||||
name=troll_victory_test
|
||||
|
||||
[filter_condition]
|
||||
[have_unit]
|
||||
race=dwarf
|
||||
canrecruit=yes
|
||||
count=0
|
||||
[/have_unit]
|
||||
[/filter_condition]
|
||||
|
||||
[terrain]
|
||||
x=22,21,20,19,19,18,17
|
||||
y=14,14,14,15,16,16,17
|
||||
terrain=Uu
|
||||
[/terrain]
|
||||
|
||||
{NAMED_NOTRAIT_UNIT 2 (Troll Shaman) 20 14 (Zurg) ( _ "Zurg")}
|
||||
|
||||
[remove_shroud]
|
||||
x=19-23
|
||||
y=12-16
|
||||
side=1
|
||||
[/remove_shroud]
|
||||
|
||||
[redraw]
|
||||
side=1
|
||||
[/redraw]
|
||||
|
||||
[delay]
|
||||
time=200
|
||||
[/delay]
|
||||
|
||||
# wmllint: recognize Cloaked Figure
|
||||
[message]
|
||||
speaker=Zurg
|
||||
message= _ "Congratulations! Some of trolls didn’t think you strong enough to beat Dwarves."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Where did you come from?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zurg
|
||||
message= _ "There many secret tunnels that you sun dwellers not know of. Only troll know. We smarter than you think. Zurg would have killed dwarves himself, but he was just sent back from where real fighting is."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "The real fighting? I thought that was what we were waist-deep in?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zurg
|
||||
# wmllint: local spelling tricksy
|
||||
message= _ "While you fighting, another clan of dwarves sneak around and flank us. They tricksy like that. We must leave you and run back to defend women and little trolls. Dwarves never give up, many trolls die today, very hard fighting. But dwarves make mistake, you stronger than dwarf or troll thought. You trolls’ secret weapon."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "How do you mean?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zurg
|
||||
message= _ "Right before battle, we find secret passage just to the north leading straight to big dwarf stronghold. Hiding in stronghold is big important dwarf, directing the battle. Dwarves always think they best fighters around so they leave only a few dwarves guarding their stronghold. If you elves can break through dwarf defenses and kill dwarf chieftain, then it will do much damage to dwarves, make them afraid and confused, easy prey for trolls. You do this and we can drive them back. Then troll leader can help show you how to return to surface. You come with Zurg, he show you way to secret passage."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Elyssa
|
||||
message= _ "Their knowledge of these tunnels is uncanny. I could have sworn a minute ago that that wall was solid rock."
|
||||
[/message]
|
||||
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Cloaked Figure
|
||||
[/have_unit]
|
||||
|
||||
[then]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Wait a moment, Zurg, we must deal with this mysterious cloaked figure before we can follow you."
|
||||
[/message]
|
||||
|
||||
#set new scenario objectives
|
||||
|
||||
{CLOAK_KILL_OBJECTIVES}
|
||||
[/then]
|
||||
|
||||
[else]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "It sounds like our work is not yet done. Very well, gather yourselves together, we must follow Zurg."
|
||||
[/message]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=06b_In_the_Domain_of_the_Dwarves
|
||||
bonus=yes
|
||||
{NEW_GOLD_CARRYOVER 40}
|
||||
[/endlevel]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
#enddef
|
||||
|
||||
#define DWARF_ALLY_VICTORY
|
||||
[event]
|
||||
name=dwarf_victory_test
|
||||
|
||||
[filter_condition]
|
||||
[have_unit]
|
||||
race=troll
|
||||
canrecruit=yes
|
||||
count=0
|
||||
[/have_unit]
|
||||
[/filter_condition]
|
||||
|
||||
[terrain]
|
||||
x=24,23,22,21,20,19,18
|
||||
y=44,45,45,46,46,46,45
|
||||
terrain=Uu
|
||||
[/terrain]
|
||||
|
||||
[delay]
|
||||
time=200
|
||||
[/delay]
|
||||
|
||||
{NAMED_NOTRAIT_UNIT 5 (Dwarvish Pathfinder) 21 46 (Grimnir) ( _ "Grimnir")}
|
||||
|
||||
[remove_shroud]
|
||||
x=20-26
|
||||
y=43-46
|
||||
side=1
|
||||
[/remove_shroud]
|
||||
|
||||
[redraw]
|
||||
side=1
|
||||
[/redraw]
|
||||
|
||||
[message]
|
||||
speaker=Grimnir
|
||||
message= _ "Congratulations, some of me boys didn’t think you could beat the trolls."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Where did you come from?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Grimnir
|
||||
message= _ "Don’t think you know all the tunnels and passages that twist through these caves, elf. I would have killed him myself, but I was just sent back from the main front of the battle."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "The front? I thought this was the front."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Grimnir
|
||||
message= _ "While you were fighting, a separate clan of trolls sneaked around our sentries and flanked us, attacking our supply depots. There are more of those stinking buggers than we had originally thought. To tell you the truth, we are hard pressed. We’re going to have to pull back all our forces in these caves to reinforce the back lines. But your victory here has produced a unexpected opportunity."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "It has?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Grimnir
|
||||
message= _ "Right before the trolls overran this area of the mines, our scouts had found an old tunnel south of here that leads almost straight to the main lair of this tribe of trolls. We believe that protected in the lair is one of their main leaders who is directing the battle. We were going to try to sneak in and lead a surprise attack, but frankly we didn’t have enough dwarves to spare. If by using this passage you can sneak past their front lines and kill him, then it will throw the trolls into disarray and relieve the pressure on our front lines. If you do this our King has promised to help you return your people to the sunlit lands. When you’re ready I’ll show you the way. It’s not far."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Elyssa
|
||||
message= _ "Their knowledge of these tunnels is uncanny. I could have sworn a minute ago that that wall was solid rock."
|
||||
[/message]
|
||||
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Cloaked Figure
|
||||
[/have_unit]
|
||||
|
||||
[then]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Wait a moment, Grimnir, we must deal with this mysterious cloaked figure before we can follow you."
|
||||
[/message]
|
||||
|
||||
{CLOAK_KILL_OBJECTIVES}
|
||||
[/then]
|
||||
|
||||
[else]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "It sounds like our work is not yet done. Very well, gather yourselves together, we must follow Grimnir."
|
||||
[/message]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=06a_In_the_Tunnels_of_the_Trolls
|
||||
bonus=yes
|
||||
{NEW_GOLD_CARRYOVER 40}
|
||||
[/endlevel]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
#enddef
|
||||
|
||||
# Event 2: Entering the large cavern
|
||||
|
||||
#player chooses one side (trolls or dwarves) then:
|
||||
|
@ -1344,15 +1070,6 @@
|
|||
message= _ "Bah! Your kind all the same. Everyone turns on trolls. But you’ll see, Griknagh will smash you all."
|
||||
[/message]
|
||||
|
||||
{DWARF_ALLY_APPROACH_MESSAGES}
|
||||
{DWARF_ALLY_VICTORY}
|
||||
[event]
|
||||
name=troll_victory_test
|
||||
[endlevel]
|
||||
result=defeat
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
#set new scenario objectives
|
||||
|
||||
[objectives]
|
||||
|
@ -1411,15 +1128,6 @@
|
|||
message= _ "I knew elves couldn’t be trusted. Foolish boy, you will regret your betrayal. Taste dwarven steel!"
|
||||
[/message]
|
||||
|
||||
{TROLL_ALLY_APPROACH_MESSAGES}
|
||||
{TROLL_ALLY_VICTORY}
|
||||
[event]
|
||||
name=dwarf_victory_test
|
||||
[endlevel]
|
||||
result=defeat
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
#set new scenario objectives
|
||||
[objectives]
|
||||
summary= _ "New Objectives:"
|
||||
|
@ -2463,6 +2171,102 @@
|
|||
{CLEAR_VARIABLE assassin_turn}
|
||||
[/event]
|
||||
|
||||
# Event 5: Sighted dwarf/troll leader events
|
||||
|
||||
[event]
|
||||
name=sighted
|
||||
first_time_only=no
|
||||
[filter]
|
||||
side=2,3,4,5
|
||||
canrecruit=yes
|
||||
[/filter]
|
||||
[filter_second]
|
||||
side=1
|
||||
[/filter_second]
|
||||
[filter_condition]
|
||||
[not]
|
||||
[have_unit]
|
||||
id=$unit.id
|
||||
find_in=leaders_who_spoke
|
||||
[/have_unit]
|
||||
[/not]
|
||||
[/filter_condition]
|
||||
|
||||
[switch]
|
||||
variable=ally_race
|
||||
|
||||
[case]
|
||||
value=dwarf
|
||||
|
||||
[switch]
|
||||
variable=unit.id
|
||||
|
||||
[case]
|
||||
value=Thungar
|
||||
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Nasty dwarves and stinkin’ elves, we will smash you all!"
|
||||
[/message]
|
||||
[/case]
|
||||
[case]
|
||||
value=Gnarl
|
||||
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Kill the elves! We must stop them here. This is our land, crush the intruders!"
|
||||
[/message]
|
||||
[/case]
|
||||
[else]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "What are you doing back here? The trolls hide in the southern tunnels, not this way."
|
||||
[/message]
|
||||
[/else]
|
||||
[/switch]
|
||||
[/case]
|
||||
[case]
|
||||
value=troll
|
||||
|
||||
[switch]
|
||||
variable=unit.id
|
||||
|
||||
[case]
|
||||
value=Fundin
|
||||
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Treacherous elves, how can you fight with such horrid creatures as trolls? I will cleave all in two with my axe!"
|
||||
[/message]
|
||||
[/case]
|
||||
[case]
|
||||
value=Nori
|
||||
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "If you think you can take these caves from us, then you are fools. We are masters of fighting underground and we will die to defend our home. Fight on, my brothers!"
|
||||
[/message]
|
||||
[/case]
|
||||
[else]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "What you doing back here? Nasty dwarves are to the north, no dwarves this way. Go back and fight bravely."
|
||||
[/message]
|
||||
[/else]
|
||||
[/switch]
|
||||
[/case]
|
||||
[/switch]
|
||||
|
||||
[set_variables]
|
||||
name=leaders_who_spoke
|
||||
mode=append
|
||||
|
||||
[value]
|
||||
id=$unit.id
|
||||
[/value]
|
||||
[/set_variables]
|
||||
[/event]
|
||||
|
||||
# Event 6: death events for each leader
|
||||
|
||||
#for each death check to see if other leader is dead, if so
|
||||
|
@ -2479,15 +2283,6 @@
|
|||
speaker=Fundin
|
||||
message= _ "The rest is silence..."
|
||||
[/message]
|
||||
|
||||
[kill]
|
||||
id=Fundin
|
||||
animate=yes
|
||||
[/kill]
|
||||
|
||||
[fire_event]
|
||||
name=troll_victory_test
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -2501,15 +2296,6 @@
|
|||
speaker=Nori
|
||||
message= _ "I go to my ancestors..."
|
||||
[/message]
|
||||
|
||||
[kill]
|
||||
id=Nori
|
||||
animate=yes
|
||||
[/kill]
|
||||
|
||||
[fire_event]
|
||||
name=troll_victory_test
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -2523,10 +2309,6 @@
|
|||
speaker=Thungar
|
||||
message= _ "Arrghh!!"
|
||||
[/message]
|
||||
|
||||
[fire_event]
|
||||
name=dwarf_victory_test
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -2540,15 +2322,264 @@
|
|||
speaker=Gnarl
|
||||
message= _ "I will be avenged..."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
canrecruit=yes
|
||||
[filter_side]
|
||||
[allied_with]
|
||||
side=1
|
||||
[/allied_with]
|
||||
[/filter_side]
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=defeat
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=die
|
||||
first_time_only=no
|
||||
[filter]
|
||||
canrecruit=yes
|
||||
[/filter]
|
||||
[filter_condition]
|
||||
[have_unit]
|
||||
canrecruit=yes
|
||||
[filter_side]
|
||||
[enemy_of]
|
||||
side=1
|
||||
[/enemy_of]
|
||||
[/filter_side]
|
||||
[not]
|
||||
id=$unit.id
|
||||
[/not]
|
||||
|
||||
count=0
|
||||
[/have_unit]
|
||||
[/filter_condition]
|
||||
|
||||
[kill]
|
||||
id=Gnarl
|
||||
animate=yes
|
||||
id=$unit.id
|
||||
fire_event=no
|
||||
animate=no
|
||||
[/kill]
|
||||
|
||||
[fire_event]
|
||||
name=dwarf_victory_test
|
||||
[/fire_event]
|
||||
[switch]
|
||||
variable=ally_race
|
||||
|
||||
[case]
|
||||
value="troll"
|
||||
|
||||
[fire_event]
|
||||
name=troll_victory_test
|
||||
[/fire_event]
|
||||
[/case]
|
||||
[case]
|
||||
value="dwarf"
|
||||
|
||||
[fire_event]
|
||||
name=dwarf_victory_test
|
||||
[/fire_event]
|
||||
[/case]
|
||||
[/switch]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=troll_victory_test
|
||||
|
||||
[terrain]
|
||||
x=22,21,20,19,19,18,17
|
||||
y=14,14,14,15,16,16,17
|
||||
terrain=Uu
|
||||
[/terrain]
|
||||
|
||||
{NAMED_NOTRAIT_UNIT 2 (Troll Shaman) 20 14 (Zurg) ( _ "Zurg")}
|
||||
|
||||
[remove_shroud]
|
||||
x=19-23
|
||||
y=12-16
|
||||
side=1
|
||||
[/remove_shroud]
|
||||
|
||||
[redraw]
|
||||
side=1
|
||||
[/redraw]
|
||||
|
||||
[delay]
|
||||
time=200
|
||||
[/delay]
|
||||
|
||||
# wmllint: recognize Cloaked Figure
|
||||
[message]
|
||||
speaker=Zurg
|
||||
message= _ "Congratulations! Some of trolls didn’t think you strong enough to beat Dwarves."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Where did you come from?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zurg
|
||||
message= _ "There many secret tunnels that you sun dwellers not know of. Only troll know. We smarter than you think. Zurg would have killed dwarves himself, but he was just sent back from where real fighting is."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "The real fighting? I thought that was what we were waist-deep in?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zurg
|
||||
# wmllint: local spelling tricksy
|
||||
message= _ "While you fighting, another clan of dwarves sneak around and flank us. They tricksy like that. We must leave you and run back to defend women and little trolls. Dwarves never give up, many trolls die today, very hard fighting. But dwarves make mistake, you stronger than dwarf or troll thought. You trolls’ secret weapon."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "How do you mean?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zurg
|
||||
message= _ "Right before battle, we find secret passage just to the north leading straight to big dwarf stronghold. Hiding in stronghold is big important dwarf, directing the battle. Dwarves always think they best fighters around so they leave only a few dwarves guarding their stronghold. If you elves can break through dwarf defenses and kill dwarf chieftain, then it will do much damage to dwarves, make them afraid and confused, easy prey for trolls. You do this and we can drive them back. Then troll leader can help show you how to return to surface. You come with Zurg, he show you way to secret passage."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Elyssa
|
||||
message= _ "Their knowledge of these tunnels is uncanny. I could have sworn a minute ago that that wall was solid rock."
|
||||
[/message]
|
||||
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Cloaked Figure
|
||||
[/have_unit]
|
||||
|
||||
[then]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Wait a moment, Zurg, we must deal with this mysterious cloaked figure before we can follow you."
|
||||
[/message]
|
||||
|
||||
#set new scenario objectives
|
||||
|
||||
{CLOAK_KILL_OBJECTIVES}
|
||||
[/then]
|
||||
|
||||
[else]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "It sounds like our work is not yet done. Very well, gather yourselves together, we must follow Zurg."
|
||||
[/message]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=06b_In_the_Domain_of_the_Dwarves
|
||||
bonus=yes
|
||||
{NEW_GOLD_CARRYOVER 40}
|
||||
[/endlevel]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=dwarf_victory_test
|
||||
|
||||
[terrain]
|
||||
x=24,23,22,21,20,19,18
|
||||
y=44,45,45,46,46,46,45
|
||||
terrain=Uu
|
||||
[/terrain]
|
||||
|
||||
[delay]
|
||||
time=200
|
||||
[/delay]
|
||||
|
||||
{NAMED_NOTRAIT_UNIT 5 (Dwarvish Pathfinder) 21 46 (Grimnir) ( _ "Grimnir")}
|
||||
|
||||
[remove_shroud]
|
||||
x=20-26
|
||||
y=43-46
|
||||
side=1
|
||||
[/remove_shroud]
|
||||
|
||||
[redraw]
|
||||
side=1
|
||||
[/redraw]
|
||||
|
||||
[message]
|
||||
speaker=Grimnir
|
||||
message= _ "Congratulations, some of me boys didn’t think you could beat the trolls."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Where did you come from?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Grimnir
|
||||
message= _ "Don’t think you know all the tunnels and passages that twist through these caves, elf. I would have killed him myself, but I was just sent back from the main front of the battle."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "The front? I thought this was the front."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Grimnir
|
||||
message= _ "While you were fighting, a separate clan of trolls sneaked around our sentries and flanked us, attacking our supply depots. There are more of those stinking buggers than we had originally thought. To tell you the truth, we are hard pressed. We’re going to have to pull back all our forces in these caves to reinforce the back lines. But your victory here has produced a unexpected opportunity."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "It has?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Grimnir
|
||||
message= _ "Right before the trolls overran this area of the mines, our scouts had found an old tunnel south of here that leads almost straight to the main lair of this tribe of trolls. We believe that protected in the lair is one of their main leaders who is directing the battle. We were going to try to sneak in and lead a surprise attack, but frankly we didn’t have enough dwarves to spare. If by using this passage you can sneak past their front lines and kill him, then it will throw the trolls into disarray and relieve the pressure on our front lines. If you do this our King has promised to help you return your people to the sunlit lands. When you’re ready I’ll show you the way. It’s not far."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Elyssa
|
||||
message= _ "Their knowledge of these tunnels is uncanny. I could have sworn a minute ago that that wall was solid rock."
|
||||
[/message]
|
||||
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Cloaked Figure
|
||||
[/have_unit]
|
||||
|
||||
[then]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Wait a moment, Grimnir, we must deal with this mysterious cloaked figure before we can follow you."
|
||||
[/message]
|
||||
|
||||
{CLOAK_KILL_OBJECTIVES}
|
||||
[/then]
|
||||
|
||||
[else]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "It sounds like our work is not yet done. Very well, gather yourselves together, we must follow Grimnir."
|
||||
[/message]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=06a_In_the_Tunnels_of_the_Trolls
|
||||
bonus=yes
|
||||
{NEW_GOLD_CARRYOVER 40}
|
||||
[/endlevel]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
# When cloaked figure dies and if player has already killed both enemy
|
||||
|
@ -2622,10 +2653,8 @@
|
|||
#at victory, clear variables:
|
||||
[event]
|
||||
name=victory
|
||||
{CLEAR_VARIABLE Fundin_approach_message}
|
||||
{CLEAR_VARIABLE Nori_approach_message}
|
||||
{CLEAR_VARIABLE Thungar_approach_message}
|
||||
{CLEAR_VARIABLE Gnarl_approach_message}
|
||||
|
||||
{CLEAR_VARIABLE leaders_who_spoke}
|
||||
[/event]
|
||||
|
||||
# if player runs out of time, display time over message
|
||||
|
|
|
@ -250,16 +250,6 @@ _ "These undead trolls fight again in death as they did in life, except this tim
|
|||
value={ON_DIFFICULTY 2 3 4}
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=summon_flame
|
||||
value=0
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=flame_counter
|
||||
value=0
|
||||
[/set_variable]
|
||||
|
||||
# create AI=guardian units. They can't move unless an enemy
|
||||
# moves nearby. I create them at the beginning because when the
|
||||
# player sees them, events will fire.
|
||||
|
@ -973,15 +963,27 @@ _ "These undead trolls fight again in death as they did in life, except this tim
|
|||
image=wesnoth-icon.png
|
||||
[/message]
|
||||
|
||||
[set_variable]
|
||||
name=summon_flame
|
||||
value=2
|
||||
[/set_variable]
|
||||
[event]
|
||||
name=new turn
|
||||
|
||||
[set_variable]
|
||||
name=flame_counter
|
||||
value=5
|
||||
[/set_variable]
|
||||
[message]
|
||||
role=Troll High Shaman
|
||||
message= _ "Arise! Arise and engulf the intruders in your holy fire!"
|
||||
[/message]
|
||||
|
||||
[fire_event]
|
||||
name=evoke_flame_guardian
|
||||
[/fire_event]
|
||||
|
||||
[message]
|
||||
side=1
|
||||
x,y=16-29,11-23
|
||||
message= _ "What the heck is that? It sure doesn’t look good. The last thing we need in here is even more fire."
|
||||
[/message]
|
||||
|
||||
{VARIABLE summon_flame_guardian yes}
|
||||
{VARIABLE flame_guardian_turn_counter 0}
|
||||
[/event]
|
||||
[/event]
|
||||
|
||||
# pool of water lets player heal halfway
|
||||
|
@ -1023,199 +1025,61 @@ _ "These undead trolls fight again in death as they did in life, except this tim
|
|||
[/heal_unit]
|
||||
[/event]
|
||||
|
||||
# This function fires each turn and checks to see if it should summon
|
||||
# a "Fire Pheonix" fire guardian, based on the value of the summon_flame
|
||||
# variable and on the value of the flame_counter
|
||||
[event]
|
||||
name=evoke_flame_guardian
|
||||
first_time_only=no
|
||||
|
||||
# when the fire guardian unit dies, the flame_counter is reset to 0
|
||||
{FLASH_RED (
|
||||
[unit]
|
||||
side=5
|
||||
type={ON_DIFFICULTY (Fire Guardian) (Fire Guardian2) (Fire Guardian3)}
|
||||
x,y=26,21
|
||||
name= _ "Guardian Phoenix"
|
||||
role="Guardian Phoenix"
|
||||
random_traits=no
|
||||
[/unit]
|
||||
)}
|
||||
|
||||
# each turn flame_counter is incremented until it reached 4 (on hard
|
||||
# difficulty) or 5, then a new fire guardian is summoned and
|
||||
# summon_flame is turned back to 0.
|
||||
[scroll_to_unit]
|
||||
x,y=26,21
|
||||
[/scroll_to_unit]
|
||||
|
||||
# summon_flame=0: fire guardian has been created, is alive, don't create another
|
||||
# summon_flame=1: fire guardian has been killed, create another
|
||||
# summon_flame=2: create fire guardian for first time, elves are amazed
|
||||
# summon_flame=3: player has reached troll shamans, stop summoning fire guardians
|
||||
[delay]
|
||||
time=250
|
||||
[/delay]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=new turn
|
||||
first_time_only=no
|
||||
[filter_condition]
|
||||
[variable]
|
||||
name=summon_flame_guardian
|
||||
boolean_equals=yes
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
[set_variable]
|
||||
name=flame_counter
|
||||
add=1
|
||||
[/set_variable]
|
||||
{VARIABLE_OP flame_guardian_turn_counter sub 1}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=summon_flame
|
||||
numerical_equals=2
|
||||
name=flame_guardian_turn_counter
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
#ifdef HARD
|
||||
[variable]
|
||||
name=flame_counter
|
||||
greater_than=3
|
||||
[/variable]
|
||||
#else
|
||||
[variable]
|
||||
name=flame_counter
|
||||
greater_than=4
|
||||
[/variable]
|
||||
#endif
|
||||
|
||||
[then]
|
||||
[message]
|
||||
role=Troll High Shaman
|
||||
message= _ "Arise! Arise and engulf the intruders in your holy fire!"
|
||||
[/message]
|
||||
|
||||
[color_adjust]
|
||||
red,green,blue=255,0,0
|
||||
[/color_adjust]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
[delay]
|
||||
time=100
|
||||
[/delay]
|
||||
|
||||
[color_adjust]
|
||||
red,green,blue=0,0,0
|
||||
[/color_adjust]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
#ifdef EASY
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian) 26 21 () ( _ "Guardian Phoenix")}
|
||||
[+unit]
|
||||
role=Guardian Phoenix
|
||||
[/unit]
|
||||
#endif
|
||||
|
||||
#ifdef NORMAL
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian2) 26 21 () ( _ "Guardian Phoenix")}
|
||||
[+unit]
|
||||
role=Guardian Phoenix
|
||||
[/unit]
|
||||
#endif
|
||||
|
||||
#ifdef HARD
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 26 21 () ( _ "Guardian Phoenix")}
|
||||
[+unit]
|
||||
role=Guardian Phoenix
|
||||
[/unit]
|
||||
#endif
|
||||
|
||||
[scroll_to_unit]
|
||||
x,y=26,21
|
||||
[/scroll_to_unit]
|
||||
|
||||
[delay]
|
||||
time=250
|
||||
[/delay]
|
||||
[fire_event]
|
||||
name=evoke_flame_guardian
|
||||
[/fire_event]
|
||||
|
||||
[message]
|
||||
side=1
|
||||
x,y=16-29,11-23
|
||||
message= _ "What the heck is that? It sure doesn’t look good. The last thing we need in here is even more fire."
|
||||
message= _ "That thing just won’t stay dead!"
|
||||
[/message]
|
||||
|
||||
[set_variable]
|
||||
name=summon_flame
|
||||
value=0
|
||||
[/set_variable]
|
||||
[/then]
|
||||
|
||||
[else]
|
||||
[if]
|
||||
[variable]
|
||||
name=summon_flame
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
#ifdef HARD
|
||||
[variable]
|
||||
name=flame_counter
|
||||
greater_than=3
|
||||
[/variable]
|
||||
#else
|
||||
[variable]
|
||||
name=flame_counter
|
||||
greater_than=4
|
||||
[/variable]
|
||||
#endif
|
||||
|
||||
[then]
|
||||
[color_adjust]
|
||||
red,green,blue=255,0,0
|
||||
[/color_adjust]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
[delay]
|
||||
time=100
|
||||
[/delay]
|
||||
|
||||
[color_adjust]
|
||||
red,green,blue=0,0,0
|
||||
[/color_adjust]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
#ifdef EASY
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian) 26 21 () ( _ "Guardian Phoenix")}
|
||||
[+unit]
|
||||
role=Guardian Phoenix
|
||||
[/unit]
|
||||
#endif
|
||||
|
||||
#ifdef NORMAL
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian2) 26 21 () ( _ "Guardian Phoenix")}
|
||||
[+unit]
|
||||
role=Guardian Phoenix
|
||||
[/unit]
|
||||
#endif
|
||||
|
||||
#ifdef HARD
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 26 21 () ( _ "Guardian Phoenix")}
|
||||
[+unit]
|
||||
role=Guardian Phoenix
|
||||
[/unit]
|
||||
#endif
|
||||
|
||||
[scroll_to_unit]
|
||||
x,y=42,90
|
||||
[/scroll_to_unit]
|
||||
|
||||
[delay]
|
||||
time=250
|
||||
[/delay]
|
||||
|
||||
[set_variable]
|
||||
name=summon_flame
|
||||
value=0
|
||||
[/set_variable]
|
||||
|
||||
[message]
|
||||
side=1
|
||||
x,y=16-29,11-23
|
||||
message= _ "That thing just won’t stay dead!"
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
# when fire guardian dies, switch summon_flame back to 1
|
||||
# and reset flame_counter back to 0
|
||||
|
||||
[event]
|
||||
name=die
|
||||
first_time_only=no
|
||||
|
@ -1223,25 +1087,14 @@ _ "These undead trolls fight again in death as they did in life, except this tim
|
|||
[filter]
|
||||
role=Guardian Phoenix
|
||||
[/filter]
|
||||
|
||||
[if]
|
||||
[filter_condition]
|
||||
[variable]
|
||||
name=summon_flame
|
||||
less_than=3
|
||||
name=summon_flame_guardian
|
||||
boolean_equals=yes
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=summon_flame
|
||||
value=1
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=flame_counter
|
||||
value=0
|
||||
[/set_variable]
|
||||
[/then]
|
||||
[/if]
|
||||
{VARIABLE flame_guardian_turn_counter {ON_DIFFICULTY 5 5 4}}
|
||||
[/event]
|
||||
|
||||
# Troll shamans raise more Fire Guardians out of the lava
|
||||
|
@ -1258,38 +1111,35 @@ _ "These undead trolls fight again in death as they did in life, except this tim
|
|||
y=18-25
|
||||
side=1
|
||||
[/filter]
|
||||
|
||||
[if]
|
||||
[filter_condition]
|
||||
[variable]
|
||||
name=summon_flame
|
||||
numerical_not_equals=3
|
||||
name=summon_flame_guardian
|
||||
boolean_equals=yes
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
[then]
|
||||
[message]
|
||||
role=Troll High Shaman
|
||||
message= _ "Arise, hallowed guardians, and destroy them!"
|
||||
[/message]
|
||||
[message]
|
||||
role=Troll High Shaman
|
||||
message= _ "Arise, hallowed guardians, and destroy them!"
|
||||
[/message]
|
||||
|
||||
[scroll_to]
|
||||
x,y=26,17
|
||||
[/scroll_to]
|
||||
[scroll_to]
|
||||
x,y=26,17
|
||||
[/scroll_to]
|
||||
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian2) 26 17 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian2) 26 18 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian2) 26 17 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian2) 26 18 () ( _ "Fire Guardian")}
|
||||
|
||||
#ifdef HARD
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 25 18 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 25 18 () ( _ "Fire Guardian")}
|
||||
#endif
|
||||
|
||||
{CHECK_EXPLORER}
|
||||
[message]
|
||||
speaker=$explorer.id
|
||||
message= _ "Look, more fire guardians!"
|
||||
[/message]
|
||||
{CLEAR_VARIABLE explorer}
|
||||
[/then]
|
||||
[/if]
|
||||
{CHECK_EXPLORER}
|
||||
[message]
|
||||
speaker=$explorer.id
|
||||
message= _ "Look, more fire guardians!"
|
||||
[/message]
|
||||
{CLEAR_VARIABLE explorer}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -1300,37 +1150,34 @@ _ "These undead trolls fight again in death as they did in life, except this tim
|
|||
y=25-26
|
||||
side=1
|
||||
[/filter]
|
||||
|
||||
[if]
|
||||
[filter_condition]
|
||||
[variable]
|
||||
name=summon_flame
|
||||
numerical_not_equals=3
|
||||
name=summon_flame_guardian
|
||||
boolean_equals=yes
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
[then]
|
||||
[message]
|
||||
role=Troll High Shaman
|
||||
message= _ "Arise and attack them now, while they are vulnerable!"
|
||||
[/message]
|
||||
[message]
|
||||
role=Troll High Shaman
|
||||
message= _ "Arise and attack them now, while they are vulnerable!"
|
||||
[/message]
|
||||
|
||||
[scroll_to]
|
||||
x,y=42,91
|
||||
[/scroll_to]
|
||||
[scroll_to]
|
||||
x,y=42,91
|
||||
[/scroll_to]
|
||||
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 26 22 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 27 22 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 26 22 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 27 22 () ( _ "Fire Guardian")}
|
||||
#ifdef HARD
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 26 21 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 26 21 () ( _ "Fire Guardian")}
|
||||
#endif
|
||||
|
||||
{CHECK_EXPLORER}
|
||||
[message]
|
||||
speaker=$explorer.id
|
||||
message= _ "Oh great, even more fire guardians. When I get through this inferno I’m going to kill those trolls."
|
||||
[/message]
|
||||
{CLEAR_VARIABLE explorer}
|
||||
[/then]
|
||||
[/if]
|
||||
{CHECK_EXPLORER}
|
||||
[message]
|
||||
speaker=$explorer.id
|
||||
message= _ "Oh great, even more fire guardians. When I get through this inferno I’m going to kill those trolls."
|
||||
[/message]
|
||||
{CLEAR_VARIABLE explorer}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -1341,36 +1188,33 @@ _ "These undead trolls fight again in death as they did in life, except this tim
|
|||
y=17-24
|
||||
side=1
|
||||
[/filter]
|
||||
|
||||
[if]
|
||||
[filter_condition]
|
||||
[variable]
|
||||
name=summon_flame
|
||||
numerical_not_equals=3
|
||||
name=summon_flame_guardian
|
||||
boolean_equals=yes
|
||||
[/variable]
|
||||
[/filter_condition]
|
||||
|
||||
[then]
|
||||
[message]
|
||||
role=Troll High Shaman
|
||||
message= _ "They must not be allowed to cross to the other side! Kill them!"
|
||||
[/message]
|
||||
[message]
|
||||
role=Troll High Shaman
|
||||
message= _ "They must not be allowed to cross to the other side! Kill them!"
|
||||
[/message]
|
||||
|
||||
[scroll_to]
|
||||
x,y=22,16
|
||||
[/scroll_to]
|
||||
[scroll_to]
|
||||
x,y=22,16
|
||||
[/scroll_to]
|
||||
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 23 17 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 22 16 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 23 17 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 22 16 () ( _ "Fire Guardian")}
|
||||
#ifdef HARD
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 22 17 () ( _ "Fire Guardian")}
|
||||
{NAMED_NOTRAIT_UNIT 5 (Fire Guardian3) 22 17 () ( _ "Fire Guardian")}
|
||||
#endif
|
||||
{CHECK_EXPLORER}
|
||||
[message]
|
||||
speaker=$explorer.id
|
||||
message= _ "How surprising, more fire guardians. I’m going to be really glad to get out of this cavern."
|
||||
[/message]
|
||||
{CLEAR_VARIABLE explorer}
|
||||
[/then]
|
||||
[/if]
|
||||
{CHECK_EXPLORER}
|
||||
[message]
|
||||
speaker=$explorer.id
|
||||
message= _ "How surprising, more fire guardians. I’m going to be really glad to get out of this cavern."
|
||||
[/message]
|
||||
{CLEAR_VARIABLE explorer}
|
||||
[/event]
|
||||
|
||||
#at end of lava cavern, trolls come alive
|
||||
|
@ -1383,10 +1227,7 @@ _ "These undead trolls fight again in death as they did in life, except this tim
|
|||
side=1
|
||||
[/filter]
|
||||
|
||||
[set_variable]
|
||||
name=summon_flame
|
||||
value=3
|
||||
[/set_variable]
|
||||
{VARIABLE summon_flame_guardian no}
|
||||
|
||||
[message]
|
||||
x,y=18,23
|
||||
|
@ -1948,8 +1789,8 @@ _ "These undead trolls fight again in death as they did in life, except this tim
|
|||
{CLEAR_VARIABLE i}
|
||||
|
||||
{CLEAR_VARIABLE heat_damage}
|
||||
{CLEAR_VARIABLE summon_flame}
|
||||
{CLEAR_VARIABLE flame_counter}
|
||||
{CLEAR_VARIABLE summon_flame_guardian}
|
||||
{CLEAR_VARIABLE flame_guardian_turn_counter}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
|
|
@ -593,14 +593,6 @@
|
|||
side=1
|
||||
[/filter]
|
||||
|
||||
#[filter]
|
||||
# id=Dwarf Sergeant
|
||||
#[/filter]
|
||||
|
||||
#[filter_second]
|
||||
# side=1
|
||||
#[/filter_second]
|
||||
|
||||
# make sure the sergeant is not facing the player's unit
|
||||
[modify_unit]
|
||||
[filter]
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
x,y=10,11
|
||||
[/recall]
|
||||
|
||||
#recall other dwarves
|
||||
#recall other trolls
|
||||
[recall]
|
||||
id=Grog
|
||||
x,y=8,12
|
||||
|
|
|
@ -2899,47 +2899,32 @@
|
|||
side=1
|
||||
variable=gold_amount
|
||||
[/store_gold]
|
||||
{VARIABLE min_gold {ON_DIFFICULTY 125 100 100}}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=gold_amount
|
||||
greater_than=0
|
||||
[/variable]
|
||||
[then]
|
||||
[set_variable]
|
||||
name=gold_amount
|
||||
multiply=-0.6
|
||||
[/set_variable]
|
||||
[set_variable]
|
||||
name=gold_amount
|
||||
round=floor
|
||||
[/set_variable]
|
||||
{VARIABLE profit "$(max([50, $min_gold - $($gold_amount * 6/10)]))"}
|
||||
|
||||
[gold]
|
||||
side=1
|
||||
amount=$profit
|
||||
[/gold]
|
||||
|
||||
{CLEAR_VARIABLE profit}
|
||||
[/then]
|
||||
[else]
|
||||
[set_variable]
|
||||
name=gold_amount
|
||||
multiply=-1
|
||||
[/set_variable]
|
||||
[modify_side]
|
||||
side=1
|
||||
gold=$min_gold
|
||||
[/modify_side]
|
||||
[/else]
|
||||
[/if]
|
||||
[set_variable]
|
||||
name=gold_amount
|
||||
add={ON_DIFFICULTY 125 100 100}
|
||||
[/set_variable]
|
||||
[if]
|
||||
[variable]
|
||||
name=gold_amount
|
||||
less_than=50
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE gold_amount 50}
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
[gold]
|
||||
amount=$gold_amount
|
||||
side=1
|
||||
[/gold]
|
||||
{CLEAR_VARIABLE gold_amount}
|
||||
{CLEAR_VARIABLE gold_amount,min_gold}
|
||||
[/event]
|
||||
|
||||
# Event 15: Elves step out into the daylight, Eloh appears
|
||||
|
|
|
@ -671,17 +671,12 @@
|
|||
speaker=Darius
|
||||
message= _ "Curse them! The elves have freed the merfolk. We will be have our vengeance. Keep fighting, and execute plan C!"
|
||||
[/message]
|
||||
[fire_event]
|
||||
name=retreat_darius_alive
|
||||
[/fire_event]
|
||||
[/then]
|
||||
[else]
|
||||
[fire_event]
|
||||
name=retreat_darius_dead
|
||||
[/fire_event]
|
||||
[/else]
|
||||
[/if]
|
||||
|
||||
[fire_event]
|
||||
name=human_retreat
|
||||
[/fire_event]
|
||||
[fire_event]
|
||||
name=eloh_appears
|
||||
[/fire_event]
|
||||
|
@ -1493,18 +1488,12 @@
|
|||
# wmllint: local spelling stinkin'
|
||||
message= _ "The stinkin’ elves have freed some of the merfolk. And still they fight on. Execute plan B. And kill those merfolk!"
|
||||
[/message]
|
||||
|
||||
[fire_event]
|
||||
name=retreat_darius_alive
|
||||
[/fire_event]
|
||||
[/then]
|
||||
[else]
|
||||
[fire_event]
|
||||
name=retreat_darius_dead
|
||||
[/fire_event]
|
||||
[/else]
|
||||
[/if]
|
||||
|
||||
[fire_event]
|
||||
name=human_retreat
|
||||
[/fire_event]
|
||||
[fire_event]
|
||||
name=eloh_appears
|
||||
[/fire_event]
|
||||
|
@ -1513,20 +1502,59 @@
|
|||
[/event]
|
||||
|
||||
[event]
|
||||
name=retreat_darius_alive
|
||||
name=human_retreat
|
||||
|
||||
[message]
|
||||
speaker=Darius
|
||||
message= _ "I must go report to the Iron Council. Keep fighting!"
|
||||
[/message]
|
||||
[store_unit]
|
||||
[filter]
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Darius
|
||||
[/filter]
|
||||
[/have_unit]
|
||||
[then]
|
||||
[message]
|
||||
speaker=Darius
|
||||
message= _ "I must go report to the Iron Council. Keep fighting!"
|
||||
[/message]
|
||||
[store_unit]
|
||||
[filter]
|
||||
id=Darius
|
||||
[/filter]
|
||||
|
||||
kill=yes
|
||||
variable=stored_Darius
|
||||
[/store_unit]
|
||||
kill=yes
|
||||
variable=stored_Darius
|
||||
[/store_unit]
|
||||
[/then]
|
||||
[else]
|
||||
# introduce new necromancer triad member
|
||||
|
||||
[remove_shroud]
|
||||
x=13-17
|
||||
y=26-30
|
||||
side=1
|
||||
[/remove_shroud]
|
||||
|
||||
{NAMED_NOTRAIT_UNIT 4 (Necromancer) 15 28 (Hekuba) ( _ "Hekuba")}
|
||||
[+unit]
|
||||
random_gender=no
|
||||
[/unit]
|
||||
|
||||
[message]
|
||||
speaker=Hekuba
|
||||
message= _ "Curse them! The elves have stolen our offering to the Lady. We will have our vengeance. Keep fighting and execute plan C!"
|
||||
[/message]
|
||||
[kill]
|
||||
id=Hekuba
|
||||
animate=no
|
||||
fire_event=no
|
||||
[/kill]
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "Who was that?"
|
||||
[/message]
|
||||
[message]
|
||||
race=merman
|
||||
message= _ "That was one of the Iron Triad. Rarely do they leave their sanctuary. They prefer to let their minions do the dirty work."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Zelgant
|
||||
|
@ -1554,80 +1582,22 @@
|
|||
[message]
|
||||
speaker=Alastra
|
||||
message= _ "I must leave for now, fight on in my stead."
|
||||
[show_if]
|
||||
[variable]
|
||||
name=stored_Darius.length
|
||||
equals=1
|
||||
[/variable]
|
||||
[/show_if]
|
||||
[/message]
|
||||
[store_unit]
|
||||
[filter]
|
||||
id=Alastra
|
||||
[/filter]
|
||||
|
||||
kill=yes
|
||||
variable=stored_Alastra
|
||||
[/store_unit]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=retreat_darius_dead
|
||||
|
||||
# introduce new necromancer triad member
|
||||
|
||||
[remove_shroud]
|
||||
x=13-17
|
||||
y=26-30
|
||||
side=1
|
||||
[/remove_shroud]
|
||||
|
||||
{NAMED_NOTRAIT_UNIT 4 (Necromancer) 15 28 (Hekuba) ( _ "Hekuba")}
|
||||
[+unit]
|
||||
random_gender=no
|
||||
[/unit]
|
||||
|
||||
[message]
|
||||
speaker=Hekuba
|
||||
message= _ "Curse them! The elves have stolen our offering to the Lady. We will have our vengeance. Keep fighting and execute plan C!"
|
||||
[/message]
|
||||
[kill]
|
||||
id=Hekuba
|
||||
animate=no
|
||||
fire_event=no
|
||||
[/kill]
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "Who was that?"
|
||||
[/message]
|
||||
[message]
|
||||
race=merman
|
||||
message= _ "That was one of the Iron Triad. Rarely do they leave their sanctuary. They prefer to let their minions do the dirty work."
|
||||
[/message]
|
||||
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Zelgant
|
||||
[/have_unit]
|
||||
[then]
|
||||
[message]
|
||||
speaker=Zelgant
|
||||
message= _ "I go to marshal reinforcements. Do not lose heart, we will crush these puny elves."
|
||||
[/message]
|
||||
[store_unit]
|
||||
[filter]
|
||||
id=Zelgant
|
||||
[/filter]
|
||||
|
||||
kill=yes
|
||||
variable=stored_Zelgant
|
||||
[/store_unit]
|
||||
[/then]
|
||||
[/if]
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Alastra
|
||||
[/have_unit]
|
||||
[then]
|
||||
[message]
|
||||
speaker=Alastra
|
||||
message= _ "I must go report to the Iron Council. Keep fighting!"
|
||||
[show_if]
|
||||
[variable]
|
||||
name=stored_Darius.length
|
||||
equals=0
|
||||
[/variable]
|
||||
[/show_if]
|
||||
[/message]
|
||||
[store_unit]
|
||||
[filter]
|
||||
|
@ -2170,6 +2140,162 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# Event 8: Meeting and Death of Eloh
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x=51-55
|
||||
y=14-18
|
||||
side=1
|
||||
[/filter]
|
||||
[filter_condition]
|
||||
[have_unit]
|
||||
id=Eloh
|
||||
[/have_unit]
|
||||
[/filter_condition]
|
||||
|
||||
[message]
|
||||
speaker=Eloh
|
||||
message= _ "You think you can strike me down. This is just a small part of my true power."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Small part or no, if it is mortally possible to destroy you, I shall. Your hands are stained in our blood; you are not our god."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# Eloh’s death frees Zhul from her stasis
|
||||
|
||||
[event]
|
||||
name=last breath
|
||||
[filter]
|
||||
id=Eloh
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
speaker=Eloh
|
||||
message= _ "Don’t worry Kaleh, we will see each other again... I promise."
|
||||
[/message]
|
||||
[kill]
|
||||
id=Eloh
|
||||
fire_event=yes # Needed to off Kromph properly
|
||||
[/kill]
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "She freaks me out, but at least it seems that she can be destroyed."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "That was just an apparition, but if we meet again I will make her pay for all that she has done."
|
||||
[/message]
|
||||
|
||||
[scroll_to_unit]
|
||||
id=Zhul
|
||||
[/scroll_to_unit]
|
||||
[unpetrify]
|
||||
id=Zhul
|
||||
[/unpetrify]
|
||||
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "I’m sorry, Kaleh. My faith clouded my reason. But I wanted so very much to believe."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "You do not need to apologize. What you did was very brave. I wish to... to whatever god still watches over us, that this bloodshed was not necessary. But I could not let half my people be co-opted by that thing. As horrible as it sounds, even death is a better fate."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "So when you had the strange encounter with that human Durstrag and his guards, just after we escaped the caves, you were talking to Eloh, or whatever she is?"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Yes, she appeared only to me and demanded that I surrender to the humans. When I refused she threatened me, saying she would kill me if I refused. That’s when I really started to get suspicious."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "It is clear that that thing was not our god. I do not know what it was, but I have to keep believing that Eloh is out there somewhere. Without our faith, what do we have left?"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "We have each other."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "That’s not enough. Look, you’re a wonderful girl Nym, and Kaleh, you’ve shown yourself to be a great leader, but our actions have to mean something more than just our day-to-day survival. There has to be a higher purpose, Eloh must have some sort of plan for us. We have to keep believing."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Peace, Zhul, we can discuss theology later. We still have work to do."
|
||||
[/message]
|
||||
|
||||
[fire_event]
|
||||
name=tanstafaal_and_eloh_gone
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
# Event 9: Meeting and Death of Tanstafaal
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
|
||||
[filter]
|
||||
side=1
|
||||
[filter_adjacent]
|
||||
id=Tanstafaal
|
||||
[/filter_adjacent]
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
speaker=Tanstafaal
|
||||
message= _ "You cannot defeat me, I am protected by the goddess now. Finally, Kaleh, I will show everyone who is stronger!"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Oh Tanstafaal, I pity you. This battle was never about you."
|
||||
[/message]
|
||||
|
||||
[allow_undo]
|
||||
[/allow_undo]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=last breath
|
||||
[filter]
|
||||
id=Tanstafaal
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "No, do not kill him. He may deserve it, but he will not die at my hands."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Tanstafaal
|
||||
message= _ "Never Kaleh. I will not be your lackey again!"
|
||||
[/message]
|
||||
[kill]
|
||||
id=Tanstafaal
|
||||
animate=yes
|
||||
fire_event=no
|
||||
[/kill]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Why did he have to kill himself? Oh, poor misguided Tanstafaal. We have lost too many elves today."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "Do not blame yourself too much, it is Eloh who persuaded him to rebel."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Yes, she too will pay for her part in all of this."
|
||||
[/message]
|
||||
[fire_event]
|
||||
name=tanstafaal_and_eloh_gone
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
# event: Grand Appearance of the Iron Council
|
||||
# which happens when both Tanstafaal and Eloh die
|
||||
|
||||
|
@ -2582,162 +2708,6 @@
|
|||
[/event]
|
||||
[/event]
|
||||
|
||||
# Event 8: Meeting and Death of Eloh
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x=51-55
|
||||
y=14-18
|
||||
side=1
|
||||
[/filter]
|
||||
[filter_condition]
|
||||
[have_unit]
|
||||
id=Eloh
|
||||
[/have_unit]
|
||||
[/filter_condition]
|
||||
|
||||
[message]
|
||||
speaker=Eloh
|
||||
message= _ "You think you can strike me down. This is just a small part of my true power."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Small part or no, if it is mortally possible to destroy you, I shall. Your hands are stained in our blood; you are not our god."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# Eloh’s death frees Zhul from her stasis
|
||||
|
||||
[event]
|
||||
name=last breath
|
||||
[filter]
|
||||
id=Eloh
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
speaker=Eloh
|
||||
message= _ "Don’t worry Kaleh, we will see each other again... I promise."
|
||||
[/message]
|
||||
[kill]
|
||||
id=Eloh
|
||||
fire_event=yes # Needed to off Kromph properly
|
||||
[/kill]
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "She freaks me out, but at least it seems that she can be destroyed."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "That was just an apparition, but if we meet again I will make her pay for all that she has done."
|
||||
[/message]
|
||||
|
||||
[scroll_to_unit]
|
||||
id=Zhul
|
||||
[/scroll_to_unit]
|
||||
[unpetrify]
|
||||
id=Zhul
|
||||
[/unpetrify]
|
||||
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "I’m sorry, Kaleh. My faith clouded my reason. But I wanted so very much to believe."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "You do not need to apologize. What you did was very brave. I wish to... to whatever god still watches over us, that this bloodshed was not necessary. But I could not let half my people be co-opted by that thing. As horrible as it sounds, even death is a better fate."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "So when you had the strange encounter with that human Durstrag and his guards, just after we escaped the caves, you were talking to Eloh, or whatever she is?"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Yes, she appeared only to me and demanded that I surrender to the humans. When I refused she threatened me, saying she would kill me if I refused. That’s when I really started to get suspicious."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "It is clear that that thing was not our god. I do not know what it was, but I have to keep believing that Eloh is out there somewhere. Without our faith, what do we have left?"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "We have each other."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Zhul
|
||||
message= _ "That’s not enough. Look, you’re a wonderful girl Nym, and Kaleh, you’ve shown yourself to be a great leader, but our actions have to mean something more than just our day-to-day survival. There has to be a higher purpose, Eloh must have some sort of plan for us. We have to keep believing."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Peace, Zhul, we can discuss theology later. We still have work to do."
|
||||
[/message]
|
||||
|
||||
[fire_event]
|
||||
name=tanstafaal_and_eloh_gone
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
# Event 9: Meeting and Death of Tanstafaal
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
|
||||
[filter]
|
||||
side=1
|
||||
[filter_adjacent]
|
||||
id=Tanstafaal
|
||||
[/filter_adjacent]
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
speaker=Tanstafaal
|
||||
message= _ "You cannot defeat me, I am protected by the goddess now. Finally, Kaleh, I will show everyone who is stronger!"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Oh Tanstafaal, I pity you. This battle was never about you."
|
||||
[/message]
|
||||
|
||||
[allow_undo]
|
||||
[/allow_undo]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=last breath
|
||||
[filter]
|
||||
id=Tanstafaal
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "No, do not kill him. He may deserve it, but he will not die at my hands."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Tanstafaal
|
||||
message= _ "Never Kaleh. I will not be your lackey again!"
|
||||
[/message]
|
||||
[kill]
|
||||
id=Tanstafaal
|
||||
animate=yes
|
||||
fire_event=no
|
||||
[/kill]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Why did he have to kill himself? Oh, poor misguided Tanstafaal. We have lost too many elves today."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Nym
|
||||
message= _ "Do not blame yourself too much, it is Eloh who persuaded him to rebel."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Yes, she too will pay for her part in all of this."
|
||||
[/message]
|
||||
[fire_event]
|
||||
name=tanstafaal_and_eloh_gone
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
# Event 10: time over event
|
||||
|
||||
[event]
|
||||
|
|
|
@ -1008,20 +1008,15 @@
|
|||
name=new turn
|
||||
first_time_only=no
|
||||
|
||||
{VARIABLE i 0}
|
||||
[while]
|
||||
[variable]
|
||||
name=i
|
||||
less_than=$number_minions_to_spawn
|
||||
[/variable]
|
||||
[repeat]
|
||||
times=$number_minions_to_spawn
|
||||
|
||||
[do]
|
||||
[fire_event]
|
||||
name=create_minion
|
||||
[/fire_event]
|
||||
{VARIABLE_OP i add 1}
|
||||
[/do]
|
||||
[/while]
|
||||
{CLEAR_VARIABLE i}
|
||||
[/repeat]
|
||||
[/event]
|
||||
|
||||
# Event 3: Central Body heals fully each turn
|
||||
|
@ -1058,13 +1053,6 @@
|
|||
value=$stored_alien.hitpoints
|
||||
[/set_variable]
|
||||
|
||||
# [modify_unit]
|
||||
# [filter]
|
||||
# type=Central Body
|
||||
# [/filter]
|
||||
# hitpoints=$this_unit.max_hitpoints
|
||||
# [/modify_unit]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
|
|
Loading…
Add table
Reference in a new issue