wmlindent strikes again.
This commit is contained in:
parent
36f2b97cbf
commit
364a4decbd
150 changed files with 6158 additions and 6250 deletions
|
@ -111,28 +111,28 @@
|
|||
tip_width=495
|
||||
tip_padding=4
|
||||
#else
|
||||
#ifdef SMALL_GUI
|
||||
buttons_x=760
|
||||
buttons_y=210
|
||||
buttons_padding=20
|
||||
logo_x=85
|
||||
logo_y=20
|
||||
tip_x=30
|
||||
#does this option do anything at all?!?
|
||||
tip_y=500
|
||||
tip_width=620
|
||||
tip_padding=20
|
||||
#else
|
||||
buttons_x=760
|
||||
buttons_y=330
|
||||
buttons_padding=20
|
||||
logo_x=292
|
||||
logo_y=120
|
||||
tip_x=100
|
||||
tip_y=500
|
||||
tip_width=495
|
||||
tip_padding=20
|
||||
#endif
|
||||
#ifdef SMALL_GUI
|
||||
buttons_x=760
|
||||
buttons_y=210
|
||||
buttons_padding=20
|
||||
logo_x=85
|
||||
logo_y=20
|
||||
tip_x=30
|
||||
#does this option do anything at all?!?
|
||||
tip_y=500
|
||||
tip_width=620
|
||||
tip_padding=20
|
||||
#else
|
||||
buttons_x=760
|
||||
buttons_y=330
|
||||
buttons_padding=20
|
||||
logo_x=292
|
||||
logo_y=120
|
||||
tip_x=100
|
||||
tip_y=500
|
||||
tip_width=495
|
||||
tip_padding=20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
lobby_refresh=2000
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#textdomain wesnoth-did
|
||||
# All of the story parts and dialogue are stored here as macros. This greatly shortens the scenario files, and makes editing the storyline for tone and consistency much easier.
|
||||
|
||||
|
||||
# ----- Saving Parthyn ----------------------------------------------------
|
||||
#define STORY_SAVING_HALAL
|
||||
[story]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "Saving Parthyn"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/Saving_Parthyn.map}"
|
||||
turns=15
|
||||
|
||||
|
||||
{SCENARIO_MUSIC northerners.ogg}
|
||||
|
||||
victory_when_enemies_defeated=no
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "Peaceful Valley"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/Peaceful_valley.map}"
|
||||
{TURNS 29 26 23}
|
||||
|
||||
|
||||
{SCENARIO_MUSIC wanderer.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC knolls.ogg}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "A Haunting in Winter"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/A_haunting_in_winter.map}"
|
||||
{TURNS 36 34 32}
|
||||
|
||||
|
||||
{SCENARIO_MUSIC knalgan_theme.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC underground.ogg}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "Beginning of the Revenge"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/Revenge.map}"
|
||||
turns=36
|
||||
|
||||
|
||||
{SCENARIO_MUSIC wanderer.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC elvish-theme.ogg}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "Orc War"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/Orc_war.map}"
|
||||
turns=30
|
||||
|
||||
|
||||
{SCENARIO_MUSIC battle.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC the_city_falls.ogg}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "Return to Parthyn"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/Return_to_Parthyn.map}"
|
||||
turns=-1
|
||||
|
||||
|
||||
{SCENARIO_MUSIC breaking_the_chains.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC knolls.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC elvish-theme.ogg}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "A Small Favor"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/A_small_favor.map}"
|
||||
{TURNS 28 26 22}
|
||||
|
||||
|
||||
{SCENARIO_MUSIC underground.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC wanderer.ogg}
|
||||
|
||||
|
@ -74,7 +74,7 @@
|
|||
[event]
|
||||
name=prestart
|
||||
|
||||
# wmllint: recognize Darken Volk
|
||||
# wmllint: recognize Darken Volk
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "A Small Favor - Part 2"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/A_small_favor2.map}"
|
||||
{TURNS 30 27 25}
|
||||
|
||||
|
||||
{SCENARIO_MUSIC loyalists.ogg}
|
||||
|
||||
victory_when_enemies_defeated=no
|
||||
|
@ -136,7 +136,7 @@
|
|||
{GEN_GUARDIAN (Great Mage) (Lord Karres) (_ "Lord Karres") 2 $actualStart.x $actualStart.y}
|
||||
{CLEAR_VARIABLE actualStart}
|
||||
|
||||
# wmllint: recognize Lord Karres
|
||||
# wmllint: recognize Lord Karres
|
||||
|
||||
{VARIABLE_OP i random (0..2)}
|
||||
{IF_VAR i numerical_equals 0 (
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "A Small Favor - Part 3"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/A_small_favor3.map}"
|
||||
{TURNS 30 27 25}
|
||||
|
||||
|
||||
{SCENARIO_MUSIC underground.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC loyalists.ogg}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "Alone at Last"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/Alone_at_last.map}"
|
||||
turns=-1
|
||||
|
||||
|
||||
{SCENARIO_MUSIC breaking_the_chains.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC vengeful.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC the_city_falls.ogg}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
name=_ "Descent into Darkness"
|
||||
map_data="{campaigns/Descent_Into_Darkness/maps/Descent_into_darkness.map}"
|
||||
turns=-1
|
||||
|
||||
|
||||
{SCENARIO_MUSIC silence.ogg}
|
||||
|
||||
victory_when_enemies_defeated=no
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
canrecruit=yes
|
||||
[/unit]
|
||||
{ALLOW_RECRUIT (Spearman,Swordsman,Pikeman,Bowman,Longbowman,Heavy Infantry,Shock Trooper,Mage,Red Mage,White Mage,Horseman,Knight,Lancer)}
|
||||
|
||||
|
||||
[music]
|
||||
name=loyalists.ogg
|
||||
immediate=yes
|
||||
|
@ -108,7 +108,7 @@
|
|||
canrecruit=yes
|
||||
[/unit]
|
||||
{ALLOW_RECRUIT (Thug,Bandit,Footpad,Outlaw,Poacher,Trapper,Thief,Rogue)}
|
||||
|
||||
|
||||
[music]
|
||||
name=battle.ogg
|
||||
append=no
|
||||
|
@ -130,7 +130,7 @@
|
|||
canrecruit=yes
|
||||
[/unit]
|
||||
{ALLOW_RECRUIT (Elvish Figher,Elvish Hero,Elvish Captain,Elvish Archer,Elvish Ranger,Elvish Marksman,Elvish Shaman,Elvish Sorceress,Elvish Druid,Elvish Scout,Elvish Rider,Wose)}
|
||||
|
||||
|
||||
[music]
|
||||
name=knolls.ogg
|
||||
immediate=yes
|
||||
|
@ -157,7 +157,7 @@
|
|||
canrecruit=yes
|
||||
[/unit]
|
||||
{ALLOW_RECRUIT (Dwarvish Figher,Dwarvish Steelclad,Dwarvish Thunderer,Dwarvish Thunderguard,Dwarvish Stalwart,Dwarvish Guardsman,Dwarvish Ulfserker,Dwarvish Berserker,Gryphon Rider,Gryphon Master)}
|
||||
|
||||
|
||||
[music]
|
||||
name=battle.ogg
|
||||
immediate=yes
|
||||
|
@ -184,7 +184,7 @@
|
|||
canrecruit=yes
|
||||
[/unit]
|
||||
{ALLOW_RECRUIT (Orcish Warrior,Orcish Slayer,Orcish Crossbowman,Troll,Troll Rocklobber)}
|
||||
|
||||
|
||||
[music]
|
||||
name=northerners.ogg
|
||||
immediate=yes
|
||||
|
@ -251,7 +251,7 @@
|
|||
[/event]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
|
||||
# play only sad music after a few repetitions
|
||||
[if]
|
||||
[variable]
|
||||
|
|
|
@ -109,8 +109,8 @@
|
|||
[event]
|
||||
name=prestart
|
||||
|
||||
# {SCATTER_IMAGE (terrain=Gg) 12 scenery/pine1.png}
|
||||
{PLACE_IMAGE scenery/rock3.png 25 30}
|
||||
# {SCATTER_IMAGE (terrain=Gg) 12 scenery/pine1.png}
|
||||
{PLACE_IMAGE scenery/rock3.png 25 30}
|
||||
|
||||
[store_unit]
|
||||
variable=konrad_store
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
|
||||
{BIGMAP_VALLEY_OF_DEATH}
|
||||
|
||||
|
||||
[side]
|
||||
type=Commander
|
||||
description=Konrad
|
||||
|
|
|
@ -116,7 +116,7 @@
|
|||
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
|
||||
{PLACE_IMAGE scenery/icepack-1.png 22 7}
|
||||
{PLACE_IMAGE scenery/snowbits.png 32 14}
|
||||
[role]
|
||||
|
|
|
@ -702,7 +702,7 @@
|
|||
[/message]
|
||||
|
||||
{LOYAL_UNIT 2 (Princess) 8 44 (Li'sar) ( _ "Li'sar")}
|
||||
# wmllint: recognize Li'sar
|
||||
# wmllint: recognize Li'sar
|
||||
{LISAR_GUARD_DOORS}
|
||||
{LISAR_GUARD_DOORS}
|
||||
{LISAR_GUARD_DOORS}
|
||||
|
|
|
@ -305,7 +305,7 @@
|
|||
{GUARDIAN 3 (Swordsman) 64 38}
|
||||
{GUARDIAN 3 (Royal Guard) 63 34}
|
||||
{GUARDIAN 3 (Sergeant) 64 34}
|
||||
#undef GUARDIAN
|
||||
#undef GUARDIAN
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
|
|
@ -136,10 +136,10 @@
|
|||
name=scepter of fire
|
||||
[/attack_filter]
|
||||
{MISSILE_FRAME_FIREBALL}
|
||||
start_time=-550
|
||||
start_time=-550
|
||||
|
||||
[frame]
|
||||
duration=200
|
||||
duration=200
|
||||
image="human-battleprincess-scepter-leading.png"
|
||||
sound=fire.wav
|
||||
[/frame]
|
||||
|
|
|
@ -215,10 +215,10 @@
|
|||
name=scepter of fire
|
||||
[/attack_filter]
|
||||
{MISSILE_FRAME_FIREBALL}
|
||||
start_time=-550
|
||||
start_time=-550
|
||||
[frame]
|
||||
sound=fire.wav
|
||||
duration=200
|
||||
duration=200
|
||||
image="konrad-commander-scepter-leading.png"
|
||||
[/frame]
|
||||
[/attack_anim]
|
||||
|
|
|
@ -72,11 +72,11 @@
|
|||
name=scepter of fire
|
||||
[/attack_filter]
|
||||
{MISSILE_FRAME_FIREBALL}
|
||||
start_time=-550
|
||||
start_time=-550
|
||||
|
||||
[frame]
|
||||
sound=fire.wav
|
||||
duration=200
|
||||
duration=200
|
||||
[/frame]
|
||||
[/attack_anim]
|
||||
[attack_anim]
|
||||
|
|
|
@ -244,9 +244,9 @@
|
|||
name=scepter of fire
|
||||
[/attack_filter]
|
||||
{MISSILE_FRAME_FIREBALL}
|
||||
start_time=-550
|
||||
start_time=-550
|
||||
[frame]
|
||||
duration=200
|
||||
duration=200
|
||||
sound=fire.wav
|
||||
image="konrad-lord-scepter-leading.png"
|
||||
[/frame]
|
||||
|
|
|
@ -136,9 +136,9 @@
|
|||
[/attack_filter]
|
||||
{MISSILE_FRAME_FIREBALL}
|
||||
|
||||
start_time=-550
|
||||
start_time=-550
|
||||
[frame]
|
||||
duration=200
|
||||
duration=200
|
||||
image="human-princess-scepter-leading.png"
|
||||
sound=fire.wav
|
||||
[/frame]
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[scenario]
|
||||
|
||||
id=the_raid
|
||||
name= _ "The Raid"
|
||||
map_data="{campaigns/Liberty/maps/the_raid.map}"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[scenario]
|
||||
|
||||
id=civil_disobedience
|
||||
name= _ "Civil Disobedience"
|
||||
map_data="{campaigns/Liberty/maps/civil_disobedience.map}"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[scenario]
|
||||
|
||||
id=a_strategy_of_hope
|
||||
name= _ "A Strategy of Hope"
|
||||
map_data="{campaigns/Liberty/maps/strategy_of_hope.map}"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[scenario]
|
||||
|
||||
id=unlawful_orders
|
||||
name= _ "Unlawful Orders"
|
||||
map_data="{campaigns/Liberty/maps/unlawful_orders.map}"
|
||||
|
@ -254,11 +253,11 @@
|
|||
[/store_unit]
|
||||
|
||||
{FOREACH stored_changers i}
|
||||
{VARIABLE stored_changers[$i].variables.real_hitpoints $stored_changers[$i].hitpoints}
|
||||
{VARIABLE stored_changers[$i].variables.real_hitpoints $stored_changers[$i].hitpoints}
|
||||
|
||||
[unstore_unit]
|
||||
variable=stored_changers[$i]
|
||||
[/unstore_unit]
|
||||
[unstore_unit]
|
||||
variable=stored_changers[$i]
|
||||
[/unstore_unit]
|
||||
{NEXT i}
|
||||
|
||||
{CHG_TYPE side,type=3,Spearman Skeleton}
|
||||
|
@ -291,11 +290,11 @@
|
|||
[/store_unit]
|
||||
|
||||
{FOREACH stored_changers i}
|
||||
{VARIABLE stored_changers[$i].hitpoints $stored_changers[$i].variables.real_hitpoints}
|
||||
{VARIABLE stored_changers[$i].hitpoints $stored_changers[$i].variables.real_hitpoints}
|
||||
|
||||
[unstore_unit]
|
||||
variable=stored_changers[$i]
|
||||
[/unstore_unit]
|
||||
[unstore_unit]
|
||||
variable=stored_changers[$i]
|
||||
[/unstore_unit]
|
||||
{NEXT i}
|
||||
|
||||
{CLEAR_VARIABLE stored_changers}
|
||||
|
@ -341,11 +340,11 @@
|
|||
[/store_unit]
|
||||
|
||||
{FOREACH stored_changers i}
|
||||
{VARIABLE stored_changers[$i].variables.real_hitpoints $stored_changers[$i].hitpoints}
|
||||
{VARIABLE stored_changers[$i].variables.real_hitpoints $stored_changers[$i].hitpoints}
|
||||
|
||||
[unstore_unit]
|
||||
variable=stored_changers[$i]
|
||||
[/unstore_unit]
|
||||
[unstore_unit]
|
||||
variable=stored_changers[$i]
|
||||
[/unstore_unit]
|
||||
{NEXT i}
|
||||
|
||||
{CHG_TYPE side,type=3,Skeleton Spearman}
|
||||
|
@ -378,11 +377,11 @@
|
|||
[/store_unit]
|
||||
|
||||
{FOREACH stored_changers i}
|
||||
{VARIABLE stored_changers[$i].hitpoints $stored_changers[$i].variables.real_hitpoints}
|
||||
{VARIABLE stored_changers[$i].hitpoints $stored_changers[$i].variables.real_hitpoints}
|
||||
|
||||
[unstore_unit]
|
||||
variable=stored_changers[$i]
|
||||
[/unstore_unit]
|
||||
[unstore_unit]
|
||||
variable=stored_changers[$i]
|
||||
[/unstore_unit]
|
||||
{NEXT i}
|
||||
|
||||
{CLEAR_VARIABLE stored_changers}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[scenario]
|
||||
|
||||
id=hide_and_seek
|
||||
name= _ "Hide and Seek"
|
||||
map_data="{campaigns/Liberty/maps/hide_and_seek.map}"
|
||||
|
@ -624,12 +623,12 @@
|
|||
[/store_unit]
|
||||
|
||||
{FOREACH side_2_units_nearby i}
|
||||
{VARIABLE side_2_units_nearby[$i].side 3}
|
||||
{VARIABLE side_2_units_nearby[$i].side 3}
|
||||
|
||||
[unstore_unit]
|
||||
variable=side_2_units_nearby[$i]
|
||||
find_vacant=no
|
||||
[/unstore_unit]
|
||||
[unstore_unit]
|
||||
variable=side_2_units_nearby[$i]
|
||||
find_vacant=no
|
||||
[/unstore_unit]
|
||||
{NEXT i}
|
||||
|
||||
{CLEAR_VARIABLE side_2_units_nearby}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[scenario]
|
||||
|
||||
id=the_gray_woods
|
||||
name= _ "The Gray Woods"
|
||||
map_data="{campaigns/Liberty/maps/gray_woods.map}"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[scenario]
|
||||
|
||||
id=the_hunters
|
||||
name= _ "The Hunters"
|
||||
map_data="{campaigns/Liberty/maps/the_hunters.map}"
|
||||
|
@ -83,7 +82,7 @@
|
|||
name=prestart
|
||||
|
||||
# {SCATTER_IMAGE (terrain=Gg) 14 scenery/oak-leaning.png}
|
||||
{PLACE_IMAGE scenery/rock1.png 12 22}
|
||||
{PLACE_IMAGE scenery/rock1.png 12 22}
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
|
@ -124,7 +123,7 @@
|
|||
[recall]
|
||||
description=Harper
|
||||
[/recall]
|
||||
{LOYAL_UNIT 1 Outlaw 30 17 Jingo ( _ "Jingo")}
|
||||
{LOYAL_UNIT 1 Outlaw 30 17 Jingo ( _ "Jingo")}
|
||||
{LOYAL_UNIT 1 Outlaw 32 17 Majel ( _ "Majel")}
|
||||
# wmllint: recognize Jingo
|
||||
# wmllint: recognize Majel
|
||||
|
@ -154,7 +153,7 @@
|
|||
message= _ "The garrison. The towers of Halstead are more than a garrison, nephew, they are a fortress. They used to protect this area from the enemies of Wesnoth; I never imagined they would house the enemies of Wesnoth."
|
||||
[/message]
|
||||
|
||||
{LOYAL_UNIT 1 Dragoon 11 1 (Pitcher) ( _ "Pitcher")}
|
||||
{LOYAL_UNIT 1 Dragoon 11 1 (Pitcher) ( _ "Pitcher")}
|
||||
# wmllint: recognize Pitcher
|
||||
|
||||
{MOVE_UNIT description=Pitcher 20 14}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[scenario]
|
||||
|
||||
id=glory
|
||||
name= _ "Glory"
|
||||
map_data="{campaigns/Liberty/maps/glory.map}"
|
||||
|
@ -299,7 +298,7 @@
|
|||
{PLACE_IMAGE scenery/trapdoor-closed.png 24 19}
|
||||
|
||||
#Some badass trapdoor guards
|
||||
#define MK_GUARD SIDE TYPE X Y
|
||||
#define MK_GUARD SIDE TYPE X Y
|
||||
# Create a guard unit TYPE belonging to SIDE at X,Y
|
||||
# Will have a guardian AI, no traits, and a generated description.
|
||||
[unit]
|
||||
|
@ -340,7 +339,7 @@
|
|||
{MK_GUARD 2 (Pikeman) 24 18}
|
||||
{MK_GUARD 2 (Halberdier) 18 16}
|
||||
#endif
|
||||
#undef MK_GUARD
|
||||
#undef MK_GUARD
|
||||
|
||||
{CHG_TERRAIN Gg (5) (3)}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[scenario]
|
||||
|
||||
id=epilog
|
||||
name= _ "Liberty - Epilogue"
|
||||
{NO_MAP_DATA}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#textdomain wesnoth-l
|
||||
[unit]
|
||||
|
||||
id=Death Squire
|
||||
name= _ "Death Squire"
|
||||
race=undead
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
id=chain_break
|
||||
name= _ "Breaking the Chains"
|
||||
|
||||
# Set the music background for the scenario, for full explanation see /macros/sound-utils.cfg
|
||||
# Set the music background for the scenario, for full explanation see /macros/sound-utils.cfg
|
||||
{SCENARIO_MUSIC "breaking_the_chains.ogg"}
|
||||
|
||||
# Scenario story, with it's own music background. This will be overridden by SCENARIO_MUSIC macro above when the story ends.
|
||||
# Scenario story, with it's own music background. This will be overridden by SCENARIO_MUSIC macro above when the story ends.
|
||||
[story]
|
||||
[part]
|
||||
story= _ "Far to the north of Wesnoth, and hard by the dwarven caves of Knalga, there was once a thriving mixed community known as Dwarven Doors. Food, wood, and cloth from all over Wesnoth and many elvish lands as well were brought here to be sold to the dwarves, while ores, metals and worked dwarven manufactures were bought here to be traded throughout the surface nations. Dwarves and humans worked and lived side by side; even the elves who came to trade mingled more with the other kindred races than was common elsewhere. Dwarven Doors grew populous and wealthy."
|
||||
|
@ -54,15 +54,15 @@
|
|||
[/part]
|
||||
[/story]
|
||||
|
||||
# Load map, set scenario length, time scheudle and point to next scenario. Note TURNS4 macro used due to four difficulty levels and
|
||||
# and DEFAULT_SCHEUDLE that loads standart wesnoth ToD scheudle.
|
||||
# Load map, set scenario length, time scheudle and point to next scenario. Note TURNS4 macro used due to four difficulty levels and
|
||||
# and DEFAULT_SCHEUDLE that loads standart wesnoth ToD scheudle.
|
||||
map_data="{campaigns/Northern_Rebirth/maps/breaking_the_chains.map}"
|
||||
{TURNS4 51 41 31 26}
|
||||
{DEFAULT_SCHEDULE}
|
||||
next_scenario=infested_caves
|
||||
|
||||
# Define players side. Recruits only peasants. STARTING_VILLAGES captures all villages for side (1) within a radius (6) from leader
|
||||
# initial location.
|
||||
# Define players side. Recruits only peasants. STARTING_VILLAGES captures all villages for side (1) within a radius (6) from leader
|
||||
# initial location.
|
||||
[side]
|
||||
type=Peasant
|
||||
description=Tallin
|
||||
|
@ -81,7 +81,7 @@
|
|||
|
||||
{STARTING_VILLAGES 1 6}
|
||||
|
||||
# First of the orcish opponents, recruits simple lvl1 mix with no trolls
|
||||
# First of the orcish opponents, recruits simple lvl1 mix with no trolls
|
||||
[side]
|
||||
type=Orcish Warlord
|
||||
description="Al'Tar"
|
||||
|
@ -94,7 +94,7 @@
|
|||
|
||||
{STARTING_VILLAGES 2 7}
|
||||
|
||||
# Second orcish opponent, the same recruit options as side 2
|
||||
# Second orcish opponent, the same recruit options as side 2
|
||||
[side]
|
||||
type=Orcish Warrior
|
||||
description=Garrugch
|
||||
|
@ -107,13 +107,13 @@
|
|||
|
||||
{STARTING_VILLAGES 3 6}
|
||||
|
||||
# Empty side to accomodate cave trolls
|
||||
# Empty side to accomodate cave trolls
|
||||
[side]
|
||||
side=4
|
||||
no_leader=yes
|
||||
[/side]
|
||||
|
||||
# Prestart event, set objectives.
|
||||
# Prestart event, set objectives.
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
|
@ -136,10 +136,10 @@
|
|||
[/objectives]
|
||||
[/event]
|
||||
|
||||
# Start event. Place images on the map, a supporter to give Tallin someone to speak to, perform initial dialogue.
|
||||
# Start event. Place images on the map, a supporter to give Tallin someone to speak to, perform initial dialogue.
|
||||
[event]
|
||||
name=start
|
||||
{PLACE_IMAGE scenery/dwarven-doors-closed.png 32 4}
|
||||
{PLACE_IMAGE scenery/dwarven-doors-closed.png 32 4}
|
||||
|
||||
# Override Tallin's team color so he has a distinctive purple shirt.
|
||||
{TEAM_COLOR_OVERRIDE description=Tallin purple}
|
||||
|
@ -206,7 +206,7 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# Flavour event. On first player attack against the wardens (side 2) perform a dialogue.
|
||||
# Flavour event. On first player attack against the wardens (side 2) perform a dialogue.
|
||||
[event]
|
||||
name=attack
|
||||
[filter]
|
||||
|
@ -226,8 +226,8 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# Spawn trolls from the caves, 4 whelps and one normal.
|
||||
#! -- SUGGESTION : make it in less tomato-in-the face like, ATM if triggered at wrong moment it can completely wreck your chances
|
||||
# Spawn trolls from the caves, 4 whelps and one normal.
|
||||
#! -- SUGGESTION : make it in less tomato-in-the face like, ATM if triggered at wrong moment it can completely wreck your chances
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
|
@ -244,14 +244,14 @@
|
|||
speaker=unit
|
||||
message= _ "Aaaaah! Trolls! The caves are infested with trolls!"
|
||||
[/message]
|
||||
{NOTRAIT_UNIT 4 "Troll Whelp" 31 4}
|
||||
{NOTRAIT_UNIT 4 "Troll Whelp" 33 4}
|
||||
{NOTRAIT_UNIT 4 "Troll Whelp" 33 5}
|
||||
{NOTRAIT_UNIT 4 "Troll Whelp" 32 5}
|
||||
{NOTRAIT_UNIT 4 "Troll" 32 3}
|
||||
{NOTRAIT_UNIT 4 "Troll Whelp" 31 4}
|
||||
{NOTRAIT_UNIT 4 "Troll Whelp" 33 4}
|
||||
{NOTRAIT_UNIT 4 "Troll Whelp" 33 5}
|
||||
{NOTRAIT_UNIT 4 "Troll Whelp" 32 5}
|
||||
{NOTRAIT_UNIT 4 "Troll" 32 3}
|
||||
[/event]
|
||||
|
||||
# Victory event when both warlords died.
|
||||
# Victory event when both warlords died.
|
||||
[event]
|
||||
name=victory
|
||||
[message]
|
||||
|
@ -291,9 +291,9 @@
|
|||
[/move_unit_fake]
|
||||
[/event]
|
||||
|
||||
# Death events
|
||||
# Death events
|
||||
|
||||
# Death of Tallin. Equals defeat.
|
||||
# Death of Tallin. Equals defeat.
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
|
@ -312,7 +312,7 @@
|
|||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
# Death of sides 2 leader. Flavour event.
|
||||
# Death of sides 2 leader. Flavour event.
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
|
@ -336,7 +336,7 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# Death of sides 3 leader. Flavour event.
|
||||
# Death of sides 3 leader. Flavour event.
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
|
|
|
@ -30,12 +30,12 @@
|
|||
|
||||
map_data="{campaigns/Northern_Rebirth/maps/infested_caves.map}"
|
||||
{TURNS4 60 55 50 45}
|
||||
# Whole scenario takes place underground thus apropriate time of day.
|
||||
# Whole scenario takes place underground thus apropriate time of day.
|
||||
{UNDERGROUND}
|
||||
next_scenario=dwarven_mines
|
||||
|
||||
# Set sides
|
||||
# Players side - some more recruit options this time.
|
||||
# Set sides
|
||||
# Players side - some more recruit options this time.
|
||||
[side]
|
||||
type=Peasant
|
||||
description=Tallin
|
||||
|
@ -49,7 +49,7 @@
|
|||
shroud=yes
|
||||
[/side]
|
||||
|
||||
# Three sides for trolls, one lead by troll warrior
|
||||
# Three sides for trolls, one lead by troll warrior
|
||||
[side]
|
||||
type=Troll
|
||||
description=Knash
|
||||
|
@ -73,7 +73,7 @@
|
|||
team_name=trolls
|
||||
[/side]
|
||||
|
||||
# Dwarven side
|
||||
# Dwarven side
|
||||
[side]
|
||||
type=Dwarvish Lord
|
||||
description=Hamel
|
||||
|
@ -87,7 +87,7 @@
|
|||
recruitment_pattern=fighter,fighter,fighter,mixed fighter
|
||||
[/side]
|
||||
|
||||
# Three undead sides
|
||||
# Three undead sides
|
||||
[side]
|
||||
type=Death Knight
|
||||
canrecruit=yes
|
||||
|
@ -129,19 +129,19 @@
|
|||
team_name=undead
|
||||
[/side]
|
||||
|
||||
# And an empty side for the bat used in flavour event
|
||||
# And an empty side for the bat used in flavour event
|
||||
[side]
|
||||
no_leader=yes
|
||||
side=9
|
||||
[/side]
|
||||
|
||||
# Start event - place some dwarven guards to increase the survivability of the allied AI, set objectives, execute the
|
||||
# flavour bat encounter.
|
||||
# Start event - place some dwarven guards to increase the survivability of the allied AI, set objectives, execute the
|
||||
# flavour bat encounter.
|
||||
[event]
|
||||
name=start
|
||||
|
||||
# SUPPORTER is a special macro defined in campaign /utils it chooses an unit from peasant advancement tree and sets
|
||||
# him an supporter role.
|
||||
# SUPPORTER is a special macro defined in campaign /utils it chooses an unit from peasant advancement tree and sets
|
||||
# him an supporter role.
|
||||
{SUPPORTER}
|
||||
[recall]
|
||||
role=Supporter
|
||||
|
@ -180,7 +180,7 @@
|
|||
x=15,14,13,12,11
|
||||
y=12,12,12,12,12
|
||||
[/move_unit_fake]
|
||||
{NOTRAIT_UNIT 9 "Blood Bat" 11 12}
|
||||
{NOTRAIT_UNIT 9 "Blood Bat" 11 12}
|
||||
[message]
|
||||
type=Blood Bat
|
||||
message= _ "Neep Neep!"
|
||||
|
@ -216,10 +216,9 @@
|
|||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
|
||||
[/event]
|
||||
|
||||
# Find Camerin event
|
||||
# Find Camerin event
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
|
@ -286,28 +285,28 @@
|
|||
message= _ " *Is it safe to have this lunatic with us?*"
|
||||
[/message]
|
||||
{VARIABLE found_Camerin 1}
|
||||
# The following two events are absolutely useless if Camerin was not found so we'll set them only when this happens
|
||||
# using event nesting.
|
||||
|
||||
# Flavour event on Camerins first attack
|
||||
[event]
|
||||
name=attack
|
||||
[filter]
|
||||
description=Camerin
|
||||
[/filter]
|
||||
# The following two events are absolutely useless if Camerin was not found so we'll set them only when this happens
|
||||
# using event nesting.
|
||||
|
||||
[message]
|
||||
description=Camerin
|
||||
message= _ "BURN, YOU DISGUSTING FILTH!"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=second_unit
|
||||
message= _ "Ahhh! Fire!"
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# And flavour event on his first kill
|
||||
[event]
|
||||
# Flavour event on Camerins first attack
|
||||
[event]
|
||||
name=attack
|
||||
[filter]
|
||||
description=Camerin
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
description=Camerin
|
||||
message= _ "BURN, YOU DISGUSTING FILTH!"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=second_unit
|
||||
message= _ "Ahhh! Fire!"
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# And flavour event on his first kill
|
||||
[event]
|
||||
name=die
|
||||
[filter_second]
|
||||
description=Camerin
|
||||
|
@ -320,7 +319,7 @@
|
|||
[/event]
|
||||
[/event]
|
||||
|
||||
# Information for the player that he can't proceed without either finding the dwarves or killing the enemies
|
||||
# Information for the player that he can't proceed without either finding the dwarves or killing the enemies
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
|
@ -339,7 +338,7 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# Flavour event on first sighting of the undead
|
||||
# Flavour event on first sighting of the undead
|
||||
[event]
|
||||
name=sighted
|
||||
[filter]
|
||||
|
@ -364,7 +363,7 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# Flavour event for the first time they attack
|
||||
# Flavour event for the first time they attack
|
||||
[event]
|
||||
name=attack
|
||||
[filter]
|
||||
|
@ -384,7 +383,7 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# Opening a pair of hidden doors - the north one
|
||||
# Opening a pair of hidden doors - the north one
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
|
@ -393,25 +392,25 @@
|
|||
y=4,5
|
||||
[/filter]
|
||||
|
||||
# Check from which side do we open and use apropriate race in the dialogue.
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.y
|
||||
equals=4
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Hey look, it's an ancient door. It seems the trolls were too stupid to find how to open it."
|
||||
[/message]
|
||||
[/then]
|
||||
[else]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Hey look, it's an ancient door. It seems the skeletons were too stupid to find how to open it."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
# Check from which side do we open and use apropriate race in the dialogue.
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.y
|
||||
equals=4
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Hey look, it's an ancient door. It seems the trolls were too stupid to find how to open it."
|
||||
[/message]
|
||||
[/then]
|
||||
[else]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Hey look, it's an ancient door. It seems the skeletons were too stupid to find how to open it."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[message]
|
||||
description=Tallin
|
||||
message= _ "Well, let's see what's behind it."
|
||||
|
@ -439,7 +438,7 @@
|
|||
[/terrain]
|
||||
[/event]
|
||||
|
||||
# And the south ones
|
||||
# And the south ones
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
|
@ -448,24 +447,24 @@
|
|||
y=27,28
|
||||
[/filter]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.y
|
||||
equals=4
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Hey look, it's an ancient door. It seems the trolls were too stupid to find how to open it."
|
||||
[/message]
|
||||
[/then]
|
||||
[else]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Hey look, it's an ancient door. It seems the skeletons were too stupid to find how to open it."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.y
|
||||
equals=4
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Hey look, it's an ancient door. It seems the trolls were too stupid to find how to open it."
|
||||
[/message]
|
||||
[/then]
|
||||
[else]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Hey look, it's an ancient door. It seems the skeletons were too stupid to find how to open it."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[message]
|
||||
description=Tallin
|
||||
message= _ "Well, let's see what's behind it."
|
||||
|
@ -493,7 +492,7 @@
|
|||
[/terrain]
|
||||
[/event]
|
||||
|
||||
# Dwarven mushroom fields
|
||||
# Dwarven mushroom fields
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
|
@ -512,11 +511,11 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# We're doomed (tm) routine on turn 9
|
||||
# We're doomed (tm) routine on turn 9
|
||||
[event]
|
||||
name=turn 9
|
||||
|
||||
# We call this macro again in case the previous supporter got killed in the meantime
|
||||
# We call this macro again in case the previous supporter got killed in the meantime
|
||||
{SUPPORTER}
|
||||
[message]
|
||||
role=Supporter
|
||||
|
@ -536,7 +535,7 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# Meeting the dwarves, set new objectives
|
||||
# Meeting the dwarves, set new objectives
|
||||
[event]
|
||||
name=sighted
|
||||
[filter]
|
||||
|
@ -567,7 +566,7 @@
|
|||
description=Tallin
|
||||
message= _ "Very well."
|
||||
[/message]
|
||||
{VARIABLE found_dwarves 1}
|
||||
{VARIABLE found_dwarves 1}
|
||||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
|
@ -593,7 +592,7 @@
|
|||
[/objectives]
|
||||
[/event]
|
||||
|
||||
# Arriving at the keep, end scenario without bonus.
|
||||
# Arriving at the keep, end scenario without bonus.
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
|
@ -623,7 +622,7 @@
|
|||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
# All enemies defeated, choose apropriate dialogue depending on wether the dwarves were found or not.
|
||||
# All enemies defeated, choose apropriate dialogue depending on wether the dwarves were found or not.
|
||||
[event]
|
||||
name=enemies defeated
|
||||
|
||||
|
@ -649,7 +648,7 @@
|
|||
|
||||
{campaigns/Northern_Rebirth/utils/herodeaths.cfg}
|
||||
|
||||
# Hamel got killed, the scenario is lost.
|
||||
# Hamel got killed, the scenario is lost.
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
|
@ -677,7 +676,7 @@
|
|||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
# If we won and Camerin wasn't found add him to the players army. Clear variables.
|
||||
# If we won and Camerin wasn't found add him to the players army. Clear variables.
|
||||
[event]
|
||||
name=victory
|
||||
|
||||
|
|
|
@ -116,13 +116,13 @@
|
|||
description=Camerin
|
||||
[/recall]
|
||||
|
||||
# Since in last scenario Hamel was AI controled we need to place him again to have him in this and future scenarios
|
||||
# Since in last scenario Hamel was AI controled we need to place him again to have him in this and future scenarios
|
||||
[unit]
|
||||
type=Dwarvish Lord
|
||||
description=Hamel
|
||||
user_description= _ "Hamel"
|
||||
profile=portraits/Hamel.jpg
|
||||
# This nice macro gives the unit silver crown.
|
||||
# This nice macro gives the unit silver crown.
|
||||
{IS_HERO}
|
||||
x=6
|
||||
y=23
|
||||
|
@ -169,8 +169,8 @@
|
|||
[/objectives]
|
||||
[/event]
|
||||
|
||||
# Two events ending the scenario, there is no chance of both of them occuring in the same game. You can either kill
|
||||
# the opponent...
|
||||
# Two events ending the scenario, there is no chance of both of them occuring in the same game. You can either kill
|
||||
# the opponent...
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
|
@ -186,7 +186,7 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# ...or get to the mines with him still alive. But without bonus in that case.
|
||||
# ...or get to the mines with him still alive. But without bonus in that case.
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
|
@ -213,8 +213,7 @@
|
|||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
# And include some death events.
|
||||
# And include some death events.
|
||||
{campaigns/Northern_Rebirth/utils/herodeaths.cfg}
|
||||
{DEFEAT_WHEN_HAMEL_DEAD}
|
||||
|
||||
[/scenario]
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
name= _ "Clearing the Mines"
|
||||
{SCENARIO_MUSIC "battle.ogg"}
|
||||
|
||||
# No story this time so straight to the point
|
||||
# No story this time so straight to the point
|
||||
map_data="{campaigns/Northern_Rebirth/maps/clearing_the_mines.map}"
|
||||
{TURNS4 85 75 65 55}
|
||||
{UNDERGROUND}
|
||||
|
@ -23,7 +23,7 @@
|
|||
[/side]
|
||||
|
||||
{STARTING_VILLAGES 1 5}
|
||||
# Five opposing undead sides
|
||||
# Five opposing undead sides
|
||||
[side]
|
||||
type=Ancient Lich
|
||||
description=Malifor
|
||||
|
@ -81,7 +81,7 @@
|
|||
team_name=undead
|
||||
[/side]
|
||||
|
||||
# Prestart event - hide Malifor for the great and dramatic entrance later
|
||||
# Prestart event - hide Malifor for the great and dramatic entrance later
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
|
@ -91,7 +91,7 @@
|
|||
[/hide_unit]
|
||||
[/event]
|
||||
|
||||
# Start event - recall some units, perform initial dialogue and place an army of guardian skeletons
|
||||
# Start event - recall some units, perform initial dialogue and place an army of guardian skeletons
|
||||
[event]
|
||||
name=start
|
||||
|
||||
|
@ -120,8 +120,8 @@
|
|||
description=Hamel
|
||||
[/recall]
|
||||
|
||||
# For each skeleton we use a core macro for creating an unit with no traits. +unit is a special tag that adds it's content
|
||||
# to the last encountered [unit][/unit] section. 37 skeletons and 9 skeleton archers with ai_special guardian.
|
||||
# For each skeleton we use a core macro for creating an unit with no traits. +unit is a special tag that adds it's content
|
||||
# to the last encountered [unit][/unit] section. 37 skeletons and 9 skeleton archers with ai_special guardian.
|
||||
{NOTRAIT_UNIT 3 Skeleton 11 24}
|
||||
[+unit]
|
||||
ai_special=guardian
|
||||
|
@ -352,7 +352,7 @@
|
|||
description=Thorin
|
||||
message= _ "YOU DO NOT ANSWER. ALERT THE MASTER!"
|
||||
[/message]
|
||||
# The grand entrance
|
||||
# The grand entrance
|
||||
[move_unit_fake]
|
||||
type=Ancient Lich
|
||||
side=2
|
||||
|
@ -415,107 +415,107 @@
|
|||
message= _ "Tallin, are you OK?!"
|
||||
[/message]
|
||||
[message]
|
||||
description=Malifor
|
||||
message= _ "It's very easy, Tallin, see that little vermin by your side? Take out your knife...... cut his throat .......feel his hot blood pump over your hands..... sacrifice him to death!"
|
||||
description=Malifor
|
||||
message= _ "It's very easy, Tallin, see that little vermin by your side? Take out your knife...... cut his throat .......feel his hot blood pump over your hands..... sacrifice him to death!"
|
||||
[/message]
|
||||
# There was an option to choose an alternative, evil, branch here. But since it's not even started I commented it out,
|
||||
# leaving player a command that leads to instant defeat is not nice.
|
||||
# [option]
|
||||
# message= _ "......die.... you..... little.....dwarf.....vermin!"
|
||||
# [command]
|
||||
# [message]
|
||||
# role=Supporter
|
||||
# message= _ "Tallin! No!"
|
||||
# [/message]
|
||||
# [message]
|
||||
# description=Hamel
|
||||
# message= _ "Tallin, what are you doing?"
|
||||
# [/message]
|
||||
# [message]
|
||||
# description=Tallin
|
||||
# message= _ ".....Death!..... Blood!...."
|
||||
# [/message]
|
||||
# {MODIFY_UNIT description=Tallin profile portraits/Tallin-Evil.jpg}
|
||||
# [sound]
|
||||
# name=dagger-swish.wav
|
||||
# [/sound]
|
||||
# [delay]
|
||||
# time=50
|
||||
# [/delay]
|
||||
# [sound]
|
||||
# name=dwarf-hit-3.ogg
|
||||
# [/sound]
|
||||
# [message]
|
||||
# description=Hamel
|
||||
# message= _ "Ahhh! Treacherous human! Kill him, men!"
|
||||
# [/message]
|
||||
# [message]
|
||||
# description=Malifor
|
||||
# message= _ "HAHAHAHAHAHAHA!"
|
||||
# [/message]
|
||||
# [sound]
|
||||
# name=fire.wav
|
||||
# [/sound]
|
||||
# [sound]
|
||||
# name=ugg.wav
|
||||
# [/sound]
|
||||
# [colour_adjust]
|
||||
# red=100
|
||||
# green=100
|
||||
# blue=100
|
||||
# [/colour_adjust]
|
||||
# [delay]
|
||||
# time=10
|
||||
# [/delay]
|
||||
# [colour_adjust]
|
||||
# red=0
|
||||
# green=0
|
||||
# blue=0
|
||||
# [/colour_adjust]
|
||||
# [teleport]
|
||||
# [filter]
|
||||
# description=Tallin
|
||||
# [/filter]
|
||||
# x=34
|
||||
# y=6
|
||||
# [/teleport]
|
||||
# [message]
|
||||
# description=Hamel
|
||||
# message= _ "What the! Where did he go?"
|
||||
# [/message]
|
||||
# [message]
|
||||
# description=Malifor
|
||||
# message= _ "Right here with me, fools! He is mine now."
|
||||
# [/message]
|
||||
# [disallow_recruit]
|
||||
# side=1
|
||||
# type=Dwarvish Fighter,Dwarvish Thunderer,Peasant,Thug,Poacher,Woodsman,Footpad
|
||||
# [/disallow_recruit]
|
||||
# [store_unit]
|
||||
# [filter]
|
||||
# role=Supporter
|
||||
# [/filter]
|
||||
# variable=betrayed_friend
|
||||
# [/store_unit]
|
||||
# [set_variable]
|
||||
# name=turned_evil
|
||||
# value=1
|
||||
# [/set_variable]
|
||||
# [endlevel]
|
||||
# Disable this option in 1.4.
|
||||
# result=victory
|
||||
# bonus=no
|
||||
# next_scenario=compelled
|
||||
# result=defeat
|
||||
# [/endlevel]
|
||||
# [/command]
|
||||
# [/option]
|
||||
# [option]
|
||||
# There was an option to choose an alternative, evil, branch here. But since it's not even started I commented it out,
|
||||
# leaving player a command that leads to instant defeat is not nice.
|
||||
# [option]
|
||||
# message= _ "......die.... you..... little.....dwarf.....vermin!"
|
||||
# [command]
|
||||
# [message]
|
||||
# role=Supporter
|
||||
# message= _ "Tallin! No!"
|
||||
# [/message]
|
||||
# [message]
|
||||
# description=Hamel
|
||||
# message= _ "Tallin, what are you doing?"
|
||||
# [/message]
|
||||
# [message]
|
||||
# description=Tallin
|
||||
# message= _ ".....Death!..... Blood!...."
|
||||
# [/message]
|
||||
# {MODIFY_UNIT description=Tallin profile portraits/Tallin-Evil.jpg}
|
||||
# [sound]
|
||||
# name=dagger-swish.wav
|
||||
# [/sound]
|
||||
# [delay]
|
||||
# time=50
|
||||
# [/delay]
|
||||
# [sound]
|
||||
# name=dwarf-hit-3.ogg
|
||||
# [/sound]
|
||||
# [message]
|
||||
# description=Hamel
|
||||
# message= _ "Ahhh! Treacherous human! Kill him, men!"
|
||||
# [/message]
|
||||
# [message]
|
||||
# description=Malifor
|
||||
# message= _ "HAHAHAHAHAHAHA!"
|
||||
# [/message]
|
||||
# [sound]
|
||||
# name=fire.wav
|
||||
# [/sound]
|
||||
# [sound]
|
||||
# name=ugg.wav
|
||||
# [/sound]
|
||||
# [colour_adjust]
|
||||
# red=100
|
||||
# green=100
|
||||
# blue=100
|
||||
# [/colour_adjust]
|
||||
# [delay]
|
||||
# time=10
|
||||
# [/delay]
|
||||
# [colour_adjust]
|
||||
# red=0
|
||||
# green=0
|
||||
# blue=0
|
||||
# [/colour_adjust]
|
||||
# [teleport]
|
||||
# [filter]
|
||||
# description=Tallin
|
||||
# [/filter]
|
||||
# x=34
|
||||
# y=6
|
||||
# [/teleport]
|
||||
# [message]
|
||||
# description=Hamel
|
||||
# message= _ "What the! Where did he go?"
|
||||
# [/message]
|
||||
# [message]
|
||||
# description=Malifor
|
||||
# message= _ "Right here with me, fools! He is mine now."
|
||||
# [/message]
|
||||
# [disallow_recruit]
|
||||
# side=1
|
||||
# type=Dwarvish Fighter,Dwarvish Thunderer,Peasant,Thug,Poacher,Woodsman,Footpad
|
||||
# [/disallow_recruit]
|
||||
# [store_unit]
|
||||
# [filter]
|
||||
# role=Supporter
|
||||
# [/filter]
|
||||
# variable=betrayed_friend
|
||||
# [/store_unit]
|
||||
# [set_variable]
|
||||
# name=turned_evil
|
||||
# value=1
|
||||
# [/set_variable]
|
||||
# [endlevel]
|
||||
# Disable this option in 1.4.
|
||||
# result=victory
|
||||
# bonus=no
|
||||
# next_scenario=compelled
|
||||
# result=defeat
|
||||
# [/endlevel]
|
||||
# [/command]
|
||||
# [/option]
|
||||
# [option]
|
||||
[message]
|
||||
description=Tallin
|
||||
description=Tallin
|
||||
message= _ " *Shakes head* I reject your evil. Attack, men! Let us rid the good green world of this rotting filth!"
|
||||
[/message]
|
||||
# [command]
|
||||
# [command]
|
||||
[message]
|
||||
description=Hamel
|
||||
message= _ "Aye! That's the way of it, lad! For the murdered dwarves of Knalga! Attack!"
|
||||
|
@ -528,9 +528,9 @@
|
|||
description=Tallin
|
||||
message= _ "Yeah, right, buddy."
|
||||
[/message]
|
||||
# [/command]
|
||||
# [/option]
|
||||
# [/message]
|
||||
# [/command]
|
||||
# [/option]
|
||||
# [/message]
|
||||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
|
@ -552,7 +552,7 @@
|
|||
[/objectives]
|
||||
[/event]
|
||||
|
||||
# Turn 20 - since the army of skeletons is obviously not enough change the moat to swamp and send in an army of ghouls.
|
||||
# Turn 20 - since the army of skeletons is obviously not enough change the moat to swamp and send in an army of ghouls.
|
||||
[event]
|
||||
name=turn 20
|
||||
|
||||
|
@ -560,13 +560,13 @@
|
|||
description=Malifor
|
||||
message= _ "These little vermin are making progress! This is unacceptable. Rise my minions - gorge on the flesh of these scurrying little rats!"
|
||||
[/message]
|
||||
# Water to swamp
|
||||
# Water to swamp
|
||||
[terrain]
|
||||
x=13,14,15,15,16,17,18,19,20,21,22,23,25,25,26,27,31,30,29,30,30,30,30,29,29,29,29,29,29,29,28,27,27,27,26,25,24,25,25,24,30
|
||||
y=11,11,11,10,9,10,10,10,9,10,9,10,10,10,9,10,5,5,6,6,7,8,10,11,12,13,14,15,16,18,18,19,20,21,21,22,21,23,24,10,9
|
||||
terrain=Ss
|
||||
[/terrain]
|
||||
# Water bridge to swamp bridge. '|' '/' denote the direction.
|
||||
# Water bridge to swamp bridge. '|' '/' denote the direction.
|
||||
[terrain]
|
||||
terrain=Ss^Bw|
|
||||
x=28
|
||||
|
@ -583,11 +583,11 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# And the slimey army - 31 ghouls and 10 Necrophages
|
||||
# And the slimey army - 31 ghouls and 10 Necrophages
|
||||
[event]
|
||||
name=turn 21
|
||||
|
||||
{NOTRAIT_UNIT 2 Ghoul 13 11}
|
||||
{NOTRAIT_UNIT 2 Ghoul 13 11}
|
||||
{NOTRAIT_UNIT 2 Ghoul 15 11}
|
||||
{NOTRAIT_UNIT 2 Ghoul 15 10}
|
||||
{NOTRAIT_UNIT 2 Ghoul 16 9}
|
||||
|
@ -639,8 +639,8 @@
|
|||
role=Supporter
|
||||
message= _ "Holly Lords of Light, what kind of vile creation are those things!"
|
||||
[/message]
|
||||
# Camerin might be dead by now, but in that case message with unmatched description will not display anyway. It would
|
||||
# be completely different thing if we used speaker=Camerin.
|
||||
# Camerin might be dead by now, but in that case message with unmatched description will not display anyway. It would
|
||||
# be completely different thing if we used speaker=Camerin.
|
||||
[message]
|
||||
description=Camerin
|
||||
message= _ "Out of all of a necromancer's creations, I must say those things are the most tortured and vilest. They have an insatiable hunger for flesh and mindlessly shrug of all manner of damage to get it. Even my fire bolts have a slightly lesser effect on them."
|
||||
|
@ -654,8 +654,8 @@
|
|||
message= _ "Pah! They look like fat slugs to me. Come on boys, lets chop them to pieces before they can leave the canal."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# Victory and death events - liches grand exit
|
||||
|
||||
# Victory and death events - liches grand exit
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
|
@ -673,16 +673,16 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
# Victory dialogue
|
||||
# Victory dialogue
|
||||
[event]
|
||||
name=victory
|
||||
|
||||
# [if]
|
||||
# [variable]
|
||||
# name=turned_evil
|
||||
# numerical_equals=0
|
||||
# [/variable]
|
||||
# [then]
|
||||
# [if]
|
||||
# [variable]
|
||||
# name=turned_evil
|
||||
# numerical_equals=0
|
||||
# [/variable]
|
||||
# [then]
|
||||
[message]
|
||||
description=Tallin
|
||||
message= _ "We have finally secured the mines. But what should we do about that foul lich? He is a menace to all that lives, and must be ended."
|
||||
|
@ -719,11 +719,11 @@
|
|||
role=follower
|
||||
message= _ "Thank you, Lord Hamel."
|
||||
[/message]
|
||||
# Lord Hamel becomes unavailable for following scenarios until the big showdown.
|
||||
# Lord Hamel becomes unavailable for following scenarios until the big showdown.
|
||||
[kill]
|
||||
description=Hamel
|
||||
animate=no
|
||||
fire_event=no
|
||||
animate=no
|
||||
fire_event=no
|
||||
[/kill]
|
||||
[disallow_recruit]
|
||||
side=1
|
||||
|
@ -733,11 +733,11 @@
|
|||
result=victory
|
||||
bonus=yes
|
||||
[/endlevel]
|
||||
# [/then]
|
||||
# [/if]
|
||||
# [/then]
|
||||
# [/if]
|
||||
[/event]
|
||||
|
||||
# And hero deaths
|
||||
# And hero deaths
|
||||
{campaigns/Northern_Rebirth/utils/herodeaths.cfg}
|
||||
{DEFEAT_WHEN_HAMEL_DEAD}
|
||||
[/scenario]
|
||||
|
|
|
@ -271,29 +271,29 @@
|
|||
kill=yes
|
||||
[/store_unit]
|
||||
|
||||
# Rewrite the if statements to slightly more compact and elegant form
|
||||
# Rewrite the if statements to slightly more compact and elegant form
|
||||
[if]
|
||||
[variable]
|
||||
name=typechange.level
|
||||
greater_than=2
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE typechange.type General}
|
||||
{VARIABLE typechange.type General}
|
||||
[/then]
|
||||
[else]
|
||||
[if]
|
||||
[variable]
|
||||
name=typechange.level
|
||||
greater_than=1
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE typechange.type Lieutenant}
|
||||
[/then]
|
||||
[else]
|
||||
{VARIABLE typechange.type Sergeant}
|
||||
[/else]
|
||||
[/if]
|
||||
[/else]
|
||||
[else]
|
||||
[if]
|
||||
[variable]
|
||||
name=typechange.level
|
||||
greater_than=1
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE typechange.type Lieutenant}
|
||||
[/then]
|
||||
[else]
|
||||
{VARIABLE typechange.type Sergeant}
|
||||
[/else]
|
||||
[/if]
|
||||
[/else]
|
||||
[/if]
|
||||
|
||||
[unstore_unit]
|
||||
|
@ -305,7 +305,7 @@
|
|||
|
||||
[event]
|
||||
name=start
|
||||
# Remove reaplying of object, if they are permanent they get stored and unstored with the unit
|
||||
# Remove reaplying of object, if they are permanent they get stored and unstored with the unit
|
||||
{CLEAR_VARIABLE tallin_gotta_stick}
|
||||
|
||||
[role]
|
||||
|
|
|
@ -1038,27 +1038,26 @@
|
|||
[/message]
|
||||
|
||||
{CLEAR_VARIABLE keep}
|
||||
[if]
|
||||
[have_unit]
|
||||
description=Hamel
|
||||
[/have_unit]
|
||||
[then]
|
||||
[store_unit]
|
||||
variable=temp_var
|
||||
[filter]
|
||||
description=Hamel
|
||||
[/filter]
|
||||
kill=yes
|
||||
fire_event=no
|
||||
[/store_unit]
|
||||
{VARIABLE temp_var.side 1}
|
||||
[unstore_unit]
|
||||
variable=some_var
|
||||
[/unstore_unit]
|
||||
{CLEAR_VARIABLE some_var}
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
[if]
|
||||
[have_unit]
|
||||
description=Hamel
|
||||
[/have_unit]
|
||||
[then]
|
||||
[store_unit]
|
||||
variable=temp_var
|
||||
[filter]
|
||||
description=Hamel
|
||||
[/filter]
|
||||
kill=yes
|
||||
fire_event=no
|
||||
[/store_unit]
|
||||
{VARIABLE temp_var.side 1}
|
||||
[unstore_unit]
|
||||
variable=some_var
|
||||
[/unstore_unit]
|
||||
{CLEAR_VARIABLE some_var}
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
map_data="{@campaigns/Sceptre_of_Fire/maps/2_Closing_the_Gates.map}"
|
||||
next_scenario=2t_In_the_Dwarven_City
|
||||
victory_when_enemies_defeated=no
|
||||
|
||||
|
||||
{SCENARIO_MUSIC battle.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC the_city_falls.ogg}
|
||||
|
||||
|
|
|
@ -438,13 +438,13 @@
|
|||
type=Gryphon Rider,Gryphon
|
||||
[/not]
|
||||
[/filter]
|
||||
|
||||
|
||||
[music]
|
||||
name=knolls.ogg
|
||||
immediate=no
|
||||
append=yes
|
||||
[/music]
|
||||
|
||||
|
||||
[unit]
|
||||
x,y=$thur_x,$thur_y
|
||||
side=1
|
||||
|
|
|
@ -37,28 +37,28 @@
|
|||
|
||||
{SOF_DEATHS}
|
||||
|
||||
# wmllint: recognize Rugnur
|
||||
# wmllint: recognize Rugnur
|
||||
|
||||
# Note: these event-containing macros are placed here instead of
|
||||
# next to the corresponding [side]s because I seemed to run into
|
||||
# unexplainable problems when I tried that
|
||||
# Note: these event-containing macros are placed here instead of
|
||||
# next to the corresponding [side]s because I seemed to run into
|
||||
# unexplainable problems when I tried that
|
||||
|
||||
{STARTING_VILLAGES 1 5}
|
||||
{STARTING_VILLAGES 2 8}
|
||||
{STARTING_VILLAGES 3 8}
|
||||
{STARTING_VILLAGES 4 8}
|
||||
{STARTING_VILLAGES 1 5}
|
||||
{STARTING_VILLAGES 2 8}
|
||||
{STARTING_VILLAGES 3 8}
|
||||
{STARTING_VILLAGES 4 8}
|
||||
|
||||
{LIMIT_CONTEMPORANEOUS_RECRUITS 2 (Troll Rocklobber) 1}
|
||||
{LIMIT_CONTEMPORANEOUS_RECRUITS 3 (Ogre) 1}
|
||||
{LIMIT_CONTEMPORANEOUS_RECRUITS 4 (Goblin Rouser) 2}
|
||||
{LIMIT_CONTEMPORANEOUS_RECRUITS 2 (Troll Rocklobber) 1}
|
||||
{LIMIT_CONTEMPORANEOUS_RECRUITS 3 (Ogre) 1}
|
||||
{LIMIT_CONTEMPORANEOUS_RECRUITS 4 (Goblin Rouser) 2}
|
||||
{LIMIT_CONTEMPORANEOUS_RECRUITS 4 (Goblin Impaler) 2}
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
# Alanin and Krawg are taking a break
|
||||
# wmllint: recognize Alanin
|
||||
# wmllint: recognize Krawg
|
||||
# wmllint: recognize Alanin
|
||||
# wmllint: recognize Krawg
|
||||
|
||||
[store_unit]
|
||||
[filter]
|
||||
|
|
|
@ -300,7 +300,7 @@
|
|||
description=Thursagan
|
||||
message= _ "You're making a mistake, Durstorn."
|
||||
[/message]
|
||||
|
||||
|
||||
[music]
|
||||
name=the_city_falls.ogg
|
||||
immediate=yes
|
||||
|
@ -310,7 +310,7 @@
|
|||
name=battle.ogg
|
||||
append=yes
|
||||
[/music]
|
||||
|
||||
|
||||
[message]
|
||||
description=Durstorn
|
||||
message= _ "Shut up, all of you! Attack them!"
|
||||
|
|
|
@ -146,13 +146,13 @@
|
|||
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
|
||||
#the glyph
|
||||
[item]
|
||||
x,y=18,23
|
||||
image=scenery/rune1.png
|
||||
[/item]
|
||||
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
|
|
|
@ -258,13 +258,13 @@
|
|||
description=Alanin
|
||||
message= _ "Very well, my lord."
|
||||
[/message]
|
||||
|
||||
|
||||
[music]
|
||||
name=traveling_minstrels.ogg
|
||||
immediate=yes
|
||||
append=no
|
||||
[/music]
|
||||
|
||||
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "The sceptre would not be found until many generations after Haldric II, in the time of Asheviere the Dark Queen. During that time, it sat in the caves of the Northlands, unfound but undestroyed, moved around by Orcs who never understood its true power."
|
||||
|
|
|
@ -99,4 +99,3 @@
|
|||
[/frame]
|
||||
[/attack_anim]
|
||||
[/unit]
|
||||
|
||||
|
|
|
@ -41,9 +41,9 @@
|
|||
[about]
|
||||
# FIXME: the textdomain trick should be removed when there's no active
|
||||
# string freeze
|
||||
#textdomain wesnoth
|
||||
#textdomain wesnoth
|
||||
title = _ "Artwork and Graphics"
|
||||
#textdomain wesnoth-sotbe
|
||||
#textdomain wesnoth-sotbe
|
||||
[entry]
|
||||
name = "Neoriceisgood"
|
||||
comment = "portraits"
|
||||
|
|
|
@ -96,8 +96,8 @@
|
|||
|
||||
[part]
|
||||
story= _ "So impressed was Rahul with the intelligence, prowess and leadership of Black-Eye Karun that he invited him to join the Northern Alliance. After much deliberation Black-Eye Karun decided to accept the offer. However, on the way to the city of Dwarven Doors - the headquarters of the Northern Alliance - Karun and his small group of bodyguards were attacked and slain to the last man. There were no survivors to confirm the incident, but it soon became believed among the orcs that the Northern Alliance had deliberately set up this ambush in order to slay their paramount leader break the unity of the orcs."
|
||||
#To be considered for replacing the previous text after the end of the string freeze
|
||||
#story= _ "So impressed was Rahul with the intelligence, prowess and leadership of Black-Eye Karun that he invited him to join the Northern Alliance. After much deliberation Black-Eye Karun decided to accept the offer. However, on the way to the city of Dwarven Doors - the headquarters of the Northern Alliance - Karun and his small group of bodyguards were attacked and slain to the last man. There were no survivors to confirm the incident, but it soon became believed among the orcs that the Northern Alliance had deliberately set up this ambush in order to break the unity of the orcs by slaying their paramount leader."
|
||||
#To be considered for replacing the previous text after the end of the string freeze
|
||||
#story= _ "So impressed was Rahul with the intelligence, prowess and leadership of Black-Eye Karun that he invited him to join the Northern Alliance. After much deliberation Black-Eye Karun decided to accept the offer. However, on the way to the city of Dwarven Doors - the headquarters of the Northern Alliance - Karun and his small group of bodyguards were attacked and slain to the last man. There were no survivors to confirm the incident, but it soon became believed among the orcs that the Northern Alliance had deliberately set up this ambush in order to break the unity of the orcs by slaying their paramount leader."
|
||||
background=sotbe.png
|
||||
[/part]
|
||||
|
||||
|
|
|
@ -220,7 +220,7 @@
|
|||
[/unit]
|
||||
[unit]
|
||||
side=2
|
||||
id=Transport
|
||||
id=Lander
|
||||
description="Landing Galleon"
|
||||
user_description= _ "Landing Galleon"
|
||||
type=Transport Galleon
|
||||
|
|
|
@ -86,7 +86,7 @@
|
|||
[/unit]
|
||||
#enddef
|
||||
|
||||
# todo: add _ infront of the names to make them translatable
|
||||
# todo: add _ infront of the names to make them translatable
|
||||
{KAL_KARTHAN 9 9 "Dwarvish Fighter" Glamcatsil}
|
||||
{KAL_KARTHAN 9 10 "Dwarvish Thunderer" Trithdurus}
|
||||
{KAL_KARTHAN 9 11 "Dwarvish Steelclad" Althasol}
|
||||
|
@ -98,7 +98,7 @@
|
|||
{KAL_KARTHAN 10 11 "Dwarvish Lord" Glamdrsol}
|
||||
{KAL_KARTHAN 10 12 "Dwarvish Steelclad" Pelaithil}
|
||||
{KAL_KARTHAN 10 13 "Dwarvish Fighter" Alaithus}
|
||||
#wmllint: recognize Narithil
|
||||
#wmllint: recognize Narithil
|
||||
|
||||
[message]
|
||||
description="Angarthing"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
experience=80
|
||||
advanceto=Dwarvish Loremaster
|
||||
{AMLA_DEFAULT}
|
||||
unit_description= _ "Dwarvish Annalists are the historians of this ancient and proud race. They are few in number, and their very existence is not generally known to the other peoples of the Great Continent. To the abilities of the Witness they add, through the study of herb and mineral lore, the ability to cure poison."+{SPECIAL_NOTES}+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_UNPOISON}+{SPECIAL_NOTES_LEADERSHIP}+_ "SPECIAL_NOTES^ This unit can exert leadership on units of his own level."+{SPECIAL_NOTES_MAGICAL}
|
||||
unit_description= _ "Dwarvish Annalists are the historians of this ancient and proud race. They are few in number, and their very existence is not generally known to the other peoples of the Great Continent. To the abilities of the Witness they add, through the study of herb and mineral lore, the ability to cure poison."+{SPECIAL_NOTES}+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_UNPOISON}+{SPECIAL_NOTES_LEADERSHIP}+{SPECIAL_NOTES_MAGICAL}
|
||||
[abilities]
|
||||
{ABILITY_LEADERSHIP_LEVEL_3}
|
||||
{ABILITY_UNPOISON}
|
||||
|
@ -187,4 +187,3 @@
|
|||
[/frame]
|
||||
[/defend]
|
||||
[/unit]
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
cost=50
|
||||
usage=mixed fighter
|
||||
{AMLA_DEFAULT}
|
||||
unit_description= _ "Loremasters are the sages of the dwarvish race. Their counsel is greatly valued by war-leaders and chieftains, and they are viewed with awe by ordinary dwarves, for they alone have plumbed the deepest and most closely-held secrets of dwarven knowledge. It is said that where a loremaster stands, there is the soul of the dwarves. To the abilities of the Annalist they add a limited ability to heal."+{SPECIAL_NOTES}+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_UNPOISON}+{SPECIAL_NOTES_LEADERSHIP}+_ "SPECIAL_NOTES^ This unit can exert leadership on units of his own level."+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_HEALS}
|
||||
unit_description= _ "Loremasters are the sages of the dwarvish race. Their counsel is greatly valued by war-leaders and chieftains, and they are viewed with awe by ordinary dwarves, for they alone have plumbed the deepest and most closely-held secrets of dwarven knowledge. It is said that where a loremaster stands, there is the soul of the dwarves. To the abilities of the Annalist they add a limited ability to heal."+{SPECIAL_NOTES}+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_UNPOISON}+{SPECIAL_NOTES_LEADERSHIP}+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_HEALS}
|
||||
[abilities]
|
||||
{ABILITY_LEADERSHIP_LEVEL_4}
|
||||
{ABILITY_UNPOISON}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
[unit]
|
||||
id=Dwarvish Rune Lord
|
||||
# This is a customized Dwarven Runenaster with a chill tempest
|
||||
# attack like the L3 Lich, and its own animations.
|
||||
# attack like the L3 Lich, and its own animations.
|
||||
name= _ "Dwarvish Runemaster"
|
||||
race=dwarf
|
||||
image=units/karrag.png
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
usage=mixed fighter
|
||||
experience=32
|
||||
advanceto=Dwarvish Annalist
|
||||
unit_description= _ "A Witness functions as the eyes of the dwarves' history, a deep lore that they never share with outsiders. The presence of a Witness inspires dwarvish warriors with the knowledge that their deeds (and their deaths) will not go unrecorded. They learn a fighting style deliberately unlike that of their fellows, one designed to turn the vaunted strength of the dwarves against itself. The person of a Witness is considered sacred, and Witnesses are often used as envoys between dwarvish clans."+{SPECIAL_NOTES}+{SPECIAL_NOTES_LEADERSHIP}+_ "SPECIAL_NOTES^ This unit can exert leadership on units of his own level."+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_SLOW}
|
||||
unit_description= _ "A Witness functions as the eyes of the dwarves' history, a deep lore that they never share with outsiders. The presence of a Witness inspires dwarvish warriors with the knowledge that their deeds (and their deaths) will not go unrecorded. They learn a fighting style deliberately unlike that of their fellows, one designed to turn the vaunted strength of the dwarves against itself. The person of a Witness is considered sacred, and Witnesses are often used as envoys between dwarvish clans."+{SPECIAL_NOTES}+{SPECIAL_NOTES_LEADERSHIP}+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_SLOW}
|
||||
[abilities]
|
||||
{ABILITY_LEADERSHIP_LEVEL_2}
|
||||
[/abilities]
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
name=prestart
|
||||
|
||||
{HERO (Warrior King) (King Eldaric IV) ( _ "King Eldaric IV") 1 28 15 "portraits/eldaric.png"}
|
||||
# wmllint: recognize King Eldaric IV
|
||||
# wmllint: recognize King Eldaric IV
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
|
|
|
@ -178,7 +178,7 @@
|
|||
|
||||
{FULL_HEAL (description=Wesfolk Leader)}
|
||||
|
||||
# wmllint: recognize Wesfolk Leader
|
||||
# wmllint: recognize Wesfolk Leader
|
||||
|
||||
[message]
|
||||
speaker=narrator
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "Born to the Banner"
|
||||
next_scenario=2_Proven_By_The_Sword
|
||||
|
||||
|
||||
{SCENARIO_MUSIC knolls.ogg}
|
||||
|
||||
map_data="{campaigns/The_South_Guard/maps/1_Born_To_The_Banner.map}"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "Proven By The Sword"
|
||||
next_scenario=3_A_Desperate_Errand
|
||||
|
||||
|
||||
{SCENARIO_MUSIC battle.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC the_city_falls.ogg}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "A Desperate Errand"
|
||||
next_scenario=4_Vale_of_Tears
|
||||
|
||||
|
||||
{SCENARIO_MUSIC wanderer.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC breaking_the_chains.ogg}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "Vale of Tears"
|
||||
next_scenario=5_Choice_In_The_Fog
|
||||
|
||||
|
||||
{SCENARIO_MUSIC knolls.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC the_city_falls.ogg}
|
||||
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
|
||||
name= _ "Choice in the Fog"
|
||||
next_scenario=6a_Tidings_Good_And_Ill
|
||||
|
||||
|
||||
{SCENARIO_MUSIC underground.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC nunc_dimittis.ogg}
|
||||
|
||||
|
||||
# music changes when bandits are encountered
|
||||
|
||||
map_data="{campaigns/The_South_Guard/maps/5_Choice_In_The_Fog.map}"
|
||||
|
@ -441,7 +441,7 @@
|
|||
name=the_city_falls.ogg
|
||||
append=yes
|
||||
[/music]
|
||||
|
||||
|
||||
{MODIFY_UNIT side=2 side 1}
|
||||
|
||||
[store_unit]
|
||||
|
@ -578,7 +578,7 @@
|
|||
name=nunc_dimittis.ogg
|
||||
append=yes
|
||||
[/music]
|
||||
|
||||
|
||||
[message]
|
||||
description=Urza Afalas
|
||||
message= _ "Then this parlay is over! You may have sounded the doom of all of us!"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "Tidings, Good and Ill"
|
||||
next_scenario=7a_Into_The_Depths
|
||||
|
||||
|
||||
{SCENARIO_MUSIC loyalists.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC wanderer.ogg}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "The Long March"
|
||||
next_scenario=7b_Pebbles_In_The_Flood
|
||||
|
||||
|
||||
{SCENARIO_MUSIC nunc_dimittis.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC knolls.ogg}
|
||||
|
||||
|
@ -52,18 +52,18 @@
|
|||
[side]
|
||||
side=2
|
||||
no_leader=yes
|
||||
|
||||
|
||||
# problem: they have to be on the same team
|
||||
# as the other elves, otherwise they get
|
||||
# slaughtered by the active ambusher
|
||||
#
|
||||
# but they also have to be on the undead team
|
||||
# otherwise they get slaughtered by those
|
||||
#
|
||||
#
|
||||
# but that means that the undead and elves are
|
||||
# all on the same side, which is a shame
|
||||
team_name=elves
|
||||
|
||||
|
||||
controller=ai
|
||||
|
||||
[ai]
|
||||
|
@ -94,7 +94,7 @@
|
|||
[/ai]
|
||||
recruit=Vampire Bat
|
||||
[/side]
|
||||
|
||||
|
||||
# When discovering an ambusher, the ambusher will be moved to this side so
|
||||
# it may move and attack normally
|
||||
|
||||
|
@ -115,7 +115,6 @@
|
|||
[/ai]
|
||||
[/side]
|
||||
|
||||
|
||||
#prestart
|
||||
[event]
|
||||
name=prestart
|
||||
|
@ -144,12 +143,11 @@
|
|||
[recall]
|
||||
description=Urza Afalas
|
||||
[/recall]
|
||||
|
||||
|
||||
|
||||
# retrieve two units from the recall list
|
||||
# but with certain criteria
|
||||
# first: a swordsman
|
||||
|
||||
|
||||
[store_unit]
|
||||
variable=swordsman
|
||||
[filter]
|
||||
|
@ -172,39 +170,38 @@
|
|||
[/wml_filter]
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
|
||||
|
||||
# pick the "best" unit
|
||||
# that is, the one with the highest damage + xp/4
|
||||
# and a little random spice
|
||||
{VARIABLE best_score 0}
|
||||
{VARIABLE best_unit -1}
|
||||
{FOREACH swordsman i}
|
||||
{VARIABLE dam $swordsman[$i].attack[0].damage}
|
||||
{VARIABLE_OP dam multiply $swordsman[$i].attack[0].number}
|
||||
{VARIABLE xp $swordsman[$i].experience}
|
||||
{VARIABLE_OP xp divide 4}
|
||||
{VARIABLE_OP dam add xp}
|
||||
{RANDOM 0..6}
|
||||
{VARIABLE_OP dam add $random}
|
||||
[if]
|
||||
[variable]
|
||||
name=dam
|
||||
greater_than=$best_score
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE best_score $dam}
|
||||
{VARIABLE best_unit $i}
|
||||
[/then]
|
||||
[/if]
|
||||
{VARIABLE dam $swordsman[$i].attack[0].damage}
|
||||
{VARIABLE_OP dam multiply $swordsman[$i].attack[0].number}
|
||||
{VARIABLE xp $swordsman[$i].experience}
|
||||
{VARIABLE_OP xp divide 4}
|
||||
{VARIABLE_OP dam add xp}
|
||||
{RANDOM 0..6}
|
||||
{VARIABLE_OP dam add $random}
|
||||
[if]
|
||||
[variable]
|
||||
name=dam
|
||||
greater_than=$best_score
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE best_score $dam}
|
||||
{VARIABLE best_unit $i}
|
||||
[/then]
|
||||
[/if]
|
||||
{NEXT i}
|
||||
[recall]
|
||||
description=$swordsman[$best_unit].description
|
||||
[/recall]
|
||||
{CLEAR_VARIABLE swordsman}
|
||||
|
||||
|
||||
|
||||
# now an archer
|
||||
|
||||
|
||||
[store_unit]
|
||||
variable=archer
|
||||
[filter]
|
||||
|
@ -228,37 +225,36 @@
|
|||
[/wml_filter]
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
|
||||
|
||||
# pick the "best" unit
|
||||
# that is, the one with the highest damage + xp/4
|
||||
# and a little random spice
|
||||
{VARIABLE best_score 0}
|
||||
{VARIABLE best_unit -1}
|
||||
{FOREACH archer i}
|
||||
{VARIABLE dam $archer[$i].attack[1].damage}
|
||||
{VARIABLE_OP dam multiply $archer[$i].attack[1].number}
|
||||
{VARIABLE xp $archer[$i].experience}
|
||||
{VARIABLE_OP xp divide 4}
|
||||
{VARIABLE_OP dam add xp}
|
||||
{RANDOM 0..6}
|
||||
{VARIABLE_OP dam add $random}
|
||||
[if]
|
||||
[variable]
|
||||
name=dam
|
||||
greater_than=$best_score
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE best_score $dam}
|
||||
{VARIABLE best_unit $i}
|
||||
[/then]
|
||||
[/if]
|
||||
{VARIABLE dam $archer[$i].attack[1].damage}
|
||||
{VARIABLE_OP dam multiply $archer[$i].attack[1].number}
|
||||
{VARIABLE xp $archer[$i].experience}
|
||||
{VARIABLE_OP xp divide 4}
|
||||
{VARIABLE_OP dam add xp}
|
||||
{RANDOM 0..6}
|
||||
{VARIABLE_OP dam add $random}
|
||||
[if]
|
||||
[variable]
|
||||
name=dam
|
||||
greater_than=$best_score
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE best_score $dam}
|
||||
{VARIABLE best_unit $i}
|
||||
[/then]
|
||||
[/if]
|
||||
{NEXT i}
|
||||
[recall]
|
||||
description=$archer[$best_unit].description
|
||||
[/recall]
|
||||
{CLEAR_VARIABLE archer}
|
||||
|
||||
|
||||
|
||||
# Note: the code for the ambushers is mostly identical to that of
|
||||
# Crossroads in HttT.
|
||||
|
||||
|
@ -278,53 +274,52 @@
|
|||
{VARIABLE random_ambusher_type_table[8].type "Elvish Fighter"}
|
||||
|
||||
{VARIABLE random_ambusher_type_i 0}
|
||||
|
||||
|
||||
# place an elvish ambusher
|
||||
# who hides in the forest until he changes side
|
||||
|
||||
# place an elvish ambusher
|
||||
# who hides in the forest until he changes side
|
||||
|
||||
#define ELVISH_AMBUSHER X Y SIDE TYPE
|
||||
[unit]
|
||||
x={X}
|
||||
y={Y}
|
||||
type={TYPE}
|
||||
[unit]
|
||||
x={X}
|
||||
y={Y}
|
||||
type={TYPE}
|
||||
side={SIDE}
|
||||
random_traits=yes
|
||||
upkeep=loyal
|
||||
|
||||
[status]
|
||||
hides=yes
|
||||
[/status]
|
||||
[/unit]
|
||||
|
||||
[object]
|
||||
silent=yes
|
||||
|
||||
[filter]
|
||||
x,y={X},{Y}
|
||||
[/filter]
|
||||
|
||||
[effect]
|
||||
apply_to=new_ability
|
||||
|
||||
[abilities]
|
||||
[hides]
|
||||
id=elvish_ambush
|
||||
affect_self=yes
|
||||
|
||||
[filter_self]
|
||||
# only effective as long as the unit
|
||||
# is on the ambusher side
|
||||
side={SIDE}
|
||||
random_traits=yes
|
||||
upkeep=loyal
|
||||
|
||||
[status]
|
||||
hides=yes
|
||||
[/status]
|
||||
[/unit]
|
||||
|
||||
[object]
|
||||
silent=yes
|
||||
|
||||
[filter]
|
||||
x,y={X},{Y}
|
||||
[/filter]
|
||||
|
||||
[effect]
|
||||
apply_to=new_ability
|
||||
|
||||
[abilities]
|
||||
[hides]
|
||||
id=elvish_ambush
|
||||
affect_self=yes
|
||||
|
||||
[filter_self]
|
||||
# only effective as long as the unit
|
||||
# is on the ambusher side
|
||||
side={SIDE}
|
||||
|
||||
[filter_location]
|
||||
terrain=Gs^Fp
|
||||
[/filter_location]
|
||||
[/filter_self]
|
||||
[/hides]
|
||||
[/abilities]
|
||||
[/effect]
|
||||
[/object]
|
||||
[filter_location]
|
||||
terrain=Gs^Fp
|
||||
[/filter_location]
|
||||
[/filter_self]
|
||||
[/hides]
|
||||
[/abilities]
|
||||
[/effect]
|
||||
[/object]
|
||||
#enddef
|
||||
|
||||
#define ELVISH_AMBUSH_AREA SIDE X_SPAN Y_SPAN NUMBER
|
||||
|
@ -346,13 +341,13 @@
|
|||
[filter]
|
||||
[/filter]
|
||||
[/not]
|
||||
|
||||
|
||||
# not too close to the starting area
|
||||
[not]
|
||||
x=21-36
|
||||
y=43-50
|
||||
[/not]
|
||||
|
||||
|
||||
# not too close to the fixed ambush
|
||||
[not]
|
||||
x=12-14
|
||||
|
@ -360,7 +355,7 @@
|
|||
[/not]
|
||||
|
||||
[filter_adjacent_location]
|
||||
terrain=Rp,Rd,Re
|
||||
terrain=Rp,Rd,Re
|
||||
[/filter_adjacent_location]
|
||||
|
||||
[not]
|
||||
|
@ -419,12 +414,11 @@
|
|||
[/while]
|
||||
#enddef
|
||||
|
||||
|
||||
# undead spawn types depend on difficulty
|
||||
# number of elven ambushers, too
|
||||
# and place different types of Elvish Ambushers
|
||||
# in the fixed central valley ambush
|
||||
|
||||
|
||||
#ifdef EASY
|
||||
{VARIABLE undead_spawn_types "Ghost,Wraith,Shadow,Skeleton Archer,Revenant,Deathblade,Blood Bat,Ghoul,Ghost,Wraith,Shadow"}
|
||||
{VARIABLE ambushing_elves 32}
|
||||
|
@ -432,7 +426,7 @@
|
|||
{ELVISH_AMBUSHER 13 33 2 "Elvish Fighter"}
|
||||
{ELVISH_AMBUSHER 14 30 2 "Elvish Archer"}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef NORMAL
|
||||
{VARIABLE undead_spawn_types "Wraith,Shadow,Bone Shooter,Revenant,Deathblade,Blood Bat,Ghoul,Wraith,Shadow"}
|
||||
{VARIABLE ambushing_elves 40}
|
||||
|
@ -453,7 +447,7 @@
|
|||
{ELVISH_AMBUSHER 14 33 2 "Elvish Captain"}
|
||||
|
||||
{TIME_ACTIONS (
|
||||
{ELVISH_AMBUSH_AREA 2 1-29 23-50 $ambushing_elves}
|
||||
{ELVISH_AMBUSH_AREA 2 1-29 23-50 $ambushing_elves}
|
||||
)}
|
||||
|
||||
{CLEAR_VARIABLE possible_ambush_locations}
|
||||
|
@ -461,56 +455,54 @@
|
|||
{CLEAR_VARIABLE random_ambusher_type_i}
|
||||
{CLEAR_VARIABLE ambusher}
|
||||
{CLEAR_VARIABLE ambushing_elves}
|
||||
|
||||
|
||||
# set ambush dialog variables
|
||||
{VARIABLE ambush 0}
|
||||
{VARIABLE ambush_x 99}
|
||||
{VARIABLE ambush_y 99}
|
||||
{VARIABLE ambush_distance 80}
|
||||
|
||||
|
||||
# store the secret paths and cover them with forest
|
||||
# Rp -> Re covered by forest
|
||||
|
||||
|
||||
[store_locations]
|
||||
variable=secret_path
|
||||
terrain=Rp
|
||||
[/store_locations]
|
||||
{FOREACH secret_path i}
|
||||
{MODIFY_TERRAIN Gs^Fp $secret_path[$i].x $secret_path[$i].y}
|
||||
{MODIFY_TERRAIN Gs^Fp $secret_path[$i].x $secret_path[$i].y}
|
||||
{NEXT i}
|
||||
|
||||
|
||||
# Rd -> Gg covered by forest
|
||||
[store_locations]
|
||||
variable=secret_track
|
||||
terrain=Rd
|
||||
[/store_locations]
|
||||
{FOREACH secret_track i}
|
||||
{MODIFY_TERRAIN Gs^Fp $secret_track[$i].x $secret_track[$i].y}
|
||||
{MODIFY_TERRAIN Gs^Fp $secret_track[$i].x $secret_track[$i].y}
|
||||
{NEXT i}
|
||||
|
||||
|
||||
# urza dialogue variables
|
||||
# coordinates of last dialogue
|
||||
{VARIABLE urza_x 24}
|
||||
{VARIABLE urza_y 46}
|
||||
{VARIABLE urza_dialogue_num 0}
|
||||
|
||||
|
||||
# the various messages
|
||||
{VARIABLE urza_dialogue[0].msg ( _ "We have to go even further west. There are elves living to the north, and I don't think they'll receive us too kindly!")}
|
||||
{VARIABLE urza_dialogue[1].msg ( _ "Come on! Hurry!")}
|
||||
{VARIABLE urza_dialogue[2].msg ( _ "Keep moving!")}
|
||||
{VARIABLE urza_dialogue[3].msg ( _ "We're almost there!")}
|
||||
{VARIABLE urza_dialogue[4].msg ( _ "Just a little further!")}
|
||||
|
||||
[/event]
|
||||
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
|
||||
|
||||
# reveal all hidden paths within 3 hexes
|
||||
# of where Urza moves
|
||||
|
||||
|
||||
[filter]
|
||||
description=Urza Afalas
|
||||
[filter_location]
|
||||
|
@ -538,7 +530,7 @@
|
|||
[/and]
|
||||
[/store_locations]
|
||||
{FOREACH uncover i}
|
||||
{MODIFY_TERRAIN Re $uncover[$i].x $uncover[$i].y}
|
||||
{MODIFY_TERRAIN Re $uncover[$i].x $uncover[$i].y}
|
||||
{NEXT i}
|
||||
[store_locations]
|
||||
variable=uncover
|
||||
|
@ -550,20 +542,20 @@
|
|||
[/and]
|
||||
[/store_locations]
|
||||
{FOREACH uncover i}
|
||||
{MODIFY_TERRAIN Gg $uncover[$i].x $uncover[$i].y}
|
||||
{MODIFY_TERRAIN Gg $uncover[$i].x $uncover[$i].y}
|
||||
{NEXT i}
|
||||
|
||||
|
||||
# check if a new dialogue part is needed
|
||||
# do that if the distance between this event and the
|
||||
# do that if the distance between this event and the
|
||||
# last dialogue is more than 8 hexes
|
||||
|
||||
|
||||
{VARIABLE x_delta $urza_x}
|
||||
{VARIABLE_OP x_delta add -$x1}
|
||||
{VARIABLE_OP x_delta multiply $x_delta}
|
||||
{VARIABLE y_delta $urza_y}
|
||||
{VARIABLE_OP y_delta add -$y1}
|
||||
{VARIABLE_OP y_delta multiply $y_delta}
|
||||
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=x_delta
|
||||
|
@ -593,13 +585,13 @@
|
|||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
|
||||
# we'll allow undo even if terrain was uncovered
|
||||
# the dialogue will break undoing, anyway
|
||||
[allow_undo]
|
||||
[/allow_undo]
|
||||
[/event]
|
||||
|
||||
|
||||
# elven ambush event
|
||||
[event]
|
||||
name=moveto
|
||||
|
@ -612,35 +604,34 @@
|
|||
side=2
|
||||
[/filter_adjacent]
|
||||
[/filter]
|
||||
|
||||
|
||||
# swap all elves within 5 hexes to the active side
|
||||
# they effectively join the ambush
|
||||
{MODIFY_UNIT (
|
||||
side=2
|
||||
[filter_location]
|
||||
terrain=Gs^Fp
|
||||
[and]
|
||||
x,y=$x1,$y1
|
||||
radius=5
|
||||
[/and]
|
||||
[/filter_location]
|
||||
side=2
|
||||
[filter_location]
|
||||
terrain=Gs^Fp
|
||||
[and]
|
||||
x,y=$x1,$y1
|
||||
radius=5
|
||||
[/and]
|
||||
[/filter_location]
|
||||
) side 4}
|
||||
|
||||
[redraw][/redraw]
|
||||
|
||||
# do a dialog if the last ambush was far enough away
|
||||
# we just want to prevent triggering all the dialogue in
|
||||
# the first part of the journey!
|
||||
# (...not that there is that much dialogue here...)
|
||||
|
||||
|
||||
{VARIABLE x_delta $ambush_x}
|
||||
{VARIABLE_OP x_delta add -$x1}
|
||||
{VARIABLE_OP x_delta multiply $x_delta}
|
||||
{VARIABLE y_delta $ambush_y}
|
||||
{VARIABLE_OP y_delta add -$y1}
|
||||
{VARIABLE_OP y_delta multiply $y_delta}
|
||||
|
||||
# if the last ambush dialogue was 9 hexes or more
|
||||
|
||||
# if the last ambush dialogue was 9 hexes or more
|
||||
# distant, do another one
|
||||
[if]
|
||||
[variable]
|
||||
|
@ -730,9 +721,9 @@
|
|||
[/message]
|
||||
|
||||
{MOVE_UNIT (description=Urza Afalas) 24 46}
|
||||
|
||||
|
||||
# reveal the first bit of path
|
||||
|
||||
|
||||
{MODIFY_TERRAIN Gg 23 47}
|
||||
# note: the following is NOT supposed to be supplied as a RANGE!
|
||||
# change the individual coordinates 22,47 and 21,48 !
|
||||
|
@ -744,12 +735,12 @@
|
|||
[/remove_shroud]
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
|
||||
[message]
|
||||
speaker=Urza Afalas
|
||||
message= _ "This way! The only ford is a bit west of here, and the path to the north will lead you into trouble!"
|
||||
[/message]
|
||||
|
||||
|
||||
[message]
|
||||
speaker=Sir Gerrick
|
||||
message= _ "I think we should head north. The road leads north, and the ford is north. Why does he want us to head west?"
|
||||
|
@ -803,7 +794,6 @@
|
|||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
|
||||
# re-spawn some undead after turn 2
|
||||
# up to a maximum number depending on the turn
|
||||
# place them slightly east of the mountain range
|
||||
|
@ -816,14 +806,14 @@
|
|||
|
||||
{VARIABLE undead_spawns $turn_number}
|
||||
{VARIABLE_OP undead_spawns add -2}
|
||||
|
||||
|
||||
# we'll subtract the number of undead that already exist
|
||||
[store_unit]
|
||||
[filter]
|
||||
race=undead
|
||||
[/filter]
|
||||
variable=undead
|
||||
[/store_unit]
|
||||
[/store_unit]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
|
@ -839,19 +829,19 @@
|
|||
{VARIABLE undead_spawns $turn_number}
|
||||
[/else]
|
||||
[/if]
|
||||
|
||||
|
||||
{VARIABLE_OP undead_spawns add -$undead.length}
|
||||
|
||||
{REPEAT $undead_spawns (
|
||||
{VARIABLE_OP undead_spawn_y random "19..34"}
|
||||
{VARIABLE_OP undead_spawn_y random "19..34"}
|
||||
|
||||
{VARIABLE_OP undead_spawn_type random $undead_spawn_types}
|
||||
{VARIABLE_OP undead_spawn_type random $undead_spawn_types}
|
||||
|
||||
[unit]
|
||||
side=3
|
||||
type=$undead_spawn_type
|
||||
x,y=19,$undead_spawn_y
|
||||
[/unit]
|
||||
[unit]
|
||||
side=3
|
||||
type=$undead_spawn_type
|
||||
x,y=19,$undead_spawn_y
|
||||
[/unit]
|
||||
)}
|
||||
[/event]
|
||||
[/event]
|
||||
|
@ -1005,7 +995,7 @@
|
|||
message= _ "But there was a dark cloud looming behind Deoran and his men..."
|
||||
image=wesnoth-icon.png
|
||||
[/message]
|
||||
|
||||
|
||||
{CLEAR_VARIABLE secret_path}
|
||||
{CLEAR_VARIABLE secret_track}
|
||||
{CLEAR_VARIABLE urza_dialogue}
|
||||
|
@ -1022,6 +1012,5 @@
|
|||
bonus=yes
|
||||
result=victory
|
||||
[/endlevel]
|
||||
|
||||
[/event]
|
||||
[/scenario]
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "Into The Depths"
|
||||
next_scenario=8a_Return_To_Kerlath
|
||||
|
||||
|
||||
{SCENARIO_MUSIC knalgan_theme.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC underground.ogg}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "Pebbles in the Flood"
|
||||
next_scenario=8b_The_Tides_of_War
|
||||
|
||||
|
||||
{SCENARIO_MUSIC elvish-theme.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC the_king_is_dead.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC nunc_dimittis.ogg}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "The Tides of War"
|
||||
next_scenario=9b_Bandit_Epilogue
|
||||
|
||||
|
||||
{SCENARIO_MUSIC knalgan_theme.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC battle.ogg}
|
||||
{EXTRA_SCENARIO_MUSIC the_city_falls.ogg}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
name= _ "Vengeance"
|
||||
next_scenario=10a_Elf_Epilogue
|
||||
|
||||
|
||||
{SCENARIO_MUSIC nunc_dimittis.ogg}
|
||||
|
||||
map_data="{campaigns/The_South_Guard/maps/9a_Vengeance.map}"
|
||||
|
@ -192,7 +192,7 @@
|
|||
speaker=Ithelden
|
||||
message= _ "You too, Ethiliel? All these menfolk are the same! They fell trees to till the earth; now they have felled our leader! We cannot brook such deeds! You will die with them!"
|
||||
[/message]
|
||||
|
||||
|
||||
[music]
|
||||
name=vengeful.ogg
|
||||
immediate=yes
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#textdomain wesnoth-tsg
|
||||
# Heroes and Allies
|
||||
|
||||
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
# no other campaigns with a brief overview of the various units in the game
|
||||
# as they encounter them.
|
||||
|
||||
|
||||
#ifdef EASY
|
||||
|
||||
[event]
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
# This should make my WML a little more sane. Most of these
|
||||
# I've shamlessly pillaged from The Rise of Wesnoth and the Useful WML Fragemnts Wiki
|
||||
|
||||
|
||||
#define SG_UNIT TYPE DESCRIPTION USER_DESCRIPTION SIDE X Y
|
||||
[unit]
|
||||
type={TYPE}
|
||||
|
|
|
@ -221,7 +221,7 @@
|
|||
[ai]
|
||||
recruitment_ignore_bad_movement=yes
|
||||
grouping=no
|
||||
passive_leader=yes
|
||||
passive_leader=yes
|
||||
[/ai]
|
||||
team_name=evil
|
||||
[/side]
|
||||
|
|
|
@ -3,43 +3,42 @@
|
|||
# Scenario 1: The Morning After
|
||||
|
||||
[scenario]
|
||||
# Set the map, ToD cycle, music and story
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/map_setup.cfg}
|
||||
|
||||
# Set the map, ToD cycle, music and story
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/map_setup.cfg}
|
||||
# Set sides - elves, monsters and necromancer
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/sides_setup.cfg}
|
||||
|
||||
# Set sides - elves, monsters and necromancer
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/sides_setup.cfg}
|
||||
# Set required variables and initial dialogue
|
||||
# Variables set:
|
||||
# $seen_mudcrawler{'yes','no'}, $rescued_elves{0-5}, $elf_pool_counter{0-8}, $elf_pool[]{up to 8 cells}
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/scenario_start.cfg}
|
||||
|
||||
# Set required variables and initial dialogue
|
||||
# Variables set:
|
||||
# $seen_mudcrawler{'yes','no'}, $rescued_elves{0-5}, $elf_pool_counter{0-8}, $elf_pool[]{up to 8 cells}
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/scenario_start.cfg}
|
||||
# Surviviors - two mudcrawler events, garak event, zhul event, scout events
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/survivors.cfg}
|
||||
|
||||
# Surviviors - two mudcrawler events, garak event, zhul event, scout events
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/survivors.cfg}
|
||||
# Desert villages event - difficulty dependent chance of finding an elf if reached before the undead
|
||||
# Variables cleared :
|
||||
# $elf_pool[], $elf_pool_counter
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/outer_villages.cfg}
|
||||
|
||||
# Desert villages event - difficulty dependent chance of finding an elf if reached before the undead
|
||||
# Variables cleared :
|
||||
# $elf_pool[], $elf_pool_counter
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/outer_villages.cfg}
|
||||
# Necromancer - spawning the bad guy both on time and prematurely and victory event
|
||||
# Variables cleared :
|
||||
# $seen_mudcrawler, $rescued_elves
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/necromancer.cfg}
|
||||
|
||||
# Necromancer - spawning the bad guy both on time and prematurely and victory event
|
||||
# Variables cleared :
|
||||
# $seen_mudcrawler, $rescued_elves
|
||||
{campaigns/Under_the_Burning_Suns/scenarios/scen1/necromancer.cfg}
|
||||
|
||||
# Kaleh abilities - special custom AMLAS for Kaleh
|
||||
# Kaleh abilities - special custom AMLAS for Kaleh
|
||||
{campaigns/Under_the_Burning_Suns/utils/kaleh-abilities.cfg}
|
||||
|
||||
# Common death events for heroes
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define GARAK_DEATH
|
||||
#enddef
|
||||
{campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef GARAK_DEATH
|
||||
# Common death events for heroes
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define GARAK_DEATH
|
||||
#enddef
|
||||
{campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef GARAK_DEATH
|
||||
[/scenario]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Scenario 2: Across the Harsh Sands
|
||||
|
||||
[scenario]
|
||||
|
||||
id="2_Across_the_Harsh_Sands"
|
||||
name= _ "Across the Harsh Sands"
|
||||
|
||||
|
@ -2600,19 +2599,19 @@
|
|||
[/event]
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/kaleh-abilities.cfg}
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define GARAK_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef GARAK_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define GARAK_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef GARAK_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/global-events.cfg}
|
||||
[/scenario]
|
||||
|
|
|
@ -92,16 +92,16 @@
|
|||
#! -- depends on variables : $ElvishGarak, $defiant_death, $elven_camps
|
||||
#! -- clears variables : $ElvishGarak, $grak_challenged, $zur_challenged, $defiant_death, $elven_camps
|
||||
{CREEP_DEATH}
|
||||
|
||||
|
||||
#! -- and the good guys die
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
[/scenario]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
#Level 4: Descending into Darkness
|
||||
|
||||
[scenario]
|
||||
|
||||
id="4_Descending_into_Darkness"
|
||||
name= _ "Descending into Darkness"
|
||||
label= _ "Descending into Darkness"
|
||||
|
@ -2290,16 +2289,16 @@
|
|||
[/event]
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/kaleh-abilities.cfg}
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/global-events.cfg}
|
||||
[/scenario]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Level 5: A Subterranean Struggle
|
||||
|
||||
[scenario]
|
||||
|
||||
id="5_A_Subterranean_Struggle"
|
||||
name= _ "A Subterranean Struggle"
|
||||
label= _ "A Subterranean Struggle"
|
||||
|
@ -4294,15 +4293,15 @@
|
|||
[/event]
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/kaleh-abilities.cfg}
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
{@campaigns/Under_the_Burning_Suns/utils/global-events.cfg}
|
||||
[/scenario]
|
||||
|
|
|
@ -1019,83 +1019,82 @@
|
|||
# on a lava hex take 25 damage. This damage can kill units.
|
||||
|
||||
[event]
|
||||
name=new turn
|
||||
first_time_only=no
|
||||
[redraw]
|
||||
side=1
|
||||
[/redraw]
|
||||
[store_locations]
|
||||
terrain=Yl
|
||||
[filter]
|
||||
side=1,3,4
|
||||
[not]
|
||||
type=Zhul Shyde,Zhul Star,Desert Shyde,Desert Star,Dust Devil
|
||||
[/not]
|
||||
[/filter]
|
||||
variable=lava_hex
|
||||
[/store_locations]
|
||||
{VARIABLE i 0}
|
||||
{FOREACH lava_hex i}
|
||||
[store_unit]
|
||||
[filter]
|
||||
x,y=$lava_hex[$i].x,$lava_hex[$i].y
|
||||
[/filter]
|
||||
variable=unit_on_lava
|
||||
[/store_unit]
|
||||
name=new turn
|
||||
first_time_only=no
|
||||
[redraw]
|
||||
side=1
|
||||
[/redraw]
|
||||
[store_locations]
|
||||
terrain=Yl
|
||||
[filter]
|
||||
side=1,3,4
|
||||
[not]
|
||||
type=Zhul Shyde,Zhul Star,Desert Shyde,Desert Star,Dust Devil
|
||||
[/not]
|
||||
[/filter]
|
||||
variable=lava_hex
|
||||
[/store_locations]
|
||||
{VARIABLE i 0}
|
||||
{FOREACH lava_hex i}
|
||||
[store_unit]
|
||||
[filter]
|
||||
x,y=$lava_hex[$i].x,$lava_hex[$i].y
|
||||
[/filter]
|
||||
variable=unit_on_lava
|
||||
[/store_unit]
|
||||
# this code makes sure Kaleh stays unslowed
|
||||
[if]
|
||||
[variable]
|
||||
name=unslow_kaleh
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
[variable]
|
||||
name=unit_on_lava.description
|
||||
equals=Kaleh
|
||||
[/variable]
|
||||
[then]
|
||||
[set_variable]
|
||||
name=unit_on_lava.status.slowed
|
||||
value="off"
|
||||
[/set_variable]
|
||||
[/then]
|
||||
[/if]
|
||||
[if]
|
||||
[variable]
|
||||
name=unslow_kaleh
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
[variable]
|
||||
name=unit_on_lava.description
|
||||
equals=Kaleh
|
||||
[/variable]
|
||||
[then]
|
||||
[set_variable]
|
||||
name=unit_on_lava.status.slowed
|
||||
value="off"
|
||||
[/set_variable]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
{VARIABLE heat_offset $heat_damage}
|
||||
{VARIABLE_OP heat_offset multiply -1}
|
||||
{VARIABLE damage_recived $lava_damage}
|
||||
{VARIABLE_OP damage_recived add $heat_offset}
|
||||
{CLEAR_VARIABLE heat_offset}
|
||||
{VARIABLE heat_offset $heat_damage}
|
||||
{VARIABLE_OP heat_offset multiply -1}
|
||||
{VARIABLE damage_recived $lava_damage}
|
||||
{VARIABLE_OP damage_recived add $heat_offset}
|
||||
{CLEAR_VARIABLE heat_offset}
|
||||
|
||||
{VARIABLE_OP unit_on_lava.hitpoints add $damage_recived}
|
||||
{VARIABLE damage_msg $damage_recived}
|
||||
{VARIABLE_OP damage_msg multiply -1}
|
||||
{CLEAR_VARIABLE damage_recived}
|
||||
# if unitstats.hitpoints is < 1, unstore unit and kill it,
|
||||
# else just unstore it
|
||||
[unstore_unit]
|
||||
variable=unit_on_lava
|
||||
text=$damage_msg
|
||||
{COLOR_HARM}
|
||||
[/unstore_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit_on_lava.hitpoints
|
||||
less_than=1
|
||||
[/variable]
|
||||
[then]
|
||||
[kill]
|
||||
description=$unit_on_lava.description
|
||||
fire_event=yes
|
||||
animate=yes
|
||||
[/kill]
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE unit_on_lava}
|
||||
{CLEAR_VARIABLE damage_msg}
|
||||
{NEXT i}
|
||||
|
||||
{CLEAR_VARIABLE lava_hex}
|
||||
{VARIABLE_OP unit_on_lava.hitpoints add $damage_recived}
|
||||
{VARIABLE damage_msg $damage_recived}
|
||||
{VARIABLE_OP damage_msg multiply -1}
|
||||
{CLEAR_VARIABLE damage_recived}
|
||||
# if unitstats.hitpoints is < 1, unstore unit and kill it,
|
||||
# else just unstore it
|
||||
[unstore_unit]
|
||||
variable=unit_on_lava
|
||||
text=$damage_msg
|
||||
{COLOR_HARM}
|
||||
[/unstore_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit_on_lava.hitpoints
|
||||
less_than=1
|
||||
[/variable]
|
||||
[then]
|
||||
[kill]
|
||||
description=$unit_on_lava.description
|
||||
fire_event=yes
|
||||
animate=yes
|
||||
[/kill]
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE unit_on_lava}
|
||||
{CLEAR_VARIABLE damage_msg}
|
||||
{NEXT i}
|
||||
|
||||
{CLEAR_VARIABLE lava_hex}
|
||||
[/event]
|
||||
|
||||
# At the start of each turn, all units in main cavern standing on a cave
|
||||
|
@ -2489,16 +2488,16 @@
|
|||
[/event]
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/kaleh-abilities.cfg}
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/global-events.cfg}
|
||||
[/scenario]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Level 6.b: In the Domain of the Dwarves
|
||||
|
||||
[scenario]
|
||||
|
||||
id="6b_In the Domain of the Dwarves"
|
||||
name= _ "In the Domain of the Dwarves"
|
||||
label= _ "In the Domain of the Dwarves"
|
||||
|
@ -2396,16 +2395,16 @@
|
|||
[/event]
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/kaleh-abilities.cfg}
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ELYSSA_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ELYSSA_DEATH
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/global-events.cfg}
|
||||
[/scenario]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Level 7.1: Dealing with Dwarves
|
||||
|
||||
[scenario]
|
||||
|
||||
id="7_a_Dealing with Dwarves"
|
||||
name= _ "Dealing with Dwarves"
|
||||
label= _ "Dealing with Dwarves"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Level 7.b: Talking with Trolls
|
||||
|
||||
[scenario]
|
||||
|
||||
id="7b_Talking_with_Trolls"
|
||||
name= _ "Talking with Trolls"
|
||||
label= _ "Talking with Trolls"
|
||||
|
|
|
@ -1547,7 +1547,6 @@
|
|||
# wmllint: recognize Durth
|
||||
# wmllint: recognize Othgar
|
||||
|
||||
|
||||
[message]
|
||||
description=Durth
|
||||
message= _ "Huff, huff. First the boss tells us to patrol these caves, and then these durn caves start flooding. What next?"
|
||||
|
@ -4528,7 +4527,7 @@
|
|||
|
||||
[then]
|
||||
#if Kaleh isn't the unit moving outside then Eloh calls for him
|
||||
# wmllint: recognize Eloh
|
||||
# wmllint: recognize Eloh
|
||||
|
||||
[message]
|
||||
description=Eloh
|
||||
|
@ -6758,16 +6757,16 @@
|
|||
[/time_area]
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/kaleh-abilities.cfg}
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ALLY_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ALLY_DEATH
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define ALLY_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef ALLY_DEATH
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/global-events.cfg}
|
||||
[/scenario]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Level 9: Blood is Thicker than Water...
|
||||
|
||||
[scenario]
|
||||
|
||||
id="9_Blood_is_Thicker_Than_Water"
|
||||
name= _ "Blood is Thicker than Water"
|
||||
label= _ "Blood is Thicker than Water"
|
||||
|
@ -3054,7 +3053,7 @@
|
|||
[/filter]
|
||||
kill=yes
|
||||
variable=Zhul_statue
|
||||
# wmllint: recognize Zhul_statue
|
||||
# wmllint: recognize Zhul_statue
|
||||
[/store_unit]
|
||||
|
||||
{VARIABLE Zhul_statue.description "Zhul_statue"}
|
||||
|
@ -4179,22 +4178,22 @@
|
|||
[/event]
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/kaleh-abilities.cfg}
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define LATE_ALLY_DEATH
|
||||
#enddef
|
||||
#define KROMPH_DEATH
|
||||
#enddef
|
||||
#define ESANOO_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef LATE_ALLY_DEATH
|
||||
#undef ESANOO_DEATH
|
||||
#undef KROMPH_DEATH
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define LATE_ALLY_DEATH
|
||||
#enddef
|
||||
#define KROMPH_DEATH
|
||||
#enddef
|
||||
#define ESANOO_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef LATE_ALLY_DEATH
|
||||
#undef ESANOO_DEATH
|
||||
#undef KROMPH_DEATH
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/global-events.cfg}
|
||||
[/scenario]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Level 10: Speaking with the Fishes
|
||||
|
||||
[scenario]
|
||||
|
||||
id="10_Speaking_with_the_Fishes"
|
||||
name= _ "Speaking with the Fishes"
|
||||
label= _ "Speaking with the Fishes"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Level 11: The Battle for Zocthanol Isle
|
||||
|
||||
[scenario]
|
||||
|
||||
id="11_Battle_for_Zocthanol_Isle"
|
||||
name= _ "The Battle for Zocthanol Isle"
|
||||
label= _ "The Battle for Zocthanol Isle"
|
||||
|
@ -1755,12 +1754,12 @@
|
|||
[filter]
|
||||
side=1
|
||||
[filter_location]
|
||||
radius=5
|
||||
x,y=13,9
|
||||
[filter_radius]
|
||||
terrain=W*
|
||||
[/filter_radius]
|
||||
[/filter_location]
|
||||
radius=5
|
||||
x,y=13,9
|
||||
[filter_radius]
|
||||
terrain=W*
|
||||
[/filter_radius]
|
||||
[/filter_location]
|
||||
[/filter]
|
||||
|
||||
{UNIT_T (Sea Serpent) (Sea Serpent) ( _ "Sea Serpent") 2 13 9}
|
||||
|
@ -2435,20 +2434,19 @@
|
|||
[/if]
|
||||
[/event]
|
||||
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define LATE_ALLY_DEATH
|
||||
#enddef
|
||||
#define ESANOO_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef LATE_ALLY_DEATH
|
||||
#undef ESANOO_DEATH
|
||||
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define LATE_ALLY_DEATH
|
||||
#enddef
|
||||
#define ESANOO_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef LATE_ALLY_DEATH
|
||||
#undef ESANOO_DEATH
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/global-events.cfg}
|
||||
[/scenario]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Level 12: The Final Confrontation
|
||||
|
||||
[scenario]
|
||||
|
||||
id="12_The_Final_Confrontation"
|
||||
name= _ "The Final Confrontation"
|
||||
label= _ "The Final Confrontation"
|
||||
|
@ -1915,19 +1914,19 @@
|
|||
#[/event]
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/kaleh-abilities.cfg}
|
||||
#define FINAL_FIGHT
|
||||
#enddef
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define LATE_ALLY_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef LATE_ALLY_DEATH
|
||||
#undef FINAL_FIGHT
|
||||
#define FINAL_FIGHT
|
||||
#enddef
|
||||
#define KALEH_DEATH
|
||||
#enddef
|
||||
#define FRIEND_DEATH
|
||||
#enddef
|
||||
#define LATE_ALLY_DEATH
|
||||
#enddef
|
||||
{@campaigns/Under_the_Burning_Suns/utils/deaths.cfg}
|
||||
#undef KALEH_DEATH
|
||||
#undef FRIEND_DEATH
|
||||
#undef LATE_ALLY_DEATH
|
||||
#undef FINAL_FIGHT
|
||||
|
||||
{@campaigns/Under_the_Burning_Suns/utils/global-events.cfg}
|
||||
[/scenario]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Level 13: Epilogue
|
||||
|
||||
[scenario]
|
||||
|
||||
id="13_Epilogue"
|
||||
name= _ "Epilogue"
|
||||
label= _ "Epilogue"
|
||||
|
|
|
@ -1,63 +1,62 @@
|
|||
#textdomain wesnoth-utbs
|
||||
|
||||
# The aim of this module is to collate all of the important map settings and get them out of the way
|
||||
# Generaly once these red one they won't be touched in the future.
|
||||
|
||||
|
||||
# It's a good practice to name the scenario file according to scenario id. It's even better to put a scenario number in front
|
||||
# of the name, in this way if anyone in future will have to do something with your files he or she won't have to waste time
|
||||
# on finding out in what order should he read the scenarios.
|
||||
|
||||
id="1_The_Morning_After"
|
||||
name= _ "The Morning After"
|
||||
|
||||
# Map data, note lack of any symbols in fornt of the path below, this means only /data/ folder will be search, userdata will be omitted
|
||||
|
||||
map_data="{campaigns/Under_the_Burning_Suns/maps/01_The_Morning_After.map}"
|
||||
next_scenario=2_Across_the_Harsh_Sands
|
||||
{TURNS 34 32 30}
|
||||
|
||||
# Since the scenario can't end until all the elves are rescued we can't allow it to end with the death of the necromancer
|
||||
victory_when_enemies_defeated=no
|
||||
|
||||
# Whole campaign uses custom timescheudle assuming day - short night - day - long night which is supposed to simulate a world
|
||||
# with two suns in the sky. Custom times of day are defined in /utils/time.cfg
|
||||
{DAWN1}
|
||||
{MORNING1}
|
||||
{MIDDAY1}
|
||||
{AFTERNOON1}
|
||||
{DUSK1}
|
||||
{SHORTDARK}
|
||||
{DAWN2}
|
||||
{MORNING2}
|
||||
{MIDDAY2}
|
||||
{AFTERNOON2}
|
||||
{DUSK2}
|
||||
{LONGDARK1}
|
||||
{LONGDARK2}
|
||||
{LONGDARK3}
|
||||
{LONGDARK4}
|
||||
|
||||
# The playlist for the scenario, only one file for now
|
||||
[music]
|
||||
name=revelation.ogg
|
||||
[/music]
|
||||
|
||||
# And the story. Disclaimer, introduction to the campaign, and first scenario
|
||||
[story]
|
||||
[part]
|
||||
story= _ "Note: This campaign is probably not the best one for beginners. It changes certain Wesnoth standards, such as the elves' stats and the day/night cycle. This campaign emphasizes role-playing elements and tends to have longer scenarios with changing objectives. For these reasons I strongly suggest that you occasionally save your game mid-scenario, so you won't lose all your progress if you get stuck and have to start over."
|
||||
[/part]
|
||||
[part]
|
||||
background="misc/kaleh_story.jpg"
|
||||
story= _ "This is the chronicle of the journey of the Quenoth elves from their homeland in the Great Southern Desert. I write this story so that our descendants may know of our travels, and remember the sacrifices we made."
|
||||
[/part]
|
||||
[part]
|
||||
background="misc/kaleh_story.jpg"
|
||||
story= _ "Chapter 1: I, Kaleh, grew up amidst the shifting sands, under our two suns Sela and Naia. It was a land of hot dry days and cold nights, of roaming horrors, where water was more valuable than gold. We had lived among the sands ever since the forests fell eons ago. It was a hard savage land, but we were tougher still, and we managed to survive settled around a rare oasis. We had heavily fortified our village against any marauders and we were the biggest encampment we knew of. My uncle, Tanuil, led us for many years, and trained us to be self-sufficient and strong against all enemies. A people struggling in an ocean of sand, we thought we were ready for anything. All that changed one fateful night, when the sky rained fire..."
|
||||
[/part]
|
||||
[part]
|
||||
background="misc/night_of_fallen_stars.jpg"
|
||||
story= _ "I remember that night as if it were yesterday. I was not prone to dreaming, but as I slept I had a strange vision. I didn't have long to ponder it though, because I was woken in the dark by the sound of deafening crashes, splintering wood and shouting elves. That night the sky rained flaming rocks, boulders bigger than you could imagine. They smote the landscape like lightning bolts, setting fire to whatever could burn and crushing houses, walls, and elves. There was nowhere to hide, nowhere to go for protection. I was so afraid, I thought that if I tried to flee I would be smashed, so I hid and prayed to Eloh. I never prayed before as hard as I did that night. I heard cries and screams outside, but I could not force myself to move. And somehow, eventually the thin yellow tendrils of a sickly dawn stole over the horizon, as if Naia herself were shocked by the devastation she saw."
|
||||
[/part]
|
||||
[/story]
|
||||
#textdomain wesnoth-utbs
|
||||
|
||||
# The aim of this module is to collate all of the important map settings and get them out of the way
|
||||
# Generaly once these red one they won't be touched in the future.
|
||||
|
||||
# It's a good practice to name the scenario file according to scenario id. It's even better to put a scenario number in front
|
||||
# of the name, in this way if anyone in future will have to do something with your files he or she won't have to waste time
|
||||
# on finding out in what order should he read the scenarios.
|
||||
|
||||
id="1_The_Morning_After"
|
||||
name= _ "The Morning After"
|
||||
|
||||
# Map data, note lack of any symbols in fornt of the path below, this means only /data/ folder will be search, userdata will be omitted
|
||||
|
||||
map_data="{campaigns/Under_the_Burning_Suns/maps/01_The_Morning_After.map}"
|
||||
next_scenario=2_Across_the_Harsh_Sands
|
||||
{TURNS 34 32 30}
|
||||
|
||||
# Since the scenario can't end until all the elves are rescued we can't allow it to end with the death of the necromancer
|
||||
victory_when_enemies_defeated=no
|
||||
|
||||
# Whole campaign uses custom timescheudle assuming day - short night - day - long night which is supposed to simulate a world
|
||||
# with two suns in the sky. Custom times of day are defined in /utils/time.cfg
|
||||
{DAWN1}
|
||||
{MORNING1}
|
||||
{MIDDAY1}
|
||||
{AFTERNOON1}
|
||||
{DUSK1}
|
||||
{SHORTDARK}
|
||||
{DAWN2}
|
||||
{MORNING2}
|
||||
{MIDDAY2}
|
||||
{AFTERNOON2}
|
||||
{DUSK2}
|
||||
{LONGDARK1}
|
||||
{LONGDARK2}
|
||||
{LONGDARK3}
|
||||
{LONGDARK4}
|
||||
|
||||
# The playlist for the scenario, only one file for now
|
||||
[music]
|
||||
name=revelation.ogg
|
||||
[/music]
|
||||
|
||||
# And the story. Disclaimer, introduction to the campaign, and first scenario
|
||||
[story]
|
||||
[part]
|
||||
story= _ "Note: This campaign is probably not the best one for beginners. It changes certain Wesnoth standards, such as the elves' stats and the day/night cycle. This campaign emphasizes role-playing elements and tends to have longer scenarios with changing objectives. For these reasons I strongly suggest that you occasionally save your game mid-scenario, so you won't lose all your progress if you get stuck and have to start over."
|
||||
[/part]
|
||||
[part]
|
||||
background="misc/kaleh_story.jpg"
|
||||
story= _ "This is the chronicle of the journey of the Quenoth elves from their homeland in the Great Southern Desert. I write this story so that our descendants may know of our travels, and remember the sacrifices we made."
|
||||
[/part]
|
||||
[part]
|
||||
background="misc/kaleh_story.jpg"
|
||||
story= _ "Chapter 1: I, Kaleh, grew up amidst the shifting sands, under our two suns Sela and Naia. It was a land of hot dry days and cold nights, of roaming horrors, where water was more valuable than gold. We had lived among the sands ever since the forests fell eons ago. It was a hard savage land, but we were tougher still, and we managed to survive settled around a rare oasis. We had heavily fortified our village against any marauders and we were the biggest encampment we knew of. My uncle, Tanuil, led us for many years, and trained us to be self-sufficient and strong against all enemies. A people struggling in an ocean of sand, we thought we were ready for anything. All that changed one fateful night, when the sky rained fire..."
|
||||
[/part]
|
||||
[part]
|
||||
background="misc/night_of_fallen_stars.jpg"
|
||||
story= _ "I remember that night as if it were yesterday. I was not prone to dreaming, but as I slept I had a strange vision. I didn't have long to ponder it though, because I was woken in the dark by the sound of deafening crashes, splintering wood and shouting elves. That night the sky rained flaming rocks, boulders bigger than you could imagine. They smote the landscape like lightning bolts, setting fire to whatever could burn and crushing houses, walls, and elves. There was nowhere to hide, nowhere to go for protection. I was so afraid, I thought that if I tried to flee I would be smashed, so I hid and prayed to Eloh. I never prayed before as hard as I did that night. I heard cries and screams outside, but I could not force myself to move. And somehow, eventually the thin yellow tendrils of a sickly dawn stole over the horizon, as if Naia herself were shocked by the devastation she saw."
|
||||
[/part]
|
||||
[/story]
|
||||
|
|
|
@ -1,335 +1,333 @@
|
|||
#textdomain wesnoth-utbs
|
||||
|
||||
# We're going to use this piece of WML in two different places without a change, that's why it's placed within a macro
|
||||
#define DARKSORCERER_INTRO
|
||||
# Place the bad guy, give him proper gold an income
|
||||
[unit]
|
||||
#ifdef HARD
|
||||
type=Necromancer
|
||||
#else
|
||||
type=Dark Sorcerer
|
||||
#endif
|
||||
description=Xanthos
|
||||
user_description= _ "Xanthos"
|
||||
canrecruit=yes
|
||||
x=46
|
||||
y=3
|
||||
side=3
|
||||
[/unit]
|
||||
[modify_side]
|
||||
side=3
|
||||
{GOLD 150 175 200}
|
||||
{INCOME 12 15 20}
|
||||
[/modify_side]
|
||||
[remove_shroud]
|
||||
side=1
|
||||
x=44-48
|
||||
y=1-5
|
||||
[/remove_shroud]
|
||||
[message]
|
||||
description=Xanthos
|
||||
message= _ "This place reeks of the stench of death, I could smell it from miles away. Oh how I love it, it is the smell of power, the inevitable triumph of death over life. Puny elves, I shall use the corpses of your families to create an army of undead! All shall bow down before Xanthos the Necromancer!"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "His timing couldn't be worse. I know that undead cultists often prey on small targets, but they haven't had the guts to attack us for years. Why has Eloh heaped so much misfortune upon us?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Have some more faith girl, the goddess does not give us more than we can handle. With Eloh's grace we shall yet triumph over this pretender."
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "Bah, I've fought these dark cultists before. They can be killed just like anyone else, and our elvish hunters can easily decimate their skeleton armies."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "I have heard of your kind, foul necromancer. You travel the sands, daring to bring back and enslave those who have passed on. But we will prove to you that death is not all-powerful. You shall not desecrate the bodies of my kith and kin! You shall learn to fear the wrath of Eloh and the Quenoth elves!"
|
||||
[/message]
|
||||
[place_shroud]
|
||||
side=1
|
||||
x=44-48
|
||||
y=1-5
|
||||
[/place_shroud]
|
||||
[objectives]
|
||||
summary= _ "New Objectives:"
|
||||
show=yes
|
||||
[objective]
|
||||
description= _ "Rescue Surviving Elves"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Defeat Xanthos"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Kaleh, Nym, Garak or Zhul"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
#enddef
|
||||
|
||||
# Normal necromancer placement, happens around turn 10 depending on difficulty level
|
||||
[event]
|
||||
#ifdef EASY
|
||||
name=turn 11
|
||||
#endif
|
||||
#ifdef NORMAL
|
||||
name=turn 10
|
||||
#endif
|
||||
#ifdef HARD
|
||||
name=turn 9
|
||||
#endif
|
||||
# If Xanthos does not exist and undead gold is unmodified it means he never showed up. We need this check
|
||||
# in case player triggered him earlier and managed to kill already, otherwise he might get spawned once more
|
||||
[store_side]
|
||||
side=3
|
||||
variable=temp
|
||||
[/store_side]
|
||||
[if]
|
||||
[not]
|
||||
[have_unit]
|
||||
description=Xanthos
|
||||
[/have_unit]
|
||||
[/not]
|
||||
[variable]
|
||||
name=temp.gold
|
||||
numerical_equals=100
|
||||
[/variable]
|
||||
[then]
|
||||
{DARKSORCERER_INTRO}
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE temp}
|
||||
[/event]
|
||||
|
||||
# When dark sorcerer dies, checks to make sure elves have been rescued before ending the scenario. If no set an event
|
||||
# that checks if that changed on each move. It's ugly but there is no better way of doing that at the moment
|
||||
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
description=Xanthos
|
||||
[/filter]
|
||||
[sound]
|
||||
name=wail-long.wav
|
||||
[/sound]
|
||||
[kill]
|
||||
side=3
|
||||
animate=yes
|
||||
[/kill]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "The necromancer is finally vanquished."
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "And at last the dead shall have their rest."
|
||||
[/message]
|
||||
[if]
|
||||
[variable]
|
||||
name=rescued_elves
|
||||
not_equals=5
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "The necromancer is dead, but I don't think we've explored the entire village. There may still be elves that need rescuing. We should go back and check. "
|
||||
[/message]
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[filter]
|
||||
x=1-60
|
||||
y=1-60
|
||||
side=1
|
||||
[/filter]
|
||||
[if]
|
||||
[variable]
|
||||
name=rescued_elves
|
||||
equals=5
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "We've explored the village and I think we've rescued the last of the survivors."
|
||||
[/message]
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
[/endlevel]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
[/then]
|
||||
[else]
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
[/endlevel]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
# This event prevents player from running to dark sorcerer's base before he shows up on turn 11. If the player
|
||||
# approaches his base before turn 11 he appears and attacks. Either way the unit moving into the area also comments
|
||||
# on the plight of those elves who lived out in the open sands.
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x=37-60
|
||||
y=1-12
|
||||
side=1
|
||||
[/filter]
|
||||
|
||||
[if]
|
||||
[not]
|
||||
[have_unit]
|
||||
side=3
|
||||
[/have_unit]
|
||||
[/not]
|
||||
[then]
|
||||
{DARKSORCERER_INTRO}
|
||||
[/then]
|
||||
[/if]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Some of our people felt crowded in the village, and wanted to live out on the open sands. They thought they could flee to the safety of our walls if danger came. I shudder to think what has happened to them."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# Elvish hunting party shows up on turn 16
|
||||
[event]
|
||||
name=turn 16
|
||||
[remove_shroud]
|
||||
side=1
|
||||
x=24-32
|
||||
y=1-6
|
||||
[/remove_shroud]
|
||||
{LOYAL_UNIT 1 "Desert Hunter" 29 2 "Pythos" (_"Pythos")}
|
||||
[+unit]
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
{LOYAL_UNIT 1 "Desert Fighter" 28 2 "Shea" ( _ "Shea")}
|
||||
[+unit]
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
{LOYAL_UNIT 1 "Desert Fighter" 29 1 "Narn" ( _ "Narn")}
|
||||
[+unit]
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
{LOYAL_UNIT 1 "Desert Scout" 27 2 "Jokli" ( _ "Jokli")}
|
||||
[+unit]
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
{LOYAL_UNIT 1 "Desert Archer" 28 1 "Lyia" ( _ "Lyia")}
|
||||
[+unit]
|
||||
gender=female
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
[message]
|
||||
description=Pythos
|
||||
message= _ "Hail, is anyone still alive?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Yes, and we could certainly use your help. A necromancer has been attacking us, he intends to use our fallen comrades as fodder for his evil magics. Where have you been?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Pythos
|
||||
message= _ "We were out far in the sands, searching for prey and roaming orcs. As soon as we saw the rock storm we raced back as fast as we could. I only wish we could have come sooner."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "No use crying over spilt water. But we're sure glad you're here now."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# On victory dialogue
|
||||
[event]
|
||||
name=victory
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "It seems that we finally have some peace. But what do we do now?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "Where is Tanuil and his family?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "The keep has been crushed by the rocks. We could find no survivors."
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Too many have died this night."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "Our village is in ruins. The walls that were built by our ancestors over generations have been demolished in a space of hours. Most of our dwellings are destroyed. And the great tree itself is no more. One thing is obvious, we cannot stay here."
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "You are a fool to despair. This has always been our home. The water here is good, we know this land. We can rebuild; Eloh willing, we can thrive again."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "Think for a moment. Who else has seen the rock storm? What other foes are coming to pick over the remains of our people? There is no mercy in the desert, and we have many enemies who would seek to gain in our time of weakness."
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "Impudent girl, you should not speak so to your elders, or to your betters."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "I have a right to speak my mind!"
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Peace, please calm yourselves. In chaos there is nothing but death and destruction. Even in this time of trial we must show our fortitude, and follow our laws. Without laws we are like beasts in the desert, fighting over scraps of meat. Among the survivors Kaleh is by heritage the closest relative to Tanuil and thus our leader. What say you Kaleh?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Last night, before the rock storm, I heard a voice in my sleep. It sounded like sweet music, and somehow I knew it was Eloh. I still remember her exact words: 'You must be strong, young elf, for you enter a time of peril. The home you know will be destroyed, and you must lead your people to a new land. To the north you will find salvation and peace. Cross the desert and head to the mountains. Fear not, for I will guide you and protect you.' I'm not sure why I'm the one she chose to appeal to, but if this is her will, I will see it done. Our home is gone and the desert is a harsh place. If Eloh has prepared a new home for us, then I will lead us there."
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "I fear what dangers lurk in the harsh sands and beyond to the north, but because you are our leader, I will follow your counsel."
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Then let us collect what supplies we can from the wreckage and head north with great haste. Our home is protection no longer, we must find a new haven for our people."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "What about the bodies of the dead? We can't leave them to be torn by crows or desecrated by other dark mages."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "I agree, we should not forget our dead. We should build a huge pyre and burn them with proper ceremony, so that the smoke may carry them on to the next realm."
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Kaleh, I don't want to tarry longer than necessary, but I agree that we must see to the dead before we leave. Garak, you and your men start collecting our dead. Nym, help me find oil and wood so that we may build a pyre."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "And so it was done. The dead were laid reverently on top of what little wood we could find. But the fire was big enough to burn the bodies to ashes and speed their souls to the hereafter. I remember at the time that the death of so many of our people was not the best omen for the start of such a large journey. They were the first of our people to die in this great endeavor, but they were to be far from the last."
|
||||
[/message]
|
||||
|
||||
# Clear variables
|
||||
{CLEAR_VARIABLE seen_mudcrawler}
|
||||
{CLEAR_VARIABLE rescued_elves}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=time over
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "What's that to the north? It looks like even more undead! The rock storm must have attracted other necromancers. There's no way we can defeat them all. We've run out of time. There's no escape. Eloh save us!"
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
|
||||
|
||||
#textdomain wesnoth-utbs
|
||||
|
||||
# We're going to use this piece of WML in two different places without a change, that's why it's placed within a macro
|
||||
#define DARKSORCERER_INTRO
|
||||
# Place the bad guy, give him proper gold an income
|
||||
[unit]
|
||||
#ifdef HARD
|
||||
type=Necromancer
|
||||
#else
|
||||
type=Dark Sorcerer
|
||||
#endif
|
||||
description=Xanthos
|
||||
user_description= _ "Xanthos"
|
||||
canrecruit=yes
|
||||
x=46
|
||||
y=3
|
||||
side=3
|
||||
[/unit]
|
||||
[modify_side]
|
||||
side=3
|
||||
{GOLD 150 175 200}
|
||||
{INCOME 12 15 20}
|
||||
[/modify_side]
|
||||
[remove_shroud]
|
||||
side=1
|
||||
x=44-48
|
||||
y=1-5
|
||||
[/remove_shroud]
|
||||
[message]
|
||||
description=Xanthos
|
||||
message= _ "This place reeks of the stench of death, I could smell it from miles away. Oh how I love it, it is the smell of power, the inevitable triumph of death over life. Puny elves, I shall use the corpses of your families to create an army of undead! All shall bow down before Xanthos the Necromancer!"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "His timing couldn't be worse. I know that undead cultists often prey on small targets, but they haven't had the guts to attack us for years. Why has Eloh heaped so much misfortune upon us?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Have some more faith girl, the goddess does not give us more than we can handle. With Eloh's grace we shall yet triumph over this pretender."
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "Bah, I've fought these dark cultists before. They can be killed just like anyone else, and our elvish hunters can easily decimate their skeleton armies."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "I have heard of your kind, foul necromancer. You travel the sands, daring to bring back and enslave those who have passed on. But we will prove to you that death is not all-powerful. You shall not desecrate the bodies of my kith and kin! You shall learn to fear the wrath of Eloh and the Quenoth elves!"
|
||||
[/message]
|
||||
[place_shroud]
|
||||
side=1
|
||||
x=44-48
|
||||
y=1-5
|
||||
[/place_shroud]
|
||||
[objectives]
|
||||
summary= _ "New Objectives:"
|
||||
show=yes
|
||||
[objective]
|
||||
description= _ "Rescue Surviving Elves"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Defeat Xanthos"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Kaleh, Nym, Garak or Zhul"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
#enddef
|
||||
|
||||
# Normal necromancer placement, happens around turn 10 depending on difficulty level
|
||||
[event]
|
||||
#ifdef EASY
|
||||
name=turn 11
|
||||
#endif
|
||||
#ifdef NORMAL
|
||||
name=turn 10
|
||||
#endif
|
||||
#ifdef HARD
|
||||
name=turn 9
|
||||
#endif
|
||||
# If Xanthos does not exist and undead gold is unmodified it means he never showed up. We need this check
|
||||
# in case player triggered him earlier and managed to kill already, otherwise he might get spawned once more
|
||||
[store_side]
|
||||
side=3
|
||||
variable=temp
|
||||
[/store_side]
|
||||
[if]
|
||||
[not]
|
||||
[have_unit]
|
||||
description=Xanthos
|
||||
[/have_unit]
|
||||
[/not]
|
||||
[variable]
|
||||
name=temp.gold
|
||||
numerical_equals=100
|
||||
[/variable]
|
||||
[then]
|
||||
{DARKSORCERER_INTRO}
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE temp}
|
||||
[/event]
|
||||
|
||||
# When dark sorcerer dies, checks to make sure elves have been rescued before ending the scenario. If no set an event
|
||||
# that checks if that changed on each move. It's ugly but there is no better way of doing that at the moment
|
||||
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
description=Xanthos
|
||||
[/filter]
|
||||
[sound]
|
||||
name=wail-long.wav
|
||||
[/sound]
|
||||
[kill]
|
||||
side=3
|
||||
animate=yes
|
||||
[/kill]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "The necromancer is finally vanquished."
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "And at last the dead shall have their rest."
|
||||
[/message]
|
||||
[if]
|
||||
[variable]
|
||||
name=rescued_elves
|
||||
not_equals=5
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "The necromancer is dead, but I don't think we've explored the entire village. There may still be elves that need rescuing. We should go back and check. "
|
||||
[/message]
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[filter]
|
||||
x=1-60
|
||||
y=1-60
|
||||
side=1
|
||||
[/filter]
|
||||
[if]
|
||||
[variable]
|
||||
name=rescued_elves
|
||||
equals=5
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "We've explored the village and I think we've rescued the last of the survivors."
|
||||
[/message]
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
[/endlevel]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
[/then]
|
||||
[else]
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
[/endlevel]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
# This event prevents player from running to dark sorcerer's base before he shows up on turn 11. If the player
|
||||
# approaches his base before turn 11 he appears and attacks. Either way the unit moving into the area also comments
|
||||
# on the plight of those elves who lived out in the open sands.
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x=37-60
|
||||
y=1-12
|
||||
side=1
|
||||
[/filter]
|
||||
|
||||
[if]
|
||||
[not]
|
||||
[have_unit]
|
||||
side=3
|
||||
[/have_unit]
|
||||
[/not]
|
||||
[then]
|
||||
{DARKSORCERER_INTRO}
|
||||
[/then]
|
||||
[/if]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Some of our people felt crowded in the village, and wanted to live out on the open sands. They thought they could flee to the safety of our walls if danger came. I shudder to think what has happened to them."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# Elvish hunting party shows up on turn 16
|
||||
[event]
|
||||
name=turn 16
|
||||
[remove_shroud]
|
||||
side=1
|
||||
x=24-32
|
||||
y=1-6
|
||||
[/remove_shroud]
|
||||
{LOYAL_UNIT 1 "Desert Hunter" 29 2 "Pythos" (_"Pythos")}
|
||||
[+unit]
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
{LOYAL_UNIT 1 "Desert Fighter" 28 2 "Shea" ( _ "Shea")}
|
||||
[+unit]
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
{LOYAL_UNIT 1 "Desert Fighter" 29 1 "Narn" ( _ "Narn")}
|
||||
[+unit]
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
{LOYAL_UNIT 1 "Desert Scout" 27 2 "Jokli" ( _ "Jokli")}
|
||||
[+unit]
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
{LOYAL_UNIT 1 "Desert Archer" 28 1 "Lyia" ( _ "Lyia")}
|
||||
[+unit]
|
||||
gender=female
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
[message]
|
||||
description=Pythos
|
||||
message= _ "Hail, is anyone still alive?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Yes, and we could certainly use your help. A necromancer has been attacking us, he intends to use our fallen comrades as fodder for his evil magics. Where have you been?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Pythos
|
||||
message= _ "We were out far in the sands, searching for prey and roaming orcs. As soon as we saw the rock storm we raced back as fast as we could. I only wish we could have come sooner."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "No use crying over spilt water. But we're sure glad you're here now."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# On victory dialogue
|
||||
[event]
|
||||
name=victory
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "It seems that we finally have some peace. But what do we do now?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "Where is Tanuil and his family?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "The keep has been crushed by the rocks. We could find no survivors."
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Too many have died this night."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "Our village is in ruins. The walls that were built by our ancestors over generations have been demolished in a space of hours. Most of our dwellings are destroyed. And the great tree itself is no more. One thing is obvious, we cannot stay here."
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "You are a fool to despair. This has always been our home. The water here is good, we know this land. We can rebuild; Eloh willing, we can thrive again."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "Think for a moment. Who else has seen the rock storm? What other foes are coming to pick over the remains of our people? There is no mercy in the desert, and we have many enemies who would seek to gain in our time of weakness."
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "Impudent girl, you should not speak so to your elders, or to your betters."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "I have a right to speak my mind!"
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Peace, please calm yourselves. In chaos there is nothing but death and destruction. Even in this time of trial we must show our fortitude, and follow our laws. Without laws we are like beasts in the desert, fighting over scraps of meat. Among the survivors Kaleh is by heritage the closest relative to Tanuil and thus our leader. What say you Kaleh?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Last night, before the rock storm, I heard a voice in my sleep. It sounded like sweet music, and somehow I knew it was Eloh. I still remember her exact words: 'You must be strong, young elf, for you enter a time of peril. The home you know will be destroyed, and you must lead your people to a new land. To the north you will find salvation and peace. Cross the desert and head to the mountains. Fear not, for I will guide you and protect you.' I'm not sure why I'm the one she chose to appeal to, but if this is her will, I will see it done. Our home is gone and the desert is a harsh place. If Eloh has prepared a new home for us, then I will lead us there."
|
||||
[/message]
|
||||
[message]
|
||||
description=Garak
|
||||
message= _ "I fear what dangers lurk in the harsh sands and beyond to the north, but because you are our leader, I will follow your counsel."
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Then let us collect what supplies we can from the wreckage and head north with great haste. Our home is protection no longer, we must find a new haven for our people."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "What about the bodies of the dead? We can't leave them to be torn by crows or desecrated by other dark mages."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "I agree, we should not forget our dead. We should build a huge pyre and burn them with proper ceremony, so that the smoke may carry them on to the next realm."
|
||||
[/message]
|
||||
[message]
|
||||
description=Zhul
|
||||
message= _ "Kaleh, I don't want to tarry longer than necessary, but I agree that we must see to the dead before we leave. Garak, you and your men start collecting our dead. Nym, help me find oil and wood so that we may build a pyre."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "And so it was done. The dead were laid reverently on top of what little wood we could find. But the fire was big enough to burn the bodies to ashes and speed their souls to the hereafter. I remember at the time that the death of so many of our people was not the best omen for the start of such a large journey. They were the first of our people to die in this great endeavor, but they were to be far from the last."
|
||||
image=wesnoth-icon.png
|
||||
[/message]
|
||||
|
||||
# Clear variables
|
||||
{CLEAR_VARIABLE seen_mudcrawler}
|
||||
{CLEAR_VARIABLE rescued_elves}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=time over
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "What's that to the north? It looks like even more undead! The rock storm must have attracted other necromancers. There's no way we can defeat them all. We've run out of time. There's no escape. Eloh save us!"
|
||||
[/message]
|
||||
[/event]
|
||||
|
|
|
@ -1,211 +1,204 @@
|
|||
#textdomain wesnoth-utbs
|
||||
|
||||
# This module handles events attached to four villages outside oasis not near necromancer fort. Scenario assumes that
|
||||
# there is a chance to find an unit in each of them unless they have been captured by undead already.
|
||||
|
||||
#! -- Internal variables :
|
||||
# $i, $outer_villages[]{4 sets of coordinates}
|
||||
#! -- Depends on :
|
||||
# $elf_pool[], $elf_pool_counter
|
||||
#! -- Clears :
|
||||
# $elf_pool[], $elf_pool_counter
|
||||
|
||||
# For each village we need to prepare a pair of events, one in case it's initialy captured by player and one in case
|
||||
# it's ransacked by bad guys. Because it needs to be done before play starts, we're going to use 'start' event.
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
# There is a number of houses inside the oasis and even more tents by the necromancers fort, we need to make sure
|
||||
# that these are ignored. To do this we store coordinates ([store_locations]) of all desert villages (Dd^Vt) that
|
||||
# are not ([not]) within rectangle defined by points 40,1 60,12 (x=40-60, y=1-12) or ([or]) rectangle defined by 22,24 43,34 .
|
||||
# First rectangle includes all villages near necromancer, the second covers whole oasis. These coordinates are stored to
|
||||
# array called outer_villages (variable=outer_villages).
|
||||
|
||||
[store_locations]
|
||||
variable=outer_villages
|
||||
terrain=Dd^Vt
|
||||
[not]
|
||||
x=40-60
|
||||
y=1-12
|
||||
[or]
|
||||
x=22-43
|
||||
y=24-34
|
||||
[/or]
|
||||
[/not]
|
||||
[/store_locations]
|
||||
|
||||
# Now for each stored set of coordinates we need to prepare a capture event that can be triggered both by good and bad guys.
|
||||
# To do this we declare an iterator.
|
||||
{VARIABLE i 0}
|
||||
|
||||
# And use foreach macro, that simulates an loop walking over an array from beginning to end.
|
||||
{FOREACH outer_villages i}
|
||||
|
||||
# In this way for each village we declare an capture event
|
||||
[event]
|
||||
name=capture
|
||||
|
||||
# That triggers for both side 1 and 3 on a village of coordinates x,y
|
||||
[filter]
|
||||
side=1,3
|
||||
x=$outer_villages[$i].x
|
||||
y=$outer_villages[$i].y
|
||||
[/filter]
|
||||
|
||||
# Now depending on which side captured the village there will be different outcomes.
|
||||
[if]
|
||||
|
||||
# When unit capturing village belongs to a player
|
||||
[variable]
|
||||
name=unit.side
|
||||
equals=1
|
||||
[/variable]
|
||||
[then]
|
||||
|
||||
# We generate a random number between 1 and 100
|
||||
{RANDOM 1..100}
|
||||
|
||||
# And check if it's lower than a treshold of finding an unit that's dependent on diffficulty level
|
||||
# 60% on easy, 50% on normal, 40% on hard. We use preprocesor to choose apropriate chance
|
||||
[if]
|
||||
[variable]
|
||||
name=random
|
||||
#ifdef EASY
|
||||
less_than_equal=60
|
||||
#endif
|
||||
#ifdef NORMAL
|
||||
less_than_equal=50
|
||||
#endif
|
||||
#ifdef HARD
|
||||
less_than_equal=40
|
||||
#endif
|
||||
[/variable]
|
||||
[then]
|
||||
|
||||
# So the RNG smiled upon the player, time to pick an random elf from pool we prepared in scenario_start
|
||||
# but we have keep drawing until we hit a nonblank record, since some of them will be cleared already
|
||||
# so we prepare a loop that's going to run until our check on random variable evaluates to ture.
|
||||
# For this we need to set random to a value that will evaluate as false to guarantee at least one loop pass.
|
||||
{VARIABLE random $elf_pool_counter}
|
||||
|
||||
[while]
|
||||
[variable]
|
||||
name=elf_pool[$random].type
|
||||
equals=""
|
||||
[/variable]
|
||||
[do]
|
||||
|
||||
# Now we can draw an elf. It's important to remember that even though we have $elf_pool_counter
|
||||
# units, they are indexed from 0 so we need to substract 1 from drawn number
|
||||
{RANDOM 1..$elf_pool_counter}
|
||||
{VARIABLE_OP random add -1}
|
||||
|
||||
# Create an unit with data drawn and place it on an empty hex by the village, since he village itself is occupied
|
||||
[unit]
|
||||
side=1
|
||||
type=$elf_pool[$random].type
|
||||
description=$elf_pool[$random].description
|
||||
user_description=_ $elf_pool[$random].description
|
||||
gender=$elf_pool[$random].gender
|
||||
x=$x1
|
||||
y=$y1
|
||||
animate=yes
|
||||
|
||||
# Make the unit loyal on easy
|
||||
#ifdef EASY
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
[/modifications]
|
||||
#endif
|
||||
|
||||
# And have it start with 0hp on hard
|
||||
#ifdef HARD
|
||||
moves=0
|
||||
#endif
|
||||
[/unit]
|
||||
[/do]
|
||||
[/while]
|
||||
|
||||
# When done remove uniit from the pool
|
||||
{CLEAR_VARIABLE elf_pool[$random]}
|
||||
|
||||
# And write joyful message
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Oh good, some elves have survived in this outer settlement. They've agreed to help us search for other survivors."
|
||||
[/message]
|
||||
[/then]
|
||||
# And when RNG plays hard ball we need to inform the player he's out of luck
|
||||
[else]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "The encampment is empty. I wonder what happened to the inhabitants?"
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[/then]
|
||||
|
||||
# When the unit belongs to the bad guy... Tough luck, there is actualy no bonus from that now, so we just set up another event
|
||||
# this time for player only for the time he recaptures the village.
|
||||
[else]
|
||||
[event]
|
||||
name=capture
|
||||
[filter]
|
||||
side=1
|
||||
x=$outer_villages[$i].x
|
||||
y=$outer_villages[$i].y
|
||||
[/filter]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "This encampment has been abandoned. There are signs of a struggle and a few bloodstains but nothing else. I fear for those elves who lived out here."
|
||||
[/message]
|
||||
[/event]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
{NEXT i}
|
||||
|
||||
{CLEAR_VARIABLE i}
|
||||
{CLEAR_VARIABLE outer_villages}
|
||||
[/event]
|
||||
|
||||
|
||||
# This event unstores all unspawned units from the pool into the recall list. Reason for this is pretty simple, it's much easier to finish
|
||||
# sc3 for example having two free hunters than two free scouts.
|
||||
|
||||
[event]
|
||||
name=victory
|
||||
|
||||
{VARIABLE i 0}
|
||||
{FOREACH elf_pool i}
|
||||
[if]
|
||||
[variable]
|
||||
name=elf_pool[$i].type
|
||||
not_equals=""
|
||||
[/variable]
|
||||
[then]
|
||||
[unit]
|
||||
side=1
|
||||
type=$elf_pool[$random].type
|
||||
description=$elf_pool[$random].description
|
||||
user_description=_ $elf_pool[$random].description
|
||||
gender=$elf_pool[$random].gender
|
||||
x=$x1
|
||||
y=$y1
|
||||
animate=yes
|
||||
#ifdef EASY
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
[/modifications]
|
||||
#endif
|
||||
[/unit]
|
||||
[/then]
|
||||
[/if]
|
||||
{NEXT i}
|
||||
{CLEAR_VARIABLE elf_pool}
|
||||
{CLEAR_VARIABLE elf_pool_counter}
|
||||
[/event]
|
||||
|
||||
|
||||
#textdomain wesnoth-utbs
|
||||
|
||||
# This module handles events attached to four villages outside oasis not near necromancer fort. Scenario assumes that
|
||||
# there is a chance to find an unit in each of them unless they have been captured by undead already.
|
||||
|
||||
#! -- Internal variables :
|
||||
# $i, $outer_villages[]{4 sets of coordinates}
|
||||
#! -- Depends on :
|
||||
# $elf_pool[], $elf_pool_counter
|
||||
#! -- Clears :
|
||||
# $elf_pool[], $elf_pool_counter
|
||||
|
||||
# For each village we need to prepare a pair of events, one in case it's initialy captured by player and one in case
|
||||
# it's ransacked by bad guys. Because it needs to be done before play starts, we're going to use 'start' event.
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
# There is a number of houses inside the oasis and even more tents by the necromancers fort, we need to make sure
|
||||
# that these are ignored. To do this we store coordinates ([store_locations]) of all desert villages (Dd^Vt) that
|
||||
# are not ([not]) within rectangle defined by points 40,1 60,12 (x=40-60, y=1-12) or ([or]) rectangle defined by 22,24 43,34 .
|
||||
# First rectangle includes all villages near necromancer, the second covers whole oasis. These coordinates are stored to
|
||||
# array called outer_villages (variable=outer_villages).
|
||||
|
||||
[store_locations]
|
||||
variable=outer_villages
|
||||
terrain=Dd^Vt
|
||||
[not]
|
||||
x=40-60
|
||||
y=1-12
|
||||
[or]
|
||||
x=22-43
|
||||
y=24-34
|
||||
[/or]
|
||||
[/not]
|
||||
[/store_locations]
|
||||
|
||||
# Now for each stored set of coordinates we need to prepare a capture event that can be triggered both by good and bad guys.
|
||||
# To do this we declare an iterator.
|
||||
{VARIABLE i 0}
|
||||
|
||||
# And use foreach macro, that simulates an loop walking over an array from beginning to end.
|
||||
{FOREACH outer_villages i}
|
||||
|
||||
# In this way for each village we declare an capture event
|
||||
[event]
|
||||
name=capture
|
||||
|
||||
# That triggers for both side 1 and 3 on a village of coordinates x,y
|
||||
[filter]
|
||||
side=1,3
|
||||
x=$outer_villages[$i].x
|
||||
y=$outer_villages[$i].y
|
||||
[/filter]
|
||||
|
||||
# Now depending on which side captured the village there will be different outcomes.
|
||||
[if]
|
||||
# When unit capturing village belongs to a player
|
||||
[variable]
|
||||
name=unit.side
|
||||
equals=1
|
||||
[/variable]
|
||||
[then]
|
||||
# We generate a random number between 1 and 100
|
||||
{RANDOM 1..100}
|
||||
|
||||
# And check if it's lower than a treshold of finding an unit that's dependent on diffficulty level
|
||||
# 60% on easy, 50% on normal, 40% on hard. We use preprocesor to choose apropriate chance
|
||||
[if]
|
||||
[variable]
|
||||
name=random
|
||||
#ifdef EASY
|
||||
less_than_equal=60
|
||||
#endif
|
||||
#ifdef NORMAL
|
||||
less_than_equal=50
|
||||
#endif
|
||||
#ifdef HARD
|
||||
less_than_equal=40
|
||||
#endif
|
||||
[/variable]
|
||||
[then]
|
||||
# So the RNG smiled upon the player, time to pick an random elf from pool we prepared in scenario_start
|
||||
# but we have keep drawing until we hit a nonblank record, since some of them will be cleared already
|
||||
# so we prepare a loop that's going to run until our check on random variable evaluates to ture.
|
||||
# For this we need to set random to a value that will evaluate as false to guarantee at least one loop pass.
|
||||
{VARIABLE random $elf_pool_counter}
|
||||
|
||||
[while]
|
||||
[variable]
|
||||
name=elf_pool[$random].type
|
||||
equals=""
|
||||
[/variable]
|
||||
[do]
|
||||
# Now we can draw an elf. It's important to remember that even though we have $elf_pool_counter
|
||||
# units, they are indexed from 0 so we need to substract 1 from drawn number
|
||||
{RANDOM 1..$elf_pool_counter}
|
||||
{VARIABLE_OP random add -1}
|
||||
|
||||
# Create an unit with data drawn and place it on an empty hex by the village, since he village itself is occupied
|
||||
[unit]
|
||||
side=1
|
||||
type=$elf_pool[$random].type
|
||||
description=$elf_pool[$random].description
|
||||
user_description=_ $elf_pool[$random].description
|
||||
gender=$elf_pool[$random].gender
|
||||
x=$x1
|
||||
y=$y1
|
||||
animate=yes
|
||||
|
||||
# Make the unit loyal on easy
|
||||
#ifdef EASY
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
[/modifications]
|
||||
#endif
|
||||
|
||||
# And have it start with 0hp on hard
|
||||
#ifdef HARD
|
||||
moves=0
|
||||
#endif
|
||||
[/unit]
|
||||
[/do]
|
||||
[/while]
|
||||
|
||||
# When done remove uniit from the pool
|
||||
{CLEAR_VARIABLE elf_pool[$random]}
|
||||
|
||||
# And write joyful message
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Oh good, some elves have survived in this outer settlement. They've agreed to help us search for other survivors."
|
||||
[/message]
|
||||
[/then]
|
||||
# And when RNG plays hard ball we need to inform the player he's out of luck
|
||||
[else]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "The encampment is empty. I wonder what happened to the inhabitants?"
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[/then]
|
||||
|
||||
# When the unit belongs to the bad guy... Tough luck, there is actualy no bonus from that now, so we just set up another event
|
||||
# this time for player only for the time he recaptures the village.
|
||||
[else]
|
||||
[event]
|
||||
name=capture
|
||||
[filter]
|
||||
side=1
|
||||
x=$outer_villages[$i].x
|
||||
y=$outer_villages[$i].y
|
||||
[/filter]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "This encampment has been abandoned. There are signs of a struggle and a few bloodstains but nothing else. I fear for those elves who lived out here."
|
||||
[/message]
|
||||
[/event]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
{NEXT i}
|
||||
|
||||
{CLEAR_VARIABLE i}
|
||||
{CLEAR_VARIABLE outer_villages}
|
||||
[/event]
|
||||
|
||||
# This event unstores all unspawned units from the pool into the recall list. Reason for this is pretty simple, it's much easier to finish
|
||||
# sc3 for example having two free hunters than two free scouts.
|
||||
|
||||
[event]
|
||||
name=victory
|
||||
|
||||
{VARIABLE i 0}
|
||||
{FOREACH elf_pool i}
|
||||
[if]
|
||||
[variable]
|
||||
name=elf_pool[$i].type
|
||||
not_equals=""
|
||||
[/variable]
|
||||
[then]
|
||||
[unit]
|
||||
side=1
|
||||
type=$elf_pool[$random].type
|
||||
description=$elf_pool[$random].description
|
||||
user_description=_ $elf_pool[$random].description
|
||||
gender=$elf_pool[$random].gender
|
||||
x=$x1
|
||||
y=$y1
|
||||
animate=yes
|
||||
#ifdef EASY
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
[/modifications]
|
||||
#endif
|
||||
[/unit]
|
||||
[/then]
|
||||
[/if]
|
||||
{NEXT i}
|
||||
{CLEAR_VARIABLE elf_pool}
|
||||
{CLEAR_VARIABLE elf_pool_counter}
|
||||
[/event]
|
||||
|
|
|
@ -1,126 +1,122 @@
|
|||
#textdomain wesnoth-utbs
|
||||
|
||||
#Internal macros : VILLAGE_EVENT
|
||||
|
||||
# macro for setting up the village occupants
|
||||
|
||||
#define VILLAGE_EVENT TYPE NAME GENDER
|
||||
{VARIABLE elf_pool[$elf_pool_counter].type {TYPE}}
|
||||
{VARIABLE elf_pool[$elf_pool_counter].name {NAME}}
|
||||
{VARIABLE elf_pool[$elf_pool_counter].gender {GENDER}}
|
||||
{VARIABLE_OP elf_pool_counter add 1}
|
||||
#enddef
|
||||
|
||||
# prestart events:
|
||||
# set starting scenario objectives
|
||||
# set starting variables
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
# set starting scenario objectives
|
||||
[objectives]
|
||||
summary= _ "Starting Objectives:"
|
||||
[objective]
|
||||
description= _ "Rescue Surviving Elves"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Kaleh, Nym, Garak or Zhul"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
|
||||
# There are 3 mudcrawler encounter spots, in the NW and SW corner and in the barracks.
|
||||
# Depending on which way you circle around the village, you will
|
||||
# encounter the NW or barracks first.
|
||||
|
||||
# At start seen a mudcrawler is false
|
||||
{VARIABLE seen_mudcrawler "no"}
|
||||
|
||||
# Can't end scenario until all elves have been rescued (5 events)
|
||||
{VARIABLE rescued_elves 0}
|
||||
|
||||
# Elves in outlying villages - set array index and elf pool counter
|
||||
{VARIABLE elf_pool_counter 0}
|
||||
|
||||
# Elves in the pool - 2 fighters, 2 archers, 2 hunters, 2 scouts
|
||||
{VILLAGE_EVENT "Desert Fighter" _"Lrea" "female"}
|
||||
{VILLAGE_EVENT "Desert Fighter" _"Piyru" "male"}
|
||||
{VILLAGE_EVENT "Desert Archer" _"Frea" "female"}
|
||||
{VILLAGE_EVENT "Desert Archer" _"Danu" "male"}
|
||||
{VILLAGE_EVENT "Desert Hunter" _"Hamuil" "male"}
|
||||
{VILLAGE_EVENT "Desert Hunter" _"Anioh" "male"}
|
||||
{VILLAGE_EVENT "Desert Scout" _"Vemuil" "male"}
|
||||
{VILLAGE_EVENT "Desert Scout" _"Taliu" "male"}
|
||||
[/event]
|
||||
|
||||
#undef VILLAGE_EVENT
|
||||
|
||||
# Dialogue at start of scenario
|
||||
[event]
|
||||
name=start
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "Hey Kaleh, are you in there?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Nym, is that you?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "Yes, come on out already. The storm has passed. With the morning light Naia has ended the terrible night."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Has the sky really stopped falling?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "I already told you, the sky is clear and empty. Now come quickly, silly, others may need our help."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "What's happened? Oh Eloh, the craters are everywhere, everything is gone, ruined. I can hardly recognize our village. I didn't think it could be this bad."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "C'mon Kaleh, we have to go see if anyone is hurt or needs help. I think I hear people calling from the south. Now is not a time for fear, we must be strong. After all you are the nephew of Tanuil, our leader, and you must answer to the call of duty. Perhaps in the light of day things won't be as bad as you think. Let's explore the village and see who else has survived the night."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Wait, our keep is just to the east. Our leader Tanuil must surely be recruiting others to help deal with the devastation. Perhaps we should go to the keep, before we explore the rest of the village."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# Dialogue when Nym and Kaleh see the ruined keep
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x=33-40
|
||||
y=19-26
|
||||
side=1
|
||||
[/filter]
|
||||
[allow_undo]
|
||||
[/allow_undo]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Tanuil's keep, our beautiful fortress, it is destroyed. How will we summon our people to battle?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "We must rally those survivors we can find amidst the rubble. It doesn't look like anyone survived, but at least we can thank Eloh it was a quick death. But come on, we can't dwell on the dead, we must help the living."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "But if Tanuil is dead, who will lead us?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "That's a question for another time. Let's keep exploring the wreckage."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
|
||||
|
||||
|
||||
#textdomain wesnoth-utbs
|
||||
|
||||
#Internal macros : VILLAGE_EVENT
|
||||
|
||||
# macro for setting up the village occupants
|
||||
|
||||
#define VILLAGE_EVENT TYPE NAME GENDER
|
||||
{VARIABLE elf_pool[$elf_pool_counter].type {TYPE}}
|
||||
{VARIABLE elf_pool[$elf_pool_counter].name {NAME}}
|
||||
{VARIABLE elf_pool[$elf_pool_counter].gender {GENDER}}
|
||||
{VARIABLE_OP elf_pool_counter add 1}
|
||||
#enddef
|
||||
|
||||
# prestart events:
|
||||
# set starting scenario objectives
|
||||
# set starting variables
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
# set starting scenario objectives
|
||||
[objectives]
|
||||
summary= _ "Starting Objectives:"
|
||||
[objective]
|
||||
description= _ "Rescue Surviving Elves"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Kaleh, Nym, Garak or Zhul"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
|
||||
# There are 3 mudcrawler encounter spots, in the NW and SW corner and in the barracks.
|
||||
# Depending on which way you circle around the village, you will
|
||||
# encounter the NW or barracks first.
|
||||
|
||||
# At start seen a mudcrawler is false
|
||||
{VARIABLE seen_mudcrawler "no"}
|
||||
|
||||
# Can't end scenario until all elves have been rescued (5 events)
|
||||
{VARIABLE rescued_elves 0}
|
||||
|
||||
# Elves in outlying villages - set array index and elf pool counter
|
||||
{VARIABLE elf_pool_counter 0}
|
||||
|
||||
# Elves in the pool - 2 fighters, 2 archers, 2 hunters, 2 scouts
|
||||
{VILLAGE_EVENT "Desert Fighter" _"Lrea" "female"}
|
||||
{VILLAGE_EVENT "Desert Fighter" _"Piyru" "male"}
|
||||
{VILLAGE_EVENT "Desert Archer" _"Frea" "female"}
|
||||
{VILLAGE_EVENT "Desert Archer" _"Danu" "male"}
|
||||
{VILLAGE_EVENT "Desert Hunter" _"Hamuil" "male"}
|
||||
{VILLAGE_EVENT "Desert Hunter" _"Anioh" "male"}
|
||||
{VILLAGE_EVENT "Desert Scout" _"Vemuil" "male"}
|
||||
{VILLAGE_EVENT "Desert Scout" _"Taliu" "male"}
|
||||
[/event]
|
||||
|
||||
#undef VILLAGE_EVENT
|
||||
|
||||
# Dialogue at start of scenario
|
||||
[event]
|
||||
name=start
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "Hey Kaleh, are you in there?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Nym, is that you?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "Yes, come on out already. The storm has passed. With the morning light Naia has ended the terrible night."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Has the sky really stopped falling?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "I already told you, the sky is clear and empty. Now come quickly, silly, others may need our help."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "What's happened? Oh Eloh, the craters are everywhere, everything is gone, ruined. I can hardly recognize our village. I didn't think it could be this bad."
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "C'mon Kaleh, we have to go see if anyone is hurt or needs help. I think I hear people calling from the south. Now is not a time for fear, we must be strong. After all you are the nephew of Tanuil, our leader, and you must answer to the call of duty. Perhaps in the light of day things won't be as bad as you think. Let's explore the village and see who else has survived the night."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Wait, our keep is just to the east. Our leader Tanuil must surely be recruiting others to help deal with the devastation. Perhaps we should go to the keep, before we explore the rest of the village."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
# Dialogue when Nym and Kaleh see the ruined keep
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x=33-40
|
||||
y=19-26
|
||||
side=1
|
||||
[/filter]
|
||||
[allow_undo]
|
||||
[/allow_undo]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "Tanuil's keep, our beautiful fortress, it is destroyed. How will we summon our people to battle?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "We must rally those survivors we can find amidst the rubble. It doesn't look like anyone survived, but at least we can thank Eloh it was a quick death. But come on, we can't dwell on the dead, we must help the living."
|
||||
[/message]
|
||||
[message]
|
||||
description=Kaleh
|
||||
message= _ "But if Tanuil is dead, who will lead us?"
|
||||
[/message]
|
||||
[message]
|
||||
description=Nym
|
||||
message= _ "That's a question for another time. Let's keep exploring the wreckage."
|
||||
[/message]
|
||||
[/event]
|
||||
|
|
|
@ -1,94 +1,93 @@
|
|||
#textdomain wesnoth-utbs
|
||||
|
||||
[side]
|
||||
side=1
|
||||
description=Kaleh
|
||||
user_description= _ "Kaleh"
|
||||
type=Kaleh
|
||||
variation=Youth
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
#ifndef HARD
|
||||
{TRAIT_RESILIENT}
|
||||
#ifdef EASY
|
||||
{TRAIT_INTELLIGENT}
|
||||
#endif
|
||||
#endif
|
||||
[/modifications]
|
||||
canrecruit=yes
|
||||
|
||||
{GOLD 0 0 0}
|
||||
{INCOME 4 2 0}
|
||||
controller=human
|
||||
shroud=yes
|
||||
fog=no
|
||||
|
||||
# Start with Nym
|
||||
|
||||
[unit]
|
||||
type=Nym Hunter
|
||||
description=Nym
|
||||
user_description= _ "Nym"
|
||||
x=27
|
||||
y=22
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
#ifndef HARD
|
||||
{TRAIT_RESILIENT}
|
||||
#ifdef EASY
|
||||
{TRAIT_QUICK}
|
||||
#endif
|
||||
#endif
|
||||
[/modifications]
|
||||
{IS_HERO}
|
||||
[/unit]
|
||||
[/side]
|
||||
|
||||
# Monster side : mudcrawlers and cuttlefish
|
||||
|
||||
[side]
|
||||
no_leader=yes
|
||||
side=2
|
||||
controller=ai
|
||||
shroud=no
|
||||
fog=no
|
||||
team_name=monsters
|
||||
[ai]
|
||||
aggression=1.0
|
||||
caution=0.0
|
||||
# weak ai
|
||||
{ATTACK_DEPTH 1 2 3}
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
# Undead side, doesn't start with a leader
|
||||
[side]
|
||||
no_leader=yes
|
||||
side=3
|
||||
controller=ai
|
||||
shroud=no
|
||||
fog=no
|
||||
team_name=evil
|
||||
#Values reset later on, needed for proper execution of Necromancer event
|
||||
{GOLD 100 100 100}
|
||||
{INCOME -2 -2 -2}
|
||||
#ifndef HARD
|
||||
recruit=Skeleton, Skeleton Archer, Vampire Bat, Ghoul, Dark Adept
|
||||
#endif
|
||||
#ifdef HARD
|
||||
recruit=Revenant, Bone Shooter, Blood Bat, Necrophage, Dark Adept, Deathblade
|
||||
#endif
|
||||
[ai]
|
||||
recruitment_ignore_bad_movement=yes
|
||||
recruitment_ignore_bad_combat=yes
|
||||
#ifdef HARD
|
||||
recruitment_pattern=scout,fighter,fighter,fighter,archer
|
||||
#else
|
||||
recruitment_pattern=scout,fighter,archer,fighter
|
||||
#endif
|
||||
aggression=0.80
|
||||
caution=0.10
|
||||
{ATTACK_DEPTH 2 3 4}
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
#textdomain wesnoth-utbs
|
||||
|
||||
[side]
|
||||
side=1
|
||||
description=Kaleh
|
||||
user_description= _ "Kaleh"
|
||||
type=Kaleh
|
||||
variation=Youth
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
#ifndef HARD
|
||||
{TRAIT_RESILIENT}
|
||||
#ifdef EASY
|
||||
{TRAIT_INTELLIGENT}
|
||||
#endif
|
||||
#endif
|
||||
[/modifications]
|
||||
canrecruit=yes
|
||||
|
||||
{GOLD 0 0 0}
|
||||
{INCOME 4 2 0}
|
||||
controller=human
|
||||
shroud=yes
|
||||
fog=no
|
||||
|
||||
# Start with Nym
|
||||
|
||||
[unit]
|
||||
type=Nym Hunter
|
||||
description=Nym
|
||||
user_description= _ "Nym"
|
||||
x=27
|
||||
y=22
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
#ifndef HARD
|
||||
{TRAIT_RESILIENT}
|
||||
#ifdef EASY
|
||||
{TRAIT_QUICK}
|
||||
#endif
|
||||
#endif
|
||||
[/modifications]
|
||||
{IS_HERO}
|
||||
[/unit]
|
||||
[/side]
|
||||
|
||||
# Monster side : mudcrawlers and cuttlefish
|
||||
|
||||
[side]
|
||||
no_leader=yes
|
||||
side=2
|
||||
controller=ai
|
||||
shroud=no
|
||||
fog=no
|
||||
team_name=monsters
|
||||
[ai]
|
||||
aggression=1.0
|
||||
caution=0.0
|
||||
# weak ai
|
||||
{ATTACK_DEPTH 1 2 3}
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
# Undead side, doesn't start with a leader
|
||||
[side]
|
||||
no_leader=yes
|
||||
side=3
|
||||
controller=ai
|
||||
shroud=no
|
||||
fog=no
|
||||
team_name=evil
|
||||
#Values reset later on, needed for proper execution of Necromancer event
|
||||
{GOLD 100 100 100}
|
||||
{INCOME -2 -2 -2}
|
||||
#ifndef HARD
|
||||
recruit=Skeleton, Skeleton Archer, Vampire Bat, Ghoul, Dark Adept
|
||||
#endif
|
||||
#ifdef HARD
|
||||
recruit=Revenant, Bone Shooter, Blood Bat, Necrophage, Dark Adept, Deathblade
|
||||
#endif
|
||||
[ai]
|
||||
recruitment_ignore_bad_movement=yes
|
||||
recruitment_ignore_bad_combat=yes
|
||||
#ifdef HARD
|
||||
recruitment_pattern=scout,fighter,fighter,fighter,archer
|
||||
#else
|
||||
recruitment_pattern=scout,fighter,archer,fighter
|
||||
#endif
|
||||
aggression=0.80
|
||||
caution=0.10
|
||||
{ATTACK_DEPTH 2 3 4}
|
||||
[/ai]
|
||||
[/side]
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -260,7 +260,7 @@
|
|||
#ifdef EASY
|
||||
{UNIT_ (Walking Corpse) () ("") 2 21 24}
|
||||
#endif
|
||||
{VARIABLE_OP i add 1}
|
||||
{VARIABLE_OP i add 1}
|
||||
[/do]
|
||||
[/while]
|
||||
#endif
|
||||
|
@ -425,7 +425,7 @@
|
|||
#ifdef EASY
|
||||
{UNIT_ (Walking Corpse) () ("") 3 23 6}
|
||||
#endif
|
||||
{VARIABLE_OP i add 1}
|
||||
{VARIABLE_OP i add 1}
|
||||
[/do]
|
||||
[/while]
|
||||
#endif
|
||||
|
@ -702,7 +702,7 @@
|
|||
#ifdef EASY
|
||||
{UNIT_ (Walking Corpse) () ("") 3 23 6}
|
||||
#endif
|
||||
{VARIABLE_OP i add 1}
|
||||
{VARIABLE_OP i add 1}
|
||||
[/do]
|
||||
[/while]
|
||||
#endif
|
||||
|
@ -992,7 +992,7 @@
|
|||
#ifdef EASY
|
||||
{UNIT_ (Walking Corpse) () ("") 2 21 24}
|
||||
#endif
|
||||
{VARIABLE_OP i add 1}
|
||||
{VARIABLE_OP i add 1}
|
||||
[/do]
|
||||
[/while]
|
||||
#endif
|
||||
|
|
|
@ -263,7 +263,7 @@
|
|||
[/unit]
|
||||
#enddef
|
||||
|
||||
#wmllint: usage of "Desert Archer" is archer
|
||||
#wmllint: usage of "Desert Archer" is archer
|
||||
|
||||
{DESERT_ARCHER "" 17 false}
|
||||
{DESERT_ARCHER 2 18 true}
|
||||
|
|
|
@ -142,7 +142,7 @@
|
|||
[/unit]
|
||||
#enddef
|
||||
|
||||
#wmllint: usage of "Desert Fighter" is fighter
|
||||
#wmllint: usage of "Desert Fighter" is fighter
|
||||
|
||||
{DESERT_FIGHTER "" 15 false}
|
||||
{DESERT_FIGHTER 2 16 true}
|
||||
|
|
|
@ -124,7 +124,7 @@
|
|||
[/unit]
|
||||
#enddef
|
||||
|
||||
#wmllint: usage of "Desert Hunter" is mixed fighter
|
||||
#wmllint: usage of "Desert Hunter" is mixed fighter
|
||||
|
||||
{DESERT_HUNTER "" 20 false}
|
||||
{DESERT_HUNTER 2 21 true}
|
||||
|
|
|
@ -123,9 +123,9 @@
|
|||
[/frame]
|
||||
[/else]
|
||||
[frame]
|
||||
begin=100
|
||||
end=200
|
||||
image=units/dwarves/explorer-attack4.png
|
||||
begin=100
|
||||
end=200
|
||||
image=units/dwarves/explorer-attack4.png
|
||||
[/frame]
|
||||
[/attack_anim]
|
||||
[/unit]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#textdomain wesnoth-utbs
|
||||
[unit]
|
||||
[base_unit]
|
||||
id=Ghost
|
||||
id=Ghost
|
||||
[/base_unit]
|
||||
id=EGhost
|
||||
name= _ "Ethereal Ghost"
|
||||
|
@ -17,6 +17,5 @@
|
|||
|
||||
Trapped within a shroud of vile enchantments, a spirit likens unto the wind in the sails of a ship. The contrivance that results from this prison is an unfailing servant, which can be bound to whatever task their master sees fit."+{SPECIAL_NOTES}+{SPECIAL_NOTES_DRAIN}+{SPECIAL_NOTES_SPIRIT}+{SPECIAL_NOTES_ARCANE}+_"SPECIAL_NOTE^ This unit is able to move through solid stone walls."
|
||||
|
||||
#wmllint: usage of "EGhost" is scout
|
||||
|
||||
#wmllint: usage of "EGhost" is scout
|
||||
[/unit]
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue