Merge pull request #3734 from DisherProject/wesnoth-UtBS

UtBS: code refactor
This commit is contained in:
nemaara 2019-04-01 18:14:10 -04:00 committed by GitHub
commit 3ecc6a14e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 1467 additions and 1845 deletions

View file

@ -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 dont know who you are, and we dont 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]

View file

@ -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

View file

@ -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 didnt 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 didnt think you could beat the trolls."
[/message]
[message]
speaker=Kaleh
message= _ "Where did you come from?"
[/message]
[message]
speaker=Grimnir
message= _ "Dont 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. Were 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 didnt 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 youre ready Ill show you the way. Its 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 youll 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 couldnt 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 didnt 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 didnt think you could beat the trolls."
[/message]
[message]
speaker=Kaleh
message= _ "Where did you come from?"
[/message]
[message]
speaker=Grimnir
message= _ "Dont 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. Were 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 didnt 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 youre ready Ill show you the way. Its 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

View file

@ -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 doesnt 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 doesnt look good. The last thing we need in here is even more fire."
message= _ "That thing just wont 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 wont 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 Im 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 Im 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. Im 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. Im 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]

View file

@ -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]

View file

@ -99,7 +99,7 @@
x,y=10,11
[/recall]
#recall other dwarves
#recall other trolls
[recall]
id=Grog
x,y=8,12

View file

@ -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

View file

@ -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]
# Elohs death frees Zhul from her stasis
[event]
name=last breath
[filter]
id=Eloh
[/filter]
[message]
speaker=Eloh
message= _ "Dont 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= _ "Im 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. Thats 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= _ "Thats not enough. Look, youre a wonderful girl Nym, and Kaleh, youve 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]
# Elohs death frees Zhul from her stasis
[event]
name=last breath
[filter]
id=Eloh
[/filter]
[message]
speaker=Eloh
message= _ "Dont 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= _ "Im 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. Thats 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= _ "Thats not enough. Look, youre a wonderful girl Nym, and Kaleh, youve 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]

View file

@ -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