Merge pull request #810 from ln-zookeeper/quenoth_integration

UtBS: Integrate the redesigned Quenoth elves
This commit is contained in:
Lari Nieminen 2016-10-26 12:12:40 +03:00 committed by GitHub
commit 0b98a78d7e
95 changed files with 29615 additions and 132 deletions

View file

@ -31,6 +31,9 @@ Version 1.13.5+dev:
* S17: Resolved Wesnoth units returning to recall list not being healed
properly (bug #24952)
* S19: Resolved undead veterans victory condition not working properly.
* Under the Burning Suns:
* Redesign of all desert elf units (currently optional, selectable through
the difficulty menu).
* Language and i18n:
* Updated translations: Finnish, Russian
* Music and sound effects:

View file

@ -21,8 +21,11 @@
" + _"(Expert level, 10 scenarios.)"
{CAMPAIGN_DIFFICULTY EASY "data/campaigns/Under_the_Burning_Suns/images/units/elves-desert/hunter.png~RC(magenta>red)" ( _ "Desert Hunter") ( _ "Normal")}
{CAMPAIGN_DIFFICULTY NORMAL "data/campaigns/Under_the_Burning_Suns/images/units/elves-desert/sentinel.png~RC(magenta>red)" ( _ "Desert Sentinel") ( _ "Challenging")} {DEFAULT_DIFFICULTY}
{CAMPAIGN_DIFFICULTY NORMAL "data/campaigns/Under_the_Burning_Suns/images/units/elves-desert/sentinel.png~RC(magenta>red)" ( _ "Desert Sentinel") ( _ "Challenging")}
{CAMPAIGN_DIFFICULTY HARD "data/campaigns/Under_the_Burning_Suns/images/units/elves-desert/prowler.png~RC(magenta>red)" ( _ "Desert Prowler") ( _ "Nightmare")}
{CAMPAIGN_DIFFICULTY EASY_NEW "data/campaigns/Under_the_Burning_Suns/images/units/quenoth/fighter.png~RC(magenta>red)" ( _ "Fighter") ( _ "Normal, redesigned elf units")}
{CAMPAIGN_DIFFICULTY NORMAL_NEW "data/campaigns/Under_the_Burning_Suns/images/units/quenoth/warrior.png~RC(magenta>red)" ( _ "Warrior") ( _ "Challenging, redesigned elf units")} {DEFAULT_DIFFICULTY}
{CAMPAIGN_DIFFICULTY HARD_NEW "data/campaigns/Under_the_Burning_Suns/images/units/quenoth/champion.png~RC(magenta>red)" ( _ "Champion") ( _ "Nightmare, redesigned elf units")}
# UTBS credits
[about]
@ -139,6 +142,41 @@
#ifdef CAMPAIGN_UNDER_THE_BURNING_SUNS
#ifdef EASY_NEW
#define EASY
#enddef
#define UTBSNEW
#enddef
#endif
#ifdef NORMAL_NEW
#define NORMAL
#enddef
#define UTBSNEW
#enddef
#endif
#ifdef HARD_NEW
#define HARD
#enddef
#define UTBSNEW
#enddef
#endif
#ifdef UTBSNEW
#textdomain wesnoth
[+language]
EASY_NEW= _ "Easy"
NORMAL_NEW= _ "Medium"
HARD_NEW= _ "Hard"
[/language]
#textdomain wesnoth-utbs
# Need to re-load this for ON_DIFFICULTY to not break due to a missing
# EASY/NORMAL/HARD symbol
{core/macros/utils.cfg}
#endif
[binary_path]
path=data/campaigns/Under_the_Burning_Suns
[/binary_path]
@ -156,10 +194,65 @@
#Append utils folder
{UTBS_INCLUDE utils}
#ifdef UTBSNEW
# Add global events
[+campaign]
{WEAPON_SPECIAL_DAZE_EVENTS}
{ABILITY_FORMATION_EVENTS}
{ABILITY_DISENGAGE_EVENTS}
{ABILITY_SUPPORT_EVENTS}
# On recruit, this switches the higher-recruit-cost units to the normal
# types, so that the different cost variations don't need to be taken into
# account for example in unit filters.
#define DISCARD_RECRUIT_COST_HELPER_UNITS TYPE
[event]
name=recruit
first_time_only=no
[filter]
race=elf
[/filter]
[filter_condition]
[variable]
name=unit.type
contains={TYPE}
[/variable]
[variable]
name=unit.type
not_equals={TYPE}
[/variable]
[/filter_condition]
[modify_unit]
[filter]
x,y=$x1,$y1
[/filter]
type={TYPE}
[/modify_unit]
[/event]
#enddef
{DISCARD_RECRUIT_COST_HELPER_UNITS "Quenoth Fighter"}
{DISCARD_RECRUIT_COST_HELPER_UNITS "Quenoth Scout"}
{DISCARD_RECRUIT_COST_HELPER_UNITS "Quenoth Mystic"}
{DISCARD_RECRUIT_COST_HELPER_UNITS "Tauroch Rider"}
[/campaign]
#endif
#Append Units
[units]
{UTBS_INCLUDE units/units.cfg}
{UTBS_INCLUDE units/elves}
#ifdef UTBSNEW
{UTBS_INCLUDE units/quenoth}
#else
{UTBS_INCLUDE units/elves}
#endif
{UTBS_INCLUDE units/humans}
{UTBS_INCLUDE units/monsters}
{UTBS_INCLUDE units/nagas}
@ -174,7 +267,11 @@
[/hide_help]
[/units]
{UTBS_INCLUDE scenarios}
#ifdef UTBSNEW
{UTBS_INCLUDE scenarios}
#else
{UTBS_INCLUDE scenarios_old}
#endif
[lua]
code="wesnoth.require 'campaigns/Under_the_Burning_Suns/lua/theme.lua'"

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,012 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -21,5 +21,11 @@ function wesnoth.theme_items.unit_status()
} } )
end
if u.status.dazed then
table.insert(s, { "element", { image = "misc/dazed-status-icon.png",
tooltip = _ "dazed: This unit is dazed. It suffers a -10% penalty to both its defense and chance to hit (except for magical attacks)."
} } )
end
return s
end

View file

@ -147,44 +147,42 @@
[set_variables]
name=elf_pool
[value]
type="Desert Fighter"
type="Quenoth Fighter"
name= _ "Lrea"
gender=female
[/value]
[value]
type="Desert Fighter"
type="Quenoth Fighter"
name= _ "Piyru"
gender=male
[/value]
[value]
type="Desert Archer"
type="Quenoth Fighter"
name= _ "Frea"
gender=female
[/value]
[value]
type="Desert Archer"
type="Quenoth Scout"
name= _ "Danu"
gender=male
[/value]
#ifndef HARD
[value]
type="Desert Hunter"
type="Quenoth Scout"
name= _ "Hamuil"
gender=male
[/value]
[value]
type="Desert Hunter"
type="Quenoth Scout"
name= _ "Anioh"
gender=male
[/value]
#endif
[value]
type="Desert Scout"
type="Tauroch Rider"
name= _ "Vemuil"
gender=male
[/value]
[value]
type="Desert Scout"
type="Tauroch Rider"
name= _ "Taliu"
gender=male
[/value]
@ -310,15 +308,12 @@
add=1
[/set_variable]
{NAMED_GENERIC_UNIT 1 "Desert Fighter" 24 25 "Vecnu" ( _ "Vecnu")}
{NAMED_UNIT 1 "Desert Archer" 24 27 "Eranor" ( _ "Eranor") (
gender=male
random_traits,upkeep=yes,full
)}
{NAMED_UNIT 1 "Desert Archer" 21 25 "Seela" ( _ "Seela") (
{NAMED_GENERIC_UNIT 1 "Quenoth Fighter" 24 25 "Vecnu" ( _ "Vecnu")}
{NAMED_GENERIC_UNIT 1 "Quenoth Fighter" 24 27 "Eranor" ( _ "Eranor")}
{NAMED_GENERIC_UNIT 1 "Tauroch Rider" 21 25 "Seela" ( _ "Seela")}
[+unit]
gender=female
random_traits,upkeep=yes,full
)}
[/unit]
# Again core macro, monsters shouldnt have traits
{NOTRAIT_UNIT 2 "Giant Mudcrawler" 20 24}
@ -409,15 +404,15 @@
add=1
[/set_variable]
{NAMED_GENERIC_UNIT 1 "Desert Hunter" 24 34 "Eloshi" ( _ "Eloshi")}
{NAMED_UNIT 1 "Desert Archer" 19 33 "Illuvia" ( _ "Illuvia") (
{NAMED_GENERIC_UNIT 1 "Tauroch Rider" 24 34 "Eloshi" ( _ "Eloshi")}
{NAMED_GENERIC_UNIT 1 "Quenoth Scout" 19 33 "Illuvia" ( _ "Illuvia")}
[+unit]
gender=female
random_traits,upkeep=yes,full
)}
[/unit]
#ifdef HARD
{NAMED_GENERIC_UNIT 1 "Desert Fighter" 21 35 "Raynor" ( _ "Raynor")}
{NAMED_GENERIC_UNIT 1 "Quenoth Fighter" 21 35 "Raynor" ( _ "Raynor")}
#else
{NAMED_GENERIC_UNIT 1 "Desert Hunter" 21 35 "Raynor" ( _ "Raynor")}
{NAMED_GENERIC_UNIT 1 "Tauroch Rider" 21 35 "Raynor" ( _ "Raynor")}
#endif
{NOTRAIT_UNIT 2 "Giant Mudcrawler" 25 34}
@ -520,11 +515,11 @@
{ABILITY_TEACHING_EVENT}
[/unit]
{NAMED_GENERIC_UNIT 1 "Desert Fighter" 36 33 "Jorazan" ( _ "Jorazan")}
{NAMED_UNIT 1 "Desert Fighter" 35 34 "Zyara" ( _ "Zyara") (
{NAMED_GENERIC_UNIT 1 "Quenoth Fighter" 36 33 "Jorazan" ( _ "Jorazan")}
{NAMED_GENERIC_UNIT 1 "Quenoth Fighter" 35 34 "Zyara" ( _ "Zyara")}
[+unit]
gender=female
random_traits,upkeep=yes,full
)}
[/unit]
[message]
speaker=unit
@ -663,9 +658,9 @@
x,y=31,27
[/unit]
#ifndef HARD
{NAMED_GENERIC_UNIT 1 "Desert Shaman" 30 27 "Ryoko" ( _ "Ryoko")}
{NAMED_GENERIC_UNIT 1 "Quenoth Mystic" 30 27 "Ryoko" ( _ "Ryoko")}
#endif
{NAMED_GENERIC_UNIT 1 "Desert Shaman" 32 27 "Yuni" ( _ "Yuni")}
{NAMED_GENERIC_UNIT 1 "Quenoth Mystic" 32 27 "Yuni" ( _ "Yuni")}
[message]
speaker=Zhul
@ -817,7 +812,7 @@
[event]
name=stable found
{NAMED_GENERIC_UNIT 1 "Desert Scout" $x1 $y1 "Naru" (_"Naru")}
{NAMED_GENERIC_UNIT 1 "Quenoth Scout" $x1 $y1 "Naru" (_"Naru")}
[message]
speaker=Naru
@ -854,7 +849,7 @@
message= _ "Hey, Nisa, the rocks have stopped falling. You can come out now!"
[/message]
{NAMED_UNIT 1 "Desert Scout" $x1 $y1 "Nisa" (_"Nisa") (gender=female)}
{NAMED_UNIT 1 "Quenoth Scout" $x1 $y1 "Nisa" (_"Nisa") (gender=female)}
[set_variable]
name=rescued_elves
@ -1248,15 +1243,15 @@
y=1-6
[/remove_shroud]
{NAMED_GENERIC_UNIT 1 "Desert Hunter" 29 2 "Pythos" ( _ "Pythos")}
{NAMED_GENERIC_UNIT 1 "Quenoth Scout" 29 2 "Pythos" ( _ "Pythos")}
#ifndef HARD
{NAMED_GENERIC_UNIT 1 "Desert Fighter" 28 2 "Shea" ( _ "Shea")}
{NAMED_GENERIC_UNIT 1 "Quenoth Fighter" 28 2 "Shea" ( _ "Shea")}
#endif
{NAMED_GENERIC_UNIT 1 "Desert Fighter" 29 1 "Narn" ( _ "Narn")}
{NAMED_GENERIC_UNIT 1 "Quenoth Fighter" 29 1 "Narn" ( _ "Narn")}
#ifndef HARD
{NAMED_GENERIC_UNIT 1 "Desert Scout" 27 2 "Jokli" ( _ "Jokli")}
{NAMED_GENERIC_UNIT 1 "Quenoth Scout" 27 2 "Jokli" ( _ "Jokli")}
#endif
{NAMED_GENERIC_UNIT 1 "Desert Archer" 28 1 "Lyia" ( _ "Lyia")}
{NAMED_GENERIC_UNIT 1 "Quenoth Scout" 28 1 "Lyia" ( _ "Lyia")}
[+unit]
gender=female
[/unit]

View file

@ -22,12 +22,12 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=200
{INCOME 17 14 11}
controller=human
recruit=Desert Fighter, Desert Archer, Desert Hunter, Desert Shaman, Desert Scout
recruit=Quenoth Fighter,Tauroch Rider,Quenoth Scout,Quenoth Mystic
shroud=yes
fog=yes
{FLAG_VARIANT long}

View file

@ -31,10 +31,10 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
controller=human
recruit=Desert Fighter, Desert Archer, Desert Hunter, Desert Shaman, Desert Scout
recruit=Quenoth Fighter,Tauroch Rider,Quenoth Scout,Quenoth Mystic
gold=200
{INCOME 4 2 0}
{FLAG_VARIANT long}
@ -924,7 +924,7 @@
animate=yes
fire_event=no
[/kill]
{NAMED_NOTRAIT_UNIT 2 (Corrupted Elf) $ElvishGarak.x $ElvishGarak.y (Possessed Garak) ( _ "Possessed Garak")}
{NAMED_NOTRAIT_UNIT 2 (Corrupted Quenoth Elf) $ElvishGarak.x $ElvishGarak.y (Possessed Garak) ( _ "Possessed Garak")}
[fire_event]
name=garak_resists
[/fire_event]
@ -980,7 +980,7 @@
shroud=yes
reset_maps=yes
[/modify_side]
{NAMED_NOTRAIT_UNIT 2 (Corrupted Elf) 21 24 (Possessed Garak) ( _ "Possessed Garak")}
{NAMED_NOTRAIT_UNIT 2 (Corrupted Quenoth Elf) 21 24 (Possessed Garak) ( _ "Possessed Garak")}
[fire_event]
name=create_garak_minions_azkotep
[/fire_event]
@ -1063,7 +1063,7 @@
shroud=yes
reset_maps=yes
[/modify_side]
{NAMED_NOTRAIT_UNIT 3 (Corrupted Elf) 23 6 (Possessed Garak) ( _ "Possessed Garak")}
{NAMED_NOTRAIT_UNIT 3 (Corrupted Quenoth Elf) 23 6 (Possessed Garak) ( _ "Possessed Garak")}
[fire_event]
name=create_garak_minions_ystara
[/fire_event]
@ -1129,7 +1129,7 @@
animate=yes
fire_event=no
[/kill]
{NAMED_NOTRAIT_UNIT 2 (Corrupted Elf) $ElvishGarak.x $ElvishGarak.y (Possessed Garak) ( _ "Possessed Garak")}
{NAMED_NOTRAIT_UNIT 2 (Corrupted Quenoth Elf) $ElvishGarak.x $ElvishGarak.y (Possessed Garak) ( _ "Possessed Garak")}
[fire_event]
name=garak_resists
[/fire_event]
@ -1177,7 +1177,7 @@
shroud=yes
reset_maps=yes
[/modify_side]
{NAMED_NOTRAIT_UNIT 3 (Corrupted Elf) 23 6 (Possessed Garak) ( _ "Possessed Garak")}
{NAMED_NOTRAIT_UNIT 3 (Corrupted Quenoth Elf) 23 6 (Possessed Garak) ( _ "Possessed Garak")}
[fire_event]
name=create_garak_minions_ystara
[/fire_event]
@ -1255,7 +1255,7 @@
animate=yes
fire_event=no
[/kill]
{NAMED_NOTRAIT_UNIT 2 (Corrupted Elf) $ElvishGarak.x $ElvishGarak.y (Possessed Garak) ( _ "Possessed Garak")}
{NAMED_NOTRAIT_UNIT 2 (Corrupted Quenoth Elf) $ElvishGarak.x $ElvishGarak.y (Possessed Garak) ( _ "Possessed Garak")}
[fire_event]
name=garak_resists
[/fire_event]
@ -1303,7 +1303,7 @@
shroud=yes
reset_maps=yes
[/modify_side]
{NAMED_NOTRAIT_UNIT 2 (Corrupted Elf) 21 24 (Possessed Garak) ( _ "Possessed Garak")}
{NAMED_NOTRAIT_UNIT 2 (Corrupted Quenoth Elf) 21 24 (Possessed Garak) ( _ "Possessed Garak")}
[fire_event]
name=create_garak_minions_azkotep
[/fire_event]
@ -1396,7 +1396,7 @@
animate=no
fire_event=no
[/kill]
{NAMED_NOTRAIT_UNIT 2 (Corrupted Elf) $ElvishGarak.x $ElvishGarak.y (Possessed Garak) ( _ "Possessed Garak")}
{NAMED_NOTRAIT_UNIT 2 (Corrupted Quenoth Elf) $ElvishGarak.x $ElvishGarak.y (Possessed Garak) ( _ "Possessed Garak")}
[message]
speaker=Possessed Garak
message=_"No, fool! Stop!"
@ -1624,7 +1624,7 @@
name=turn_$ambush_turn
delayed_variable_substitution=no
{NAMED_UNIT 1 (Desert Scout) 1 1 (Elven Scout) ( _ "Wounded Elven Scout") (upkeep=free)}
{NAMED_UNIT 1 (Quenoth Scout) 1 1 (Elven Scout) ( _ "Wounded Elven Scout") (upkeep=free)}
[message]
speaker=Elven Scout
message=_"Orcs... Not far behind me... From the hills..."

View file

@ -20,7 +20,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=200
{INCOME 6 4 2}

View file

@ -24,7 +24,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=200
{INCOME 7 5 3}
@ -359,7 +359,7 @@
#create starting elves
[unit]
type=Desert Fighter
type=Quenoth Fighter
name= _ "Nantheos"
x=4
y=23
@ -371,7 +371,7 @@
[/unit]
[unit]
type=Desert Archer
type=Quenoth Fighter
name= _ "Sylestria"
x=5
y=25
@ -392,7 +392,7 @@
[/not]
[then]
[unit]
type=Desert Ranger
type=Quenoth Flanker
name= _ "Rygar"
x=6
y=24

View file

@ -26,7 +26,7 @@ _ "These undead trolls fight again in death as they did in life, except this tim
#this is the default
color=red
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=200
{INCOME 5 3 1}
@ -811,9 +811,9 @@ _ "These undead trolls fight again in death as they did in life, except this tim
# lava is ironically an alias of snow. Elves take 3 moves to cross it,
# except for mounted elves which take 4 (horses hate lava). Thus
# ensuring that no elf can move more than 2 hexes on lava
# with the exception of the desert shyde/star which can move 3 hexes
# with the exception of shydes which can move 3 hexes
# At the start of each turn, all units except the Desert Shyde/Star standing
# At the start of each turn, all units except winged ones standing
# on a lava hex take 25 damage. This damage can kill units.
[event]
@ -827,7 +827,7 @@ _ "These undead trolls fight again in death as they did in life, except this tim
[filter]
side=1,3,4
[not]
type=Desert Shyde,Desert Star,Dust Devil
type=Sun Shyde,Moon Shyde,Dust Devil
[/not]
[filter_location]
terrain=*^Yl
@ -971,7 +971,8 @@ _ "These undead trolls fight again in death as they did in life, except this tim
[message]
speaker=narrator
message= _ "Any unit that ends its turn on a lava hex, except the Desert Shyde and Star who can fly over the lava, will take 25 damage at the beginning of the next turn. This lava damage can kill units. Desert Shydes and Stars will just take $heat_damage damage per turn when flying over lava, though they too can die if they spend too much time over lava. Also because of the heat in the cavern, all units on cave floor hexes will take $heat_damage damage at the start of each turn. This heat damage can reduce a unit to 1 hit point, but it cant kill it."
#TODO: update
message= _ "Any unit that ends its turn on a lava hex, except Shydes who can fly over the lava, will take 25 damage at the beginning of the next turn. This lava damage can kill units. Shydes will just take $heat_damage damage per turn when flying over lava, though they too can die if they spend too much time over it. Also because of the heat in the cavern, all units on cave floor hexes will take $heat_damage damage at the start of each turn. This heat damage can reduce a unit to 1 hit point, but it cant kill it."
image=wesnoth-icon.png
[/message]

View file

@ -22,7 +22,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=200
{INCOME 5 3 1}
@ -1541,7 +1541,7 @@
[filter]
[not]
type=Desert Shyde, Desert Star
type=Sun Shyde,Moon Shyde
[/not]
x=17-21
y=8-11

View file

@ -20,7 +20,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=0
{NO_INCOME}

View file

@ -20,7 +20,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=0
{NO_INCOME}

View file

@ -23,7 +23,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=200
{INCOME 4 2 0}
@ -4326,12 +4326,12 @@
variable=Nymstats
[/store_unit]
{UNIT 1 (Desert Fighter) 66 2 (id,upkeep,generate_name=Dummy Unit1,free,no)}
{UNIT 1 (Desert Fighter) 57 3 (id,upkeep,generate_name=Dummy Unit2,free,no)}
{UNIT 1 (Desert Archer) 65 3 (id,upkeep,generate_name=Dummy Unit3,free,no)}
{UNIT 1 (Desert Archer) 59 2 (id,upkeep,generate_name=Dummy Unit4,free,no)}
{UNIT 1 (Desert Hunter) 58 5 (id,upkeep,generate_name=Dummy Unit5,free,no)}
{UNIT 1 (Desert Shaman) 62 2 (id,upkeep,generate_name=Dummy Unit6,free,no)}
{UNIT 1 (Quenoth Fighter) 66 2 (id,upkeep,generate_name=Dummy Unit1,free,no)}
{UNIT 1 (Quenoth Fighter) 57 3 (id,upkeep,generate_name=Dummy Unit2,free,no)}
{UNIT 1 (Quenoth Scout) 65 3 (id,upkeep,generate_name=Dummy Unit3,free,no)}
{UNIT 1 (Quenoth Scout) 59 2 (id,upkeep,generate_name=Dummy Unit4,free,no)}
{UNIT 1 (Quenoth Scout) 58 5 (id,upkeep,generate_name=Dummy Unit5,free,no)}
{UNIT 1 (Quenoth Mystic) 62 2 (id,upkeep,generate_name=Dummy Unit6,free,no)}
[scroll_to_unit]
id=Kaleh

View file

@ -21,7 +21,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=200
{INCOME 2 0 0}
@ -80,7 +80,7 @@
fog=no
team_name=human_ally
user_team_name=_"Human Allies"
recruit=Desert Fighter, Desert Archer, Desert Hunter, Desert Ranger, Desert Marksman, Desert Hero, Desert Captain, Desert Sentinel, Desert Horseman
recruit=Quenoth Fighter,Tauroch Rider,Quenoth Scout,Quenoth Warrior,Quenoth Flanker,Tauroch Vanguard,Quenoth Archer,Quenoth Horseman
[ai]
recruitment_pattern=fighter, archer, fighter, mixed fighter, scout
aggression=0.75
@ -347,7 +347,7 @@
#create starting elves
[unit]
type=Desert Fighter
type=Quenoth Fighter
id=Ulothanir
name= _ "Ulothanir"
x=47
@ -360,7 +360,7 @@
[/unit]
[unit]
type=Desert Archer
type=Quenoth Scout
id=Elonea
name= _ "Elonea"
x=44
@ -1666,7 +1666,7 @@
side=1
[/remove_shroud]
[unit]
type=Desert Captain
type=Quenoth Champion
id=Tanstafaal
name= _ "Tanstafaal"
side=3
@ -1715,13 +1715,17 @@
speaker=Tanstafaal
message= _ "Behold, our goddess has returned to us. All bow down to Eloh, our savior!"
[/message]
#TODO: add better role-based speaker selection
[message]
type=Desert Fighter3, Desert Fighter4, Desert Fighter5, Desert Fighter6, Desert Fighter7, Desert Fighter8, Desert Hunter3, Desert Hunter4, Desert Hunter5, Desert Hunter6, Desert Hunter7, Desert Hunter8
type_tree=Quenoth Mystic
[not]
id=Zhul
[/not]
side=1
message= _ "The Goddess!"
[/message]
[message]
type=Desert Archer3, Desert Archer4, Desert Archer5, Desert Archer6, Desert Archer7, Desert Archer8
type_tree=Quenoth Fighter
side=1
message= _ "Forgive me my sins!"
[/message]
@ -1738,17 +1742,20 @@
message= _ "I come to you with dire news: one of you has betrayed me, and is a traitor to your cause."
[/message]
[message]
type=Desert Fighter3, Desert Fighter4, Desert Fighter5, Desert Fighter6, Desert Fighter7, Desert Fighter8
type_tree=Quenoth Mystic
[not]
id=Zhul
[/not]
side=1
message= _ "What?"
[/message]
[message]
type=Desert Hunter3, Desert Hunter4, Desert Hunter5, Desert Hunter6, Desert Hunter7, Desert Hunter8
type_tree=Quenoth Scout
side=1
message= _ "No!"
[/message]
[message]
type=Desert Archer3, Desert Archer4, Desert Archer5, Desert Archer6, Desert Archer7, Desert Archer8
type_tree=Tauroch Rider
side=1
message= _ "Who?"
[/message]
@ -1779,7 +1786,7 @@
message= _ "Wait, my people, do not be deceived. This thing that appears by Tanstafaals side is not our god. I too was fooled at first, but I have come to realize by her actions that she is an impostor. When she appeared to me the night before Garak died, she told me to kill all that lived under the mountains, even the dwarves who ended up helping us. Likewise when we escaped from the caves, she appeared to me again, and told me to bow down to the humans, else she would destroy me. Never has Eloh threatened one of us or dictated our actions."
[/message]
[message]
type=Desert Fighter3, Desert Fighter4, Desert Fighter5, Desert Fighter6, Desert Fighter7, Desert Fighter8, Desert Hunter3, Desert Hunter4, Desert Hunter5, Desert Hunter6, Desert Hunter7, Desert Hunter8, Desert Archer3, Desert Archer4, Desert Archer5, Desert Archer6, Desert Archer7, Desert Archer8
type_tree=Quenoth Fighter,Quenoth Scout
side=1
message= _ "Why should we trust you? We have not heard Elohs words directly. Only now that you have led us into this folly has Eloh appeared to us."
[/message]
@ -1794,7 +1801,7 @@
message= _ "Wait, my people, do not be deceived. This thing that appears by Tanstafaals side is not our god. I too was fooled at first, but I have come to realize by her actions that she is an impostor. When she appeared to me the night before Garak died, she told me to kill all that lived under the mountains, even the trolls who ended up helping us. Likewise when we escaped from the caves, she appeared to me again, and told me to bow down to the humans, else she would destroy me. Never has Eloh threatened one of us or dictated our actions."
[/message]
[message]
type=Desert Fighter3, Desert Fighter4, Desert Fighter5, Desert Fighter6, Desert Fighter7, Desert Fighter8, Desert Hunter3, Desert Hunter4, Desert Hunter5, Desert Hunter6, Desert Hunter7, Desert Hunter8, Desert Archer3, Desert Archer4, Desert Archer5, Desert Archer6, Desert Archer7, Desert Archer8
type_tree=Quenoth Fighter,Quenoth Scout
side=1
message= _ "Why should we trust you? We have not heard these words directly. Only now that you have led us into this folly has she appeared to us."
[/message]
@ -1940,11 +1947,11 @@
# give tanstafaal some recruits
{NAMED_GENERIC_UNIT 3 (Desert Fighter) 48 16 () ( _ "Elvish Rebel")}
{NAMED_GENERIC_UNIT 3 (Desert Archer) 48 18 () ( _ "Elvish Rebel")}
{NAMED_GENERIC_UNIT 3 (Desert Hunter) 51 19 () ( _ "Elvish Rebel")}
{NAMED_GENERIC_UNIT 3 (Desert Hero) 47 18 () ( _ "Elvish Rebel")}
{NAMED_GENERIC_UNIT 3 (Desert Ranger) 50 20 () ( _ "Elvish Rebel")}
{NAMED_GENERIC_UNIT 3 (Quenoth Fighter) 48 16 () ( _ "Elvish Rebel")}
{NAMED_GENERIC_UNIT 3 (Tauroch Rider) 48 18 () ( _ "Elvish Rebel")}
{NAMED_GENERIC_UNIT 3 (Quenoth Scout) 51 19 () ( _ "Elvish Rebel")}
{NAMED_GENERIC_UNIT 3 (Quenoth Warrior) 47 18 () ( _ "Elvish Rebel")}
{NAMED_GENERIC_UNIT 3 (Quenoth Horseman) 50 20 () ( _ "Elvish Rebel")}
# modify income and gold for rebels

View file

@ -21,7 +21,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=0
{NO_INCOME}

View file

@ -24,7 +24,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=200
{NO_INCOME}
@ -362,7 +362,7 @@
#create starting elves
[unit]
type=Desert Hunter
type=Quenoth Fighter
name= _ "Eagath"
x=37
y=42
@ -374,7 +374,7 @@
[/unit]
[unit]
type=Desert Archer
type=Quenoth Scout
name= _ "Alusan"
x=35
y=43

View file

@ -33,7 +33,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=0
{NO_INCOME}
@ -449,14 +449,14 @@
[/message]
[move_unit_fake]
type=Desert Fighter
type=Quenoth Fighter
side=3
x=9,8
y=20,16
[/move_unit_fake]
[unit]
type=Desert Fighter
type=Quenoth Fighter
id=Anarion
name= _ "Anarion"
x=8
@ -476,14 +476,14 @@
[/delay]
[move_unit_fake]
type=Desert Archer
type=Tauroch Rider
side=3
x=11,12
y=20,16
[/move_unit_fake]
[unit]
type=Desert Archer
type=Tauroch Rider
id=Zylea
name= _ "Zylea"
x=12
@ -676,7 +676,7 @@
[/modify_unit]
[message]
type=Desert Fighter, Desert Archer
type=Quenoth Fighter, Tauroch Rider
message= _ "Huh? What happened?"
[/message]
@ -686,7 +686,7 @@
[/message]
[message]
type=Desert Fighter, Desert Archer
type=Quenoth Fighter, Tauroch Rider
message= _ "Yes priestess."
[/message]

View file

@ -20,7 +20,7 @@
[side]
side=1
id=Kaleh
type=Desert Fighter
type=Quenoth Youth
canrecruit=yes
gold=0
{NO_INCOME}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,660 @@
#textdomain wesnoth-utbs
[scenario]
id=07a_Dealing_with_Dwarves
name= _ "Dealing with Dwarves"
{UTBS_MAP 07a_Dealing_with_Dwarves.map}
{STORY_DEALING_WITH_DWARVES}
{SCENARIO_MUSIC "knalgan_theme.ogg"}
next_scenario=08_Out_of_the_Frying_Pan
turns=-1
snapshot=no
victory_when_enemies_defeated=no
{UNDERGROUND}
[side]
side=1
id=Kaleh
type=Desert Fighter
canrecruit=yes
gold=0
{NO_INCOME}
controller=human
shroud=no
fog=no
team_name=ally
user_team_name= _ "team_name^Quenoth Elves"
{FLAG_VARIANT long}
[/side]
#side=2 Dwarf king
[side]
id=King Thurongar
name= _ "King Thurongar"
type=Dwarvish Lord
side=2
canrecruit=no
[modifications]
{TRAIT_INTELLIGENT}
{TRAIT_RESILIENT}
[/modifications]
ai_special=guardian
gold=0
income=0
controller=ai
shroud=no
fog=no
team_name=ally
user_team_name=_"Allies"
{FLAG_VARIANT knalgan}
[/side]
# Prestart functions:
# set starting scenario objectives
# keep cost of recruiting units the same
# recall main heroes
# initialize starting variables
# create starting guards
[event]
name=prestart
# set starting scenario objectives
[objectives]
summary= _ "Starting Objectives:"
[objective]
description= _ "Choose a Unit to Take the Fire Blade"
condition=win
[/objective]
[/objectives]
#add furnishings
[item]
image=items/dragonstatue.png
x,y=8,7
[/item]
[item]
image=items/dragonstatue.png~FL()
x,y=12,7
[/item]
#recall heroes
[recall]
id=Nym
x,y=9,10
[/recall]
[recall]
id=Zhul
x,y=11,10
[/recall]
[recall]
id=Elyssa
x,y=10,11
[/recall]
#recall other dwarves
[recall]
id=Rogrimir
x,y=8,12
[/recall]
[recall]
id=Dwalim
x,y=12,12
[/recall]
[recall]
id=Moin
x,y=11,13
[/recall]
[recall]
id=Nordi
x,y=13,12
[/recall]
[recall]
id=Byorn
x,y=12,13
[/recall]
[recall]
id=Runin
x,y=13,13
[/recall]
[modify_unit]
[filter]
id=Dwalim,Moin,Nordi,Byorn,Runin
[/filter]
side=2
[/modify_unit]
#initialize starting variables
[if]
[have_unit]
id=Rogrimir
[/have_unit]
[then]
[set_variable]
name=ally_name
value=Rogrimir
[/set_variable]
[/then]
[else]
[set_variable]
name=ally_name
value=Jarl
[/set_variable]
# Jarl's traits are intentionally inferior to Rogrimir's
[unit]
type=Dwarvish Stalwart
id=Jarl
name= _ "Jarl"
profile=portraits/rogrimir.png
x=8
y=12
side=1
unrenamable=yes
[modifications]
{TRAIT_LOYAL}
{TRAIT_INTELLIGENT}
[/modifications]
[/unit]
[/else]
[/if]
#create starting dwarf guards
#all have special AI guardian, so that they won't move
[unit]
type=Dwarvish Sentinel
name= _ "Dwarf Guard"
x=9
y=14
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Dwarvish Sentinel
name= _ "Dwarf Guard"
x=11
y=14
side=2
ai_special=guardian
facing=sw
[modifications]
{TRAIT_LOYAL}
{TRAIT_QUICK}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Dwarvish Steelclad
name= _ "Dwarf Guard"
x=9
y=6
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_STRONG}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Dwarvish Steelclad
name= _ "Dwarf Guard"
x=11
y=6
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_INTELLIGENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Dwarvish Berserker
name= _ "Dwarf Guard"
x=7
y=8
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_QUICK}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Dwarvish Berserker
name= _ "Dwarf Guard"
x=13
y=8
side=2
ai_special=guardian
facing=sw
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Dwarvish Dragonguard
name= _ "Dwarf Guard"
x=6
y=9
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Dwarvish Dragonguard
name= _ "Dwarf Guard"
x=6
y=11
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Dwarvish Dragonguard
name= _ "Dwarf Guard"
x=14
y=9
side=2
ai_special=guardian
facing=sw
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Dwarvish Dragonguard
name= _ "Dwarf Guard"
x=14
y=11
side=2
ai_special=guardian
facing=sw
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[/event]
# starting dialogue
[event]
name=start
[message]
speaker=narrator
message= _ "This chamber is beautifully decorated. Ornate frescoes and dwarven runes cover the walls, and the room is dominated by a large intricately-carved stone throne. Flanking the throne are two detailed statues of some sort of beast you arent familiar with. The floor is covered in dark slate, and a path of smooth tiles directs visitors up to a small stone seat which faces the throne."
image=wesnoth-icon.png
[/message]
# wmllint: local spelling Thurongar
[message]
speaker=King Thurongar
message= _ "Hail Kaleh, I am Thurongar, King of the Dwarves."
[/message]
[message]
speaker=Kaleh
message= _ "I am Kaleh, leader of the Quenoth Elves."
[/message]
[message]
speaker=King Thurongar
message= _ "Ive heard of your recent exploits against the troll menace. Theyve been quite a thorn in our side for a while now. They used to be just an occasional pest, but now wherever we go we find another infestation. Theyve been getting smarter with their tactics; weve lost several of our outlying settlements to their attacks. Still, were not done fighting and with your recent victory perhaps this battle is turning in our favor. But tell me, what are so many elves doing so deep under the earth?"
[/message]
[message]
speaker=Kaleh
message= _ "Its a long story, but we come from the south, where we lived in the desert. Our village was destroyed, and I am leading my people on a journey to find a new home. Our god Eloh appeared to me in a vision, and told me to go north, but when we came to the mountains she said I should go under them instead of trying to cross the snowy peaks. So thats how several thousand of us ended up down here."
[/message]
[message]
speaker=King Thurongar
message= _ "Interesting. Wed offer to let you live with us, but Im afraid we dont have much free space; this city is almost filled to capacity. And looking at you, I dont think that the under-realm is quite the place for your kind. I think your god may have somewhere else intended for you."
[/message]
[message]
speaker=Kaleh
message= _ "Indeed, although I admire this great city you have carved from the rock, I think many of my people find these tunnels scary and alien. All we really want to do is to find a way back to the surface on the northern side of the mountains."
[/message]
[message]
speaker=King Thurongar
message= _ "That I may be able to help you with. We havent sent anyone to the surface in years, but we do know of a passage that leads to the ancient northern gate. Several generations ago we used to trade heavily with humans that lived north of the mountains, but then some new human came to power and decreed that all contact with us should be cut off. We sent messengers to find out why, but they never returned."
[/message]
[if]
[variable]
name=ally_name
value=Rogrimir
[/variable]
[then]
[message]
speaker=King Thurongar
message= _ "But dwarves are excellent delvers, and we keep meticulous maps of all the tunnels we have explored. We should still have maps of the tunnels leading back to the surface. Of course I doubt you would be able to understand them, so, Rogrimir here has volunteered to lead you to the surface."
[/message]
[/then]
[else]
[message]
speaker=King Thurongar
message= _ "But dwarves are excellent delvers, and we keep meticulous maps of all the tunnels we have explored. We should still have maps of the tunnels leading back to the surface. Of course I doubt you would be able to understand them, so, Jarl here has volunteered to lead you to the surface."
[/message]
[/else]
[/if]
[if]
[variable]
name=saved_rogrimir
boolean_equals=yes
[/variable]
[then]
[message]
speaker=Rogrimir
message= _ "You saved my life and my debt to you is still unpaid. Showing you the way to the surface and protecting you is the least I can do."
[/message]
[message]
speaker=Jarl
message= _ "You rescued my brother, and though he died fighting, he died a warriors death instead of a cowards. For that I thank you. I will take his place and help you get to the surface."
[/message]
[/then]
[else]
[message]
speaker=$ally_name
message= _ "You did a great service for my brothers. In exchange, as much as I hate the light, I am the one who knows the upper tunnels the best, so Ill be your guide."
[/message]
[/else]
[/if]
{CLEAR_VARIABLE saved_rogrimir}
[if]
[variable]
name=ally_name
value=Rogrimir
[/variable]
[then]
[message]
speaker=Kaleh
message= _ "Thank you very much for your help. We were worried about getting lost in all these twisting tunnels. And we would be honored to have you come with us, Rogrimir."
[/message]
[/then]
[else]
[message]
speaker=Kaleh
message= _ "Thank you very much for your help. We were worried about getting lost in all these twisting tunnels. And we would be honored to have you come with us, Jarl."
[/message]
[/else]
[/if]
[if]
[have_unit]
x,y=12-14,12-14
[/have_unit]
[then]
[message]
speaker=King Thurongar
message= _ "The dwarves who fought by your side have come to pay their respects as well."
[/message]
[message]
x,y=12-14,12-14
message= _ "You helped us strike a huge blow against those savages and it was an honor to fight by your side. You are the bravest elves we have ever known. Wed like to come with you, but, well, we dont like going that close to the surface, and besides theres still lots of fighting to be done down here. Dont you worry, we wont rest until we have killed every one of trolls."
[/message]
[message]
speaker=Kaleh
message= _ "I understand. Thank you, you were a huge help to us. It was an honor to fight by your side."
[/message]
[/then]
[/if]
[if]
[have_unit]
id=Elyssa
[/have_unit]
[then]
[message]
speaker=Elyssa
message= _ "Im afraid, Kaleh, that the time has come for our paths to separate."
[/message]
[message]
speaker=Kaleh
message= _ "What?!"
[/message]
[message]
speaker=Elyssa
#the sceptre of fire always has the 're' writing, this is intentional!
message= _ "I have learned a lot about the dwarves in my time here, and yet theres so much more to learn. Have you seen their forges? They really know how to work fire and use it in amazing ways. They have some interesting ideas about how they might improve their smithing with my magical fire. And have you seen their records? They have kept records of their dealings that go back generations upon generations. They even know of the dwarven clan who helped craft the sceptre of fire. Imagine if I could find the dwarves who helped build such an artifact!"
[/message]
[message]
speaker=Nym
message= _ "But we need you! What would we do without you?"
[/message]
[message]
speaker=Elyssa
message= _ "With the help of the dwarves, I think you will do just fine. I dont know what home your god has planned for you, Kaleh, but I believe in you, and I know that you will find a place for your people. My place is here, with the dwarves. And you dont really need me, you have each other."
[/message]
[message]
speaker=Kaleh
message= _ "If your mind is set, then I wont try to convince you. But we will miss you."
[/message]
[message]
speaker=Zhul
message= _ "I thank Eloh for the brief time that she has let you spend with us."
[/message]
[message]
speaker=Nym
message= _ "You take care of yourself, and someday maybe well meet again."
[/message]
[message]
speaker=Elyssa
message= _ "Thank you. And I owe you so much for helping me meet the dwarves. I never would have come down here myself. With some help from the dwarves I have enchanted this fire blade for you. May its flames always light your path, and strike down your enemies. I give this to all of you as a token of my gratitude."
[/message]
{PLACE_IMAGE items/flame-sword.png 10 10}
[message]
speaker=Kaleh
message= _ "A flaming sword. Thats amazing. I just dont know who should use it."
[/message]
[message]
speaker=Elyssa
message= _ "I will let you decide; use it in the best way that you see fit."
[/message]
[message]
speaker=narrator
message= _ "You can choose which unit you want to take the flaming sword. If you want another unit to wield the sword, Kaleh can recruit or recall other units."
image=wesnoth-icon.png
[/message]
# here we store the players actual gold and set it to 100 instead,
# since otherwise they might be unable to recruit or recall due to
# lack of gold
[store_side]
side=1
variable=stored_side_1
[/store_side]
[modify_side]
side=1
gold=100
[/modify_side]
[/then]
[else]
[message]
speaker=King Thurongar
message= _ "And now I think you should be off as soon as possible. The trolls have retreated into their holes for the present, but who knows when they will strike again."
[/message]
[message]
speaker=Nym
message= _ "This is a marvelous city, but I for one cant wait to feel the sun upon my face again and the wind in my hair."
[/message]
[endlevel]
result=victory
carryover_report=no
{NEW_GOLD_CARRYOVER 100}
[/endlevel]
[/else]
[/if]
[/event]
[event]
name=moveto
first_time_only=no
[filter]
x=10
y=10
[not]
id=Elyssa
[/not]
[not]
type=Dust Devil
[/not]
side=1
[/filter]
[message]
speaker=unit
message= _ "Should I take this sword?"
[option]
label= _ "Yes, Ill take it."
[command]
[object]
[filter]
x=10
y=10
side=1
[/filter]
id=FlamingSword
image=attacks/sword-flaming.png
name= _ "Flaming Sword"
description= _ "This sword will make all your melee attacks do fire damage."
[effect]
apply_to=attack
range=melee
set_type=fire
[set_specials]
{WEAPON_SPECIAL_MAGICAL}
[/set_specials]
[/effect]
[/object]
[message]
speaker=unit
message= _ "I will wield this blade proudly, and whenever I look upon it I shall remember you, Elyssa."
[/message]
[message]
speaker=King Thurongar
message= _ "And now I think you should be off as soon as possible. The trolls have retreated back into their holes for the present, but who knows when they will strike again."
[/message]
[message]
speaker=Nym
message= _ "This is a marvelous city, but I for one cant wait to feel the sun upon my face again and the wind in my hair."
[/message]
# let's give the player their actual starting gold back
[modify_side]
side=1
gold=$stored_side_1.gold
[/modify_side]
{CLEAR_VARIABLE stored_side_1}
[endlevel]
result=victory
carryover_report=no
{NEW_GOLD_CARRYOVER 100}
[/endlevel]
[/command]
[/option]
[option]
label= _ "No, I think someone else should wield it."
[command]
[allow_undo]
[/allow_undo]
[/command]
[/option]
[/message]
[/event]
[/scenario]

View file

@ -0,0 +1,648 @@
#textdomain wesnoth-utbs
[scenario]
id=07b_Talking_with_Trolls
name= _ "Talking with Trolls"
{UTBS_MAP 07b_Talking_with_Trolls.map}
{STORY_TALKING_WITH_TROLLS}
{SCENARIO_MUSIC "northerners.ogg"}
next_scenario=08_Out_of_the_Frying_Pan
turns=-1
snapshot=no
victory_when_enemies_defeated=no
{UNDERGROUND}
[side]
side=1
id=Kaleh
type=Desert Fighter
canrecruit=yes
gold=0
{NO_INCOME}
controller=human
shroud=no
fog=no
team_name=ally
user_team_name= _ "team_name^Quenoth Elves"
{FLAG_VARIANT long}
[/side]
#side=2 Troll Leader
[side]
id=Great Leader Darmog
name= _ "Great Leader Darmog"
# wmllint: local spelling Darmog
type=Great Troll
side=2
canrecruit=no
[modifications]
{TRAIT_INTELLIGENT}
{TRAIT_STRONG}
[/modifications]
ai_special=guardian
gold=0
income=0
controller=ai
shroud=no
fog=no
team_name=ally
user_team_name=_"Allies"
[/side]
# Prestart functions:
# set starting scenario objectives
# keep cost of recruiting units the same
# recall main heroes
# initialize starting variables
# create starting guards
[event]
name=prestart
# set starting scenario objectives
[objectives]
summary= _ "Starting Objectives:"
[objective]
description= _ "Choose a Unit to Take the Fire Blade"
condition=win
[/objective]
[/objectives]
#add rubble and other items
{PLACE_IMAGE scenery/rubble.png 9 9}
{PLACE_IMAGE scenery/rubble.png 12 9}
{PLACE_IMAGE scenery/rubble.png 11 7}
{PLACE_IMAGE scenery/rubble.png 13 10}
{PLACE_IMAGE scenery/rubble.png 7 12}
{PLACE_IMAGE scenery/rubble.png 8 7}
{PLACE_IMAGE scenery/rubble.png 12 7}
#recall heroes
[recall]
id=Nym
x,y=9,10
[/recall]
[recall]
id=Zhul
x,y=11,10
[/recall]
[recall]
id=Elyssa
x,y=10,11
[/recall]
#recall other dwarves
[recall]
id=Grog
x,y=8,12
[/recall]
[recall]
id="Thu'lok"
x,y=12,12
[/recall]
[recall]
id=Harpo
x,y=11,13
[/recall]
[recall]
id=Groucho
x,y=13,12
[/recall]
[recall]
id=Chico
x,y=12,13
[/recall]
[recall]
id=Groo
x,y=13,13
[/recall]
[modify_unit]
[filter]
id="Thu'lok,Groucho,Harpo,Chico,Groo"
[/filter]
side=2
[/modify_unit]
#initialize starting variables
[if]
[have_unit]
id=Grog
[/have_unit]
[then]
[set_variable]
name=ally_name
value=Grog
[/set_variable]
[/then]
[else]
[set_variable]
name=ally_name
value=Nog
[/set_variable]
# Nog's traits are intentionally inferior to Grog's
[unit]
type=Troll
id=Nog
name= _ "Nog"
profile=portraits/grog.png
x=8
y=12
side=1
unrenamable=yes
[modifications]
{TRAIT_LOYAL}
{TRAIT_QUICK}
[/modifications]
{IS_LOYAL}
[/unit]
[/else]
[/if]
#create starting dwarf guards
#all have special AI guardian, so that they won't move
[unit]
type=Troll
name= _ "Troll Guard"
x=9
y=14
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Troll
name= _ "Troll Guard"
x=11
y=14
side=2
ai_special=guardian
facing=sw
[modifications]
{TRAIT_LOYAL}
{TRAIT_QUICK}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Troll Shaman
id=Spiritual Advisor
name= _ "Spiritual Advisor"
x=9
y=6
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_STRONG}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Troll Shaman
name= _ "Spiritual Advisor"
x=11
y=6
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_INTELLIGENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Troll Rocklobber
name= _ "Troll Guard"
x=7
y=8
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_QUICK}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Troll Rocklobber
name= _ "Troll Guard"
x=13
y=8
side=2
ai_special=guardian
facing=sw
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Troll Whelp
name= _ "Troll Guard"
x=6
y=9
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Troll Whelp
name= _ "Troll Guard"
x=6
y=11
side=2
ai_special=guardian
facing=se
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Troll Whelp
name= _ "Troll Guard"
x=14
y=9
side=2
ai_special=guardian
facing=sw
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[unit]
type=Troll Whelp
name= _ "Troll Guard"
x=14
y=11
side=2
ai_special=guardian
facing=sw
[modifications]
{TRAIT_LOYAL}
{TRAIT_RESILIENT}
[/modifications]
{IS_LOYAL}
[/unit]
[/event]
# starting dialogue
[event]
name=start
[message]
speaker=narrator
message= _ "It is clear that this chamber used to be quite ornately decorated, but almost all of it has been destroyed, revealing a stone and dirt floor. What remains is a large stone throne, which has been covered with skulls and animal skins and bright paint. The walls were once covered with frescoes and dwarven runes, but several trolls are busy chipping them off. The floor was once tiled in dark slate, but only two small patches of tiles remain around the two chairs in this chamber. Youre surprised to see that small tile path running up the center of the chamber has been left untouched. It leads to a small stone chair facing the large throne."
image=wesnoth-icon.png
[/message]
[message]
speaker=Great Leader Darmog
message= _ "I, Great Leader Darmog, greet you, Kaleh."
[/message]
[message]
speaker=Kaleh
message= _ "I Kaleh, leader of the Quenoth Elves, thank you for meeting with me."
[/message]
[message]
speaker=Great Leader Darmog
message= _ "On behalf of all trolls, Darmog thank you for great victory over the dwarves. You have helped drive back the nasty dwarves and given us time to strengthen our defenses. Us trolls not always enemies of dwarves. Until recently we not have much contact with small people. But dwarves invade our tunnels, defile our holy places and kill our women and young. Dwarf not care about anything except gold and pretty gems. The shamans say that the spirits of our kin cry out for vengeance and Darmog will not rest until every dwarf is dead!"
[/message]
[message]
speaker=Spiritual Advisor
message= _ "But I am curious, we do not know of your kind. We thank you for your help, but who are you and why do you come down here with so many of your people?"
[/message]
[message]
speaker=Kaleh
message= _ "Its a long story, but we come from the south, where we lived above ground in the desert. Our village was destroyed, and I am leading my people on a journey to find a new home. Our god Eloh appeared to me in a vision, and told me to go north, but when we came to the mountains she said I should go under them instead of trying to cross the snowy peaks. We do not want to live down here, we are just trying to find a way to the other side of the mountains."
[/message]
[message]
speaker=Great Leader Darmog
message= _ "Darmog has never been above ground, but Darmog understand your story. A leader must protect and care for his people. Every people deserve to find their own home. If we can help you we will."
[/message]
[if]
[variable]
name=ally_name
equals=Grog
[/variable]
[then]
[message]
speaker=Spiritual Advisor
message= _ "We may be able to help you find a way back to the sunlit lands. In our temples we do keep records of the past. We have not walked above the earth for many many generations, not since the darkness drove us underground. But we are masters of the underground lands, and we have explored many tunnels. Recently one of our scouts found a path that leads north back to the sunlit lands, I think it may be the way you are trying to go. In reward for your achievements, we will help you. Grog has volunteered to protect you and lead you back to the sunlight lands."
[/message]
[/then]
[else]
[message]
speaker=Spiritual Advisor
message= _ "We may be able to help you find a way back to the sunlit lands. In our temples we do keep records of the past. We have not walked above the earth for many many generations, not since the darkness drove us underground. But we are masters of the underground lands, and we have explored many tunnels. Recently one of our scouts found a path that leads north back to the sunlit lands, I think it may be the way you are trying to go. In reward for your achievements, we will help you. Nog has volunteered to protect you and lead you back to the sunlight lands."
[/message]
[/else]
[/if]
[if]
[variable]
name=saved_grog
boolean_equals=yes
[/variable]
[then]
[message]
speaker=Grog
message= _ "You saved Grogs life. Grog still owe you a debt of thanks. In return Grog will protect little elves and show them the way back to lighted lands."
[/message]
[message]
speaker=Nog
message= _ "You rescued Nogs brother, and he died like a warrior in battle, not like a coward in chains. Nog is very grateful. You proved yourselves to be brave strong warriors, and Nog will help you find way back to lighted lands."
[/message]
[/then]
[else]
[message]
speaker=Nog
message= _ "You did trolls big service. Nog like to wander in tunnels, and chief say that he knows the upper tunnels the best. Nog want to help elves so even though he not want to leave battle, he agrees to show elves way back to lighted lands."
[/message]
[/else]
[/if]
{CLEAR_VARIABLE saved_grog}
[if]
[variable]
name=ally_name
equals=Grog
[/variable]
[then]
[message]
speaker=Kaleh
message= _ "Thank you very much for your help. We were worried about getting lost in all these twisting tunnels. And we would be honored to have you come with us, Grog."
[/message]
[/then]
[else]
[message]
speaker=Kaleh
message= _ "Thank you very much for your help. We were worried about getting lost in all these twisting tunnels. And we would be honored to have you come with us, Nog."
[/message]
[/else]
[/if]
[if]
[have_unit]
x,y=12-14,12-14
[/have_unit]
[then]
[message]
speaker=Great Leader Darmog
message= _ "The trolls who fought with you also want to thank you. They tell great tales of your valor."
[/message]
[message]
x,y=12-14,12-14
message= _ "We thank you for all you have done for trolls. You are bravest small people we know. We will tell stories of your battles to all our families so that none will forget. We wish we could come with you and fight more, but Great Leader need us to protect this city. Many dwarves still left, much fighting still to do. Griknagh will protect us, may he watch over you too."
[/message]
[message]
speaker=Kaleh
message= _ "I understand. Thank you, you were a huge help to us. It was an honor to fight by your side."
[/message]
[/then]
[/if]
[if]
[have_unit]
id=Elyssa
[/have_unit]
[then]
[message]
speaker=Elyssa
message= _ "Im afraid, Kaleh, that the time has come for our paths to separate."
[/message]
[message]
speaker=Kaleh
message= _ "What?!"
[/message]
[message]
speaker=Elyssa
message= _ "I have learned a lot about the trolls in my time here, and yet theres so much more to learn. Their magic is amazing. Have you seen their shamans? They make fire with their bare hands. They are very interested in my magic and they have offered to teach me how they create fire. I thought I was one of the last people still practicing magic, who knew I would find trolls still teaching it deep under the earth? There is just so much that I can learn from them, I cant leave now."
[/message]
[message]
speaker=Nym
message= _ "But we need you! What would we do without you?"
[/message]
[message]
speaker=Elyssa
message= _ "With the help of the trolls, I think you will do just fine. I dont know what home your god has planned for you, Kaleh, but I believe in you, and I know that you will find a place for your people. My place is here, with the trolls. And you dont really need me, you have each other."
[/message]
[message]
speaker=Kaleh
message= _ "If your mind is set, then I wont try to convince you. But we will miss you."
[/message]
[message]
speaker=Zhul
message= _ "I thank Eloh for the brief time that she has let you spend with us."
[/message]
[message]
speaker=Nym
message= _ "You take care of yourself, and someday maybe well meet again."
[/message]
[message]
speaker=Elyssa
message= _ "Thank you. And I owe you so much for helping me discover the trolls. I never would have come down here myself. I found this sword when we were fighting the dwarves and with some help from the trolls I have enchanted this fire blade for you. May its flames always light your path, and strike down your enemies. I give this to all of you as a token of my gratitude."
[/message]
{PLACE_IMAGE items/flame-sword.png 10 10}
[message]
speaker=Kaleh
message= _ "A flaming sword. Thats amazing. I just dont know who should use it."
[/message]
[message]
speaker=Elyssa
message= _ "I will let you decide; use it in the best way that you see fit."
[/message]
[message]
speaker=narrator
message= _ "You can choose which unit you want to take the flaming sword. If you want another unit to wield the sword, Kaleh can recruit or recall other units."
image=wesnoth-icon.png
[/message]
# here we store the players actual gold and set it to 100 instead,
# since otherwise they might be unable to recruit or recall due to
# lack of gold
[store_side]
side=1
variable=stored_side_1
[/store_side]
[modify_side]
side=1
gold=100
[/modify_side]
[/then]
[else]
[message]
speaker=Great Leader Darmog
message= _ "And now Darmog think you should be off as soon as possible. The dwarves are sneaky, they retreat today but may attack again tomorrow. The sooner you leave the safer you will be."
[/message]
[message]
speaker=Nym
message= _ "I heartily agree, I for one cant wait to feel the sun upon my face again and the wind in my hair."
[/message]
[endlevel]
result=victory
carryover_report=no
{NEW_GOLD_CARRYOVER 100}
[/endlevel]
[/else]
[/if]
[/event]
[event]
name=moveto
first_time_only=no
[filter]
x=10
y=10
[not]
id=Elyssa
[/not]
[not]
type=Dust Devil
[/not]
side=1
[/filter]
[message]
speaker=unit
message= _ "Should I take this sword?"
[option]
label= _ "Yes, Ill take it."
[command]
[object]
[filter]
x=10
y=10
side=1
[/filter]
id=FlamingSword
image=attacks/sword-flaming.png
name= _ "Flaming Sword"
description= _ "This sword will make all your melee attacks do fire damage."
[effect]
apply_to=attack
range=melee
set_type=fire
[/effect]
[/object]
[message]
speaker=unit
message= _ "I will wield this blade proudly, and whenever I look upon it I shall remember you, Elyssa."
[/message]
[message]
speaker=Great Leader Darmog
message= _ "And now Darmog think you should be off as soon as possible. The dwarves are sneaky, they retreat today but may attack again tomorrow. The sooner you leave the safer you will be."
[/message]
[message]
speaker=Nym
message= _ "This is a marvelous city, but I for one cant wait to feel the sun upon my face again and the wind in my hair."
[/message]
# let's give the player their actual starting gold back
[modify_side]
side=1
gold=$stored_side_1.gold
[/modify_side]
[endlevel]
result=victory
carryover_report=no
{NEW_GOLD_CARRYOVER 100}
[/endlevel]
[/command]
[/option]
[option]
label= _ "No, I think someone else should wield it."
[command]
[allow_undo]
[/allow_undo]
[/command]
[/option]
[/message]
[/event]
[/scenario]

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,715 @@
#textdomain wesnoth-utbs
[scenario]
id=10_Speaking_with_the_Fishes
name= _ "Speaking with the Fishes"
{UTBS_MAP 10_Speaking_with_the_Fishes.map}
{STORY_SPEAKING_WITH_THE_FISHES}
{SCENARIO_MUSIC "traveling_minstrels.ogg"} # Talk only, no intro
next_scenario=11_Battle_for_Zocthanol_Isle
turns="-1"
snapshot=no
victory_when_enemies_defeated=no
{DAWN1}
[side]
side=1
id=Kaleh
type=Desert Fighter
canrecruit=yes
gold=0
{NO_INCOME}
controller=human
shroud=no
fog=no
team_name=ally
user_team_name= _ "team_name^Quenoth Elves"
{FLAG_VARIANT long}
[/side]
#side=2 Merfolk
[side]
id=Melusand
name= _ "Melusand"
type=Mermaid Diviner
profile=portraits/melusand.png
side=2
canrecruit=yes
[modifications]
{TRAIT_INTELLIGENT}
{TRAIT_RESILIENT}
[/modifications]
controller=ai
team_name=ally
user_team_name=_"Allies"
[/side]
# Prestart functions:
# recall main heroes
[event]
name=prestart
#add furnishings
{PLACE_IMAGE "units/transport/galleon.png~RC(magenta>red)" 5 15 }
{PLACE_IMAGE "units/transport/galleon.png~RC(magenta>red)" 7 16 }
{PLACE_IMAGE "units/transport/galleon.png~RC(magenta>red)" 5 17 }
{PLACE_IMAGE "units/transport/galleon.png~RC(magenta>red)" 8 18 }
#recall heroes
[recall]
id=Nym
x,y=12,13
[/recall]
[recall]
id=Zhul
x,y=15,15
[/recall]
[recall]
id=$ally_name
x,y=13,15
[/recall]
# wmllint: recognize Grog
# wmllint: recognize Nog
# wmllint: recognize Rogrimir
# wmllint: recognize Jarl
# create 6 merfolk guards to protect the seer
[unit]
type=Merman Warrior
name= _ "Merfolk Guard"
x=8
y=12
side=2
[/unit]
[unit]
type=Merman Warrior
name= _ "Merfolk Guard"
x=17
y=10
side=2
[/unit]
[unit]
type=Merman Warrior
name= _ "Merfolk Guard"
x=17
y=17
side=2
[/unit]
[unit]
type=Merman Hoplite
name= _ "Merfolk Guard"
x=11
y=16
side=2
[/unit]
[unit]
type=Merman Spearman
name= _ "Merfolk Guard"
x=21
y=11
side=2
[/unit]
[unit]
type=Merman Entangler
name= _ "Merfolk Guard"
x=13
y=9
side=2
[/unit]
[modify_unit]
[filter]
id=Kaleh
[/filter]
facing=ne
[/modify_unit]
[/event]
# starting dialogue
[event]
name=start
[message]
speaker=Melusand
message= _ "Hail Kaleh, long have I waited to see you in person."
[/message]
[message]
speaker=Kaleh
message= _ "Greetings. Im afraid I am at a disadvantage, for you know my name and I do not know yours."
[/message]
[message]
speaker=Melusand
message= _ "I am known as Melusand. I am what you might call a high priest among my people."
[/message]
[message]
speaker=Kaleh
message= _ "This is—"
[/message]
[if]
[have_unit]
id=$ally_name
[/have_unit]
[then]
{MESSAGE_DEPEND_ON_ALLY
(
[message]
speaker=Melusand
message= _ "No, you dont have to introduce yourselves. I already know who you are and why you have been journeying all this way. And I must say, Grog, that your recent actions and indeed your presence with these fine folk is a credit to your race."
[/message]
[message]
speaker=Grog
message= _ "Grog says thank you."
[/message]
)
(
[message]
speaker=Melusand
message= _ "No, you dont have to introduce yourselves. I already know who you are and why you have been journeying all this way. And I must say, Nog, that your recent actions and indeed your presence with these fine folk is a credit to your race."
[/message]
[message]
speaker=Nog
message= _ "Nog says thank you."
[/message]
)
(
[message]
speaker=Melusand
message= _ "No, you dont have to introduce yourselves. I already know who you are and why you have been journeying all this way. And I must say, Rogrimir, that your recent actions and indeed your presence with these fine folk is a credit to your race."
[/message]
[message]
speaker=Rogrimir
message= _ "Thank you for your kindness."
[/message]
)
(
[message]
speaker=Melusand
message= _ "No, you dont have to introduce yourselves. I already know who you are and why you have been journeying all this way. And I must say, Jarl, that your recent actions and indeed your presence with these fine folk is a credit to your race."
[/message]
[message]
speaker=Jarl
message= _ "Thank you for your kindness."
[/message]
)}
[/then]
[else]
[message]
speaker=Melusand
message= _ "No, you dont have to introduce yourselves. I already know who you are and why you have been journeying all this way."
[/message]
[/else]
[/if]
[message]
speaker=Nym
message= _ "If you know so much why did you drag us all the way out here?"
[/message]
[message]
speaker=Melusand
message= _ "Patience, young lady. All will be revealed in good time."
[/message]
[message]
speaker=Melusand
message= _ "I have been watching your progress with great interest, but I could not contact you directly. That is why I sent out my most trusted followers to find you. I apologize for the difficulty of arranging a meeting. Oh, and I hope you do not mind my guards. But her spies are everywhere and I had to be certain that we could converse without being overheard. Besides, it never hurts to be too careful."
[/message]
[message]
speaker=Zhul
message= _ "Whose spies?"
[/message]
[message]
speaker=Melusand
message= _ "Perhaps I should start at the beginning. Make yourselves comfortable, for this may take a while. I want to tell you a tale, it is a story of the fall of what you refer to as The Golden Age."
[/message]
{REPLACE_SCENARIO_MUSIC "revelation.ogg"}
[message]
speaker=Melusand
message= _ "A long time ago there was a great empire of humans known as the Empire of Wesnoth. They lived peacefully alongside elves and dwarves, and drove the dark powers deep under the earth. It was a time of peace, light, and prosperity for all."
[/message]
[message]
speaker=Zhul
message= _ "Yes, we know about this age."
[/message]
[message]
speaker=Melusand
message= _ "This will go much faster if you dont interrupt me. Now, as I was saying the Empire of Wesnoth was very learned in the magical arts and had vast repositories of knowledge. Back then there was only one sun in the sky, the sun you call Sela. But the king decreed that he would raise a second sun into the heavens, to lengthen their days and shorten the darkness. All the mages, sorcerers and wise men came together and cast a mountain into the sky and made it glow as bright as the sun. They sent this second sun, the one you call Naia, hurtling through the sky so that only a few hours of darkness remained each night. Though some had called the attempt foolish, it was a resounding success and stood as a tribute to the power and might of the humans. The golden age glowed brighter than ever and the many believed that they had dispelled evil and darkness forever."
[/message]
[message]
speaker=Melusand
message= _ "But with their prosperity and power, over the generations the humans grew arrogant. One day a young descendant of the original king decreed that darkness should be abolished altogether from the land, so that light and goodness would shine forth everywhere. But the people had grown lazy and complacent and the ranks of mages who still trained hard to harness the magical arts had decreased greatly. Still the king believed he was all-powerful and would not listen to the mages protests. So, seeking to duplicate their ancestors previous success, the mages tried to lift a second mountain into the sky. But a great evil befell them that day; their power failed and the mountain crashed down onto the humans' capital, crushing all within it. In an instant the center of the Empire of Wesnoth was utterly destroyed."
[/message]
[message]
speaker=Melusand
message= _ "The king and his family were all killed, and soon petty warlords tore apart the empire as all the known lands fell into chaos. Elves and Dwarves were drawn into the conflicts, Orcs and Trolls spread forth from the dark places, and chaos and darkness swallowed the lands."
[/message]
[message]
speaker=Melusand
message= _ "The two suns, a monument to the power and hubris of the fallen Empire of Wesnoth, scorched the earth. The fields dried up, forests died, and swamps turned into mud-cracked plains. Since then the path of the second sun has shifted in the sky, creating the long dark that you are so familiar with every other night. And much evil has spread forth across the lands. The mages of the Empire of Wesnoth still haunt their domains as the undead lords that plague your sands. The surviving humans have descended into barbarity and squalor. Orcs cover the lands killing each other and any that fall into their grasp. The dwarves and trolls hide in their tunnels, in the dark, fighting an endless war. I do not mean to offend your friend, but the majority of them care little for the fate of the surface dwellers. And without their forests the elves have mostly died out, another victim of the chaos and evil that dominates our lands."
[/message]
[message]
speaker=Melusand
message= _ "What can we merfolk do? We see much with our magics, but we do not have the numbers, nor the power, to bring back order to the domains of the land dwellers. And even the sea is not free from the darkness; we struggle to survive against the naga and far worse things that have crept forth from the dark places. We are barely holding our own in the waters, but you saw how ill-suited we were when we went ashore."
[/message]
[message]
speaker=Melusand
message= _ "You are probably wondering why I know all this history. Far out in the sea is a string of islands that was once colonized by some humans from the Empire of Wesnoth. During the Golden Age ships traveled often to the mainland carrying trade goods and news. Apparently the colony was led by a group of mages who wanted a safe place to perform their experiments. Protected by their magic and their isolation, these colonists held out longer than most after the fall of the empire. What happened to them we do not know for certain, but many years ago my people discovered the ruins of their settlements. While exploring the ruins we found a library full of letters and several journals. With our magics and knowledge we were able to decipher the writings and thus we could piece together the history of the end of the Golden Age."
[/message]
[message]
speaker=Melusand
message= _ "The islands seemed lush and bountiful so we decided to settle in the shallow waters. But we discovered that the largest island was a strange and sinister place. The interior of the island was choked with a thick jungle, and at the center we could see several tall rocky peaks. On the tallest peak was built some sort of stronghold and occasionally at night we saw strange lights emanating from it. We sent several expeditions into the jungle to explore the building, but none ever returned. Soon afterwards merfolk sleeping on the shores would disappear at night, leaving only bloody trails leading into the dense jungle. It was clear that something was lurking in the jungle, but we knew not what. Our priests felt a strange presence that they could not understand, and darkness clouded our attempts at scrying."
[/message]
[message]
speaker=Melusand
message= _ "The island was declared cursed, and we stayed as far away from it as we could. Some said we should flee the islands, but the waters were great for hunting, and the cursed naga who often raided our settlements did not trouble us here. So we remained and told ourselves that if we kept our distance everything would be fine."
[/message]
[message]
speaker=Melusand
message= _ "But then that night came, I still remember it, as if it was yesterday. As the sun set a darkness spread forth from the tower, blotting out the moon and stars. From the sea came harsh battle cries and a great host of naga appeared from out of the depths. Even worse, from that large island the bodies of long-dead humans rose again and marched through the water, killing soundlessly. We were not prepared for such a powerful assault, and we were forced to flee for our lives. Indeed we were lucky to save as many as we did."
[/message]
[message]
speaker=Melusand
message= _ "In hindsight I blame the humans. With their experiments I think they woke something, something evil. Years later, we still suffer from the legacy of their cursed arrogance and hubris. Something festers on that island, corrupting all that it touches. Since we fled, those islands have become a haven to dark and terrible things. Naga prowl the seas, and undead and other horrors lurk in that twisted jungle. The few creatures that we have captured alive speak of a dark goddess, one they serve blindly unto death. It seems that she has taken control of the humans you saw as well."
[/message]
[message]
speaker=Nym
message= _ "Does she have a name?"
[/message]
[message]
speaker=Melusand
message= _ "She has many names. We call her the Eater of Souls. But in the old tongue her name is Yechnagoth."
[/message]
[message]
speaker=Zhul
message= _ "No!"
[/message]
[message]
speaker=Melusand
message= _ "Yes, I thought that name would be familiar to you. Always is she looking for new followers. I believe that it is she who appeared unto your people in the guise of your god. But her lust for even greater power may be her undoing. For she underestimated your strength of will; you are not as easily controlled as those she dominated before. She brought you here to be her followers, but I believe that you may be just the ones who can destroy her."
[/message]
[message]
speaker=Nym
message= _ "You seem powerful, why cant you destroy her yourselves?"
[/message]
[message]
speaker=Melusand
message= _ "Years of battle have taken their toll; my people are few in number and have not the strength to strike at her alone. But I see in you a strength and determination that gives me hope. With your help we may have a chance."
[/message]
[message]
speaker=Melusand
message= _ "You must realize that if she is not stopped, who knows how far her pestilence might spread? I have scryed far and wide and there are few that have the strength to stand up to such a force. If we do not, who will?"
[/message]
[message]
speaker=Zhul
message= _ "How can we trust you? How do we know you arent servants of Yechnagoth, sent to trick us?"
[/message]
[message]
speaker=Melusand
message= _ "If you knew anything about us you would not ask such a question! The idea is an anathema to all that we stand for! You saw how my brethren risked life and limb to find you and protect you and your kind against the humans. You saw how the humans treated us in return. Are not our actions proof enough?"
[/message]
[message]
speaker=Melusand
message= _ "Because in the end, Im afraid you just have to trust us. If we wanted to capture you we could have already. But we are not here to force you to do anything. Feel free to leave if you want, we can take you back to land. But you will find few friends among the wilds north of the mountains, and the humans will be searching for you. Yechnagoths reach is long and her vengeance is terrible."
[/message]
[message]
speaker=Melusand
message= _ "Indeed, that is what she is expecting. Like the few others that have resisted her for a time, she expects you to flee from her, to run away as far as you can. Long has it been since she has been seriously attacked; it is the one thing she not will be anticipating. I doubt that she even considers your kind a threat, but we have a real chance here to show her that there is still power in the known lands that she does not control."
[/message]
[message]
speaker=Kaleh
message= _ "You have given us much to think about. But we cannot make such an important decision in an instant. Please give us time to talk among ourselves and discuss this matter."
[/message]
[message]
speaker=Melusand
message= _ "Of course. We will withdraw to the shallows and give you some privacy. But do not ponder for too long, for we do not have a lot of time. I will return ere long."
[/message]
{MOVE_UNIT id=Melusand 20 4}
{MOVE_UNIT x,y=13,9 19 5}
{MOVE_UNIT x,y=17,10 20 5}
{MOVE_UNIT x,y=21,11 21 5}
{MOVE_UNIT x,y=8,12 3 14}
{MOVE_UNIT x,y=11,16 4 19}
{MOVE_UNIT x,y=17,17 11 21}
[modify_unit]
[filter]
id=Kaleh
[/filter]
facing=sw
[/modify_unit]
[message]
speaker=Kaleh
message= _ "Well, what do you all think?"
[/message]
[message]
speaker=Nym
message= _ "Its a heck of a story."
[/message]
[message]
speaker=Zhul
message= _ "Im not sure what to think. Its all so much information."
[/message]
{MESSAGE_DEPEND_ON_ALLY
(
[message]
speaker=Grog
message= _ "Grog not sure if he trust fish lady. What if she just want you elves to fight her war for her?"
[/message]
)
(
[message]
speaker=Nog
message= _ "Nog not sure if he trust fish lady. What if she just want you elves to fight her war for her?"
[/message]
)
(
[message]
speaker=Rogrimir
message= _ "Im still not sure I trust her. What if shes just trying to get you all to fight her war for her?"
[/message]
)
(
[message]
speaker=Jarl
message= _ "Im still not sure I trust her. What if shes just trying to get you all to fight her war for her?"
[/message]
)}
[message]
speaker=Kaleh
message= _ "The point is, its not her fight, its our fight too. I for one believe her tale. With all the power that Melusand says Yechnagoth has, how do we know that Yechnagoth wasnt the one who rained those rocks down upon our village all those weeks ago? What if this is all just part of a plot to turn our people into a group of mindless followers?"
[/message]
[message]
speaker=Zhul
message= _ "Whether this was all planned or not, whats important is what should we do with ourselves now? We have a duty to protect our people."
[/message]
[message]
speaker=Kaleh
message= _ "No, no, no! Too much blood has been spilled. This has gone on way too far for us to just end it now and walk away. You saw what she did to Keratur and Tanstafaal, their blood is on my hands and I will have vengeance!"
[/message]
[message]
speaker=Nym
message= _ "Even if we turn around and leave now, where will we go?"
[/message]
[message]
speaker=Zhul
message= _ "I admit that Melusand does have a point. We cannot return under the mountains the way we came, the humans will be heavily guarding that path for sure by now. We could ask the merfolk to return us back to the coasts to the north or south of where we came, but I do not know these lands at all. We would be wandering aimlessly through the wilderness. Oh, if only we did have Eloh to guide us. We need her now more than ever."
[/message]
[message]
speaker=Nym
message= _ "This entire journey has been based on a lie—"
[/message]
[message]
speaker=Kaleh
message= _ "I know! I know! Would you like me to kill myself as punishment, or step down as leader? Imagine how I feel. I heard her voice, it was just as you had told us since we were children, Zhul. The voice of our god, speaking to us for the first time since the olden days. And I believed, I wanted to believe so badly, that I could take our people away from the horror and the death. I see them now whenever I sleep, I see their faces, all of our brethren who have died on the accursed journey. Oh, I wish none of this had ever happened!"
[/message]
[message]
speaker=Nym
message= _ "No, no, no one is blaming you, Kaleh."
[/message]
[message]
speaker=Zhul
message= _ "Many who have seen dark times wish they could go back and remake the past. But that is not in our power, all we can do now is do what seems right in the time that is allotted to us. Do not succumb to despair Kaleh, or else Yechnagoth has already won."
[/message]
[if]
[variable]
name=ally_race
equals=dwarf
[/variable]
[then]
[message]
speaker=$ally_name
message= _ "Yes, remember boy, the fight is not yet lost while we still draw breath."
[/message]
[/then]
[else]
[message]
speaker=$ally_name
message= _ "Do not give up yet, little one. The battle is not yet lost while we still fight."
[/message]
[/else]
[/if]
[message]
speaker=Kaleh
message= _ "You are right. I believe Melusand, strange as her tale sounds. From all I have seen Yechnagoth truly is a scourge on this earth, and I would gladly give up my life for a chance to destroy her once and for all. But this is not a choice that I can make for all of our people."
[/message]
[message]
speaker=Nym
message= _ "She should be made to pay for all that she has done to our people, and if I should die in the attempt, then so be it. I will not leave your side now, Kaleh."
[/message]
[message]
speaker=Zhul
message= _ "As strange as it may sound, there are some things in this world that are more important than the fate of our people. Years from now the suns shall rise anew, a seed will grow into a flower, a child will be born. And I believe that if Yechnagoth is victorious then all that is good and beautiful will be corrupted and twisted and destroyed. This is a harsh world that we live in, but there is beauty and goodness in it, and no matter what may happen to us, I would gladly give my life to see that beauty and goodness survive."
[/message]
{MESSAGE_DEPEND_ON_ALLY
(
[message]
speaker=Grog
message= _ "Even in deepest tunnels my people could not escape Yechnagoths power forever if she is not stopped. Against such evil I am sure the Great Leader would give you whole army of trolls, but I am afraid you only have Grog. Still, Grog will do what he can to see her destroyed."
[/message]
)
(
[message]
speaker=Nog
message= _ "Even in deepest tunnels my people could not escape Yechnagoths power forever if she is not stopped. Against such evil I am sure the Great Leader would give you whole army of trolls, but I am afraid you only have Nog. Still, Nog will do what he can to see her destroyed."
[/message]
)
(
[message]
speaker=Rogrimir
message= _ "Even in the deepest tunnels underground we could not forever escape Yechnagoths power if she remains unchecked. Against such evil I am sure my king would give you a whole army of dwarves, but I am afraid you only have me. Still, I will do what I can to see her destroyed."
[/message]
)
(
[message]
speaker=Jarl
message= _ "Even in the deepest tunnels underground we could not forever escape Yechnagoths power if she remains unchecked. Against such evil I am sure my king would give you a whole army of dwarves, but I am afraid you only have me. Still, I will do what I can to see her destroyed."
[/message]
)}
[message]
speaker=Kaleh
message= _ "Then it is decided. Still in this matter we cannot speak for all our people. Those who go on this quest may never return, and this battle is certainly no place for the young or the elderly. Let all who are afraid or cannot fight stay behind with the merfolk. I will ask Melusand to arrange that if we fail, they be taken far away from here, that they might live out their lives in what peace they can find."
[/message]
[message]
speaker=Zhul
message= _ "That is very compassionate of you, but I doubt that many of our surviving people will wish to stay behind. You are our leader Kaleh, and where you go, we will follow."
[/message]
[message]
speaker=narrator
message= _ "Time passes."
image=wesnoth-icon.png
[/message]
{MOVE_UNIT id=Melusand 15 12}
[modify_unit]
[filter]
id=Kaleh
[/filter]
facing=ne
[/modify_unit]
[message]
speaker=Melusand
message= _ "Have you come to a decision?"
[/message]
[message]
speaker=Kaleh
message= _ "Yes we have. Yechnagoth has played us like fools. We have all lost loved ones because of her machinations. Her arrogance will not go unchallenged; we will aid you in your cause."
[/message]
[message]
speaker=Melusand
message= _ "Excellent. Due to our limited numbers, we cannot mount a full frontal assault against all her forces. Instead a sneak attack may allow us to bypass her defenses and strike at her heart. There are many among my people who yearn to strike against the Eater of Souls. I will help orchestrate an attack on one of the outermost northern islands to create a diversion. I also want to thank you for rescuing my brethren from the humans. They owe you their lives and they wish to return their debt of gratitude. They have volunteered to guide and escort you to your destination."
[/message]
[message]
speaker=Melusand
message= _ "Although her magic has clouded the isles from my scrying, it is the largest island, which we call Zocthanol Isle, where I sense the strongest power."
[/message]
[message]
speaker=Nym
message= _ "Why is it called Zocthanol Isle?"
[/message]
[message]
speaker=Melusand
message= _ "Because Zocthanol means accursed in our tongue. Anyway, it is there that I think you will find the source of the corruption. We will not be able to continue our attack for long, but it should give you enough time to slip through the outer defenses and reach Zocthanol Isle. You must explore the island, find the source of the darkness that infests it and destroy it before the rest of Yechnagoths minions have time to return."
[/message]
[message]
speaker=Melusand
message= _ "And on a related subject I can offer you a glimmer of hope in this dark time. I know that you have been searching for a home for your people. These corrupted islands were once rich and bountiful. If this darkness can truly be destroyed, then such a place might be the home you have been looking for. And I promise you that if you help us, we will help you adapt to these new lands. But that is talk for another day."
[/message]
[message]
speaker=Melusand
message= _ "Before you go I have one thing to give you. Im afraid that where you are going my magical power will be of little help. However I want you to have these brooches. They are made from the rarest shells that are found in our waters and I have blessed them with the power of the Sea God. As long as you wear them I will be able to track your progress. You may find that they protect you in other ways as well."
[/message]
[message]
speaker=Kaleh
message= _ "We thank you for such beautiful gifts. We will wear them with honor."
[/message]
[message]
speaker=Kaleh
message= _ "We have one favor to ask of you."
[/message]
[message]
speaker=Melusand
message= _ "Yes, anything."
[/message]
[message]
speaker=Kaleh
message= _ "We go into this darkness knowing that perhaps none of us will return alive. But I cannot ask all my people to go with me against their will. This battle is also no place for our children or our elders. I ask that you protect those that we leave behind, and should the fight go ill, please take them as far away from here as possible. At the least perhaps they can get some peace and happiness in the distant wilds."
[/message]
[message]
speaker=Melusand
message= _ "I will do as you ask. It is only fair. But if this battle goes ill I do not think there will be many safe places left in the known lands."
[/message]
[message]
speaker=Nym
message= _ "Before we leave, theres one thing I dont understand. When he first met Kaleh, Esanoo said this all concerned Yechnagoth and Zhangor. We know about Yechnagoth, but who is Zhangor?"
[/message]
[message]
speaker=Kaleh
message= _ "I remember when Yechnagoth was posing as Eloh, she said she was the slayer of the demon lord Zhangor."
[/message]
[message]
speaker=Zhul
message= _ "I wonder where Yechnagoth heard of the story of the demon lord Zhangor. It is a sad tale and has not been told for ages, but perhaps now is the right time."
[/message]
[message]
speaker=Zhul
message= _ "It all started in the years before the Great Fall. The elves of Wesmere Forest were masters of the arcane magics. They valued knowledge above all else and specialized in divination, seeking to scry out the secrets of the other races. In their scrying they attracted the notice of the demon Zhangor."
[/message]
[message]
speaker=Zhul
message= _ "Zhangor appeared to them in the guise of a beautiful elven youth and told them that a great darkness was coming, which would destroy all the knowledge that they had collected. He said if they worshiped him as a god he would protect them and reveal unto them knowledge and magics that they could only dream of. But he wanted more; he demanded a blood sacrifice of one elf a month. Some of the elves were revolted, but most were tempted by the prospect of even greater power, and so they bowed down and worshiped him as their god. Those few who protested his ascendancy were the first to be thrown into jails and sacrificed."
[/message]
[message]
speaker=Zhul
message= _ "And so as the rest of the lands succumbed to darkness and chaos, Wesmere Forest was one of the few islands of peace and safety. But Zhangor played upon the elves fears and demanded more from his followers. He declared that all other elves were heretics and did not deserve life. So the Wesmere elves gave sanctuary to refugees, and then they turned them over to their dark priests, who sacrificed them on Zhangors bloody altars. Zhangor feasted on these sacrifices and grew stronger and more powerful. He wanted even more. When no more refugees came, the priests ordered raiding parties to go out and bring back any poor souls they could find. When no more elves could be found they preyed upon humans, dwarves, orcs, anyone they could find in the nearby lands."
[/message]
[message]
speaker=Zhul
message= _ "By this point most of the other forests had been burned, and Eloh was leading our people south across the plains. We were surprised to find the Wesmere Forest still standing, and even more surprised when an elvish raiding party came out of the forest and attacked us at night, stealing several of our children. Eloh, in her wisdom, revealed in a dream the terrible things that happened in that dark forest. We were appalled at the depths to which our brethren had sunk, and though we were loath to attack our own kind, we decided that we could not let these abominable practices continue. We vowed to avenge the sacrifice of our children, and we attacked with all our might."
[/message]
[message]
speaker=Zhul
message= _ "Driven on by their dark priests and by their fear of Zhangors wrath, the Wesmere elves fought stubbornly against our superior numbers. The fighting was horrible indeed; that once beautiful forest was drenched in blood, and corpses littered the sunny glades. The battle culminated with Zhangor himself appearing in his true form above the forest. He flew over the land, raining down fire on defenders and attackers alike, delighting in the death and destruction. We had not the power to combat one as strong as him, and we called out to Eloh to save us in our hour of need. In a great avatar of light she appeared and they battled back and forth above the burning forest. In the end she beheaded him and smote his body down upon the earth."
[/message]
[message]
speaker=Zhul
message= _ "By this point the entire forest was being engulfed by flame, and friend and foe alike fled from the inferno. With the death of their god the Wesmere elves surrendered and begged for forgiveness, telling us the entire sorry story. We took pity on them and cared for them as best we could, but we were afraid that some of the devout priests might try to secretly continue the worship of Zhangor. For Eloh told us that she had not killed Zhangor, but merely banished him from this world. We did not want to risk Zhangor ever dividing our people again. So we decided that the dark priests who organized the sacrifices must be executed, but that all others who renounced Zhangor might be saved."
[/message]
[message]
speaker=Zhul
message= _ "Our priests also declared that Zhangors name and his story were forbidden knowledge, to speak of him meant death. Their constant vigilance was rewarded; in a few generations only the high priests knew of the tale, and so it was passed down to me. Though these measures may seem harsh, I believe they were justified. If Zhangor was ever summoned back I dont think we could have survived another schism. And so the story of Zhangor was passed down from generation to generation to remind us guardians of knowledge of the folly of valuing knowledge higher than the welfare of our people."
[/message]
[message]
speaker=Nym
message= _ "I wonder what other forbidden lore youve been taught."
[/message]
[message]
speaker=Zhul
message= _ "Foolish girl! Do not ask such a question. Trust me, it is better not to know. Knowledge can be a terrible weight, and not one that I would want a youth such as yourself to bear. Treasure the beautiful things in this life and pry not into the darker secrets. Eloh forgive me, I have probably told you too much already, but in these dark times I felt that you should know a little bit of the truth."
[/message]
[message]
speaker=Melusand
message= _ "That is very interesting. In truth, Id never heard of Zhangor before when I told Esanoo to mention him to you, Kaleh. Let me explain. When Eloh appeared to you, I was able to use my powers to eavesdrop on your conversation. I did not know how much you suspected, but I did not want to cause panic by openly revealing who was actually speaking to you. I had hoped to convince you to come here so I could reveal the truth to you in person. Thats why I made those elusive references to Yechnagoth and Zhangor, hoping that Kaleh would make the connection between Eloh and Yechnagoth, and be curious enough to seek me out. My mistake was that I did not realize that Yechnagoth would move so fast. I am sorry that discovering her true identity carried such a high price for your people."
[/message]
[message]
speaker=Melusand
message= _ "And now I must bid you farewell. The merfolk you rescued will help show you the path to the island, and I must go orchestrate our diversion. We will begin our attack at the end of the next long night, so by dawn the large island should be left relatively unguarded. I will pray for our success, with luck we shall all meet again."
[/message]
[endlevel]
result=victory
linger_mode=no
carryover_report=no
{NEW_GOLD_CARRYOVER 100}
[/endlevel]
[/event]
[/scenario]

View file

@ -0,0 +1,545 @@
#textdomain wesnoth-utbs
[scenario]
id=13_Epilogue
name= _ "Epilogue"
{UTBS_MAP 13_Epilogue.map}
{SCENARIO_MUSIC "elf-land.ogg"}
{EXTRA_SCENARIO_MUSIC "journeys_end.ogg"}
{EXTRA_SCENARIO_MUSIC "love_theme.ogg"}
snapshot=no
victory_when_enemies_defeated=no
turns=-1
{DAWN1}
#side 1: elves
[side]
side=1
id=Kaleh
type=Desert Fighter
canrecruit=yes
gold=0
{NO_INCOME}
controller=human
shroud=no
fog=no
{FLAG_VARIANT long}
user_team_name= _ "team_name^Quenoth Elves"
[/side]
# These two are referred to for searching the recall list, but wmllint
# will still complain about "unknown '<NAME>' referred to by id" without
# these comments.
#
# wmllint: recognize Nym
# wmllint: recognize Zhul
# Prestart functions:
[event]
name=prestart
# capture all villages for side 1
[capture_village]
x=0-50
y=0-50
side=1
[/capture_village]
[/event]
# Event 1: Starting dialogue
[event]
name=start
[message]
speaker=Kaleh
message= _ "I stumbled out into the daylight, scarcely believing that we were victorious. Looking out over the island it took me a moment to realize what had changed. The fetid darkness had lifted from the land and I saw the suns shining brightly for what seemed like the first time in ages. Gazing across the bright green trees and sparkling ocean I realized that once this had been a place of beauty. Several of our brethren were waiting for me and I was overjoyed to discover that they were no longer the mindless slaves I had seen before. They too had broken free from their enchantment."
[/message]
[message]
speaker=Kaleh
message= _ "Indeed with Yechnagoths death it seems that all of her minions reverted to their original chaotic tendencies. Luckily we had already destroyed most of the islands foul inhabitants, and lacking their former discipline we had no trouble exterminating the remaining orcs and undead. The naga too fled before us, and they have not bothered us since. For once we seemed to be safe from imminent danger."
[/message]
[message]
speaker=Kaleh
message= _ "A few days later Melusand herself appeared and she declared the cleansing of this island a miracle. We made a pact between elf and merfolk and vowed to live together in peace and prosperity. Melusand blessed the island, and named it Quenoth Isle in honor of our people. The merfolk have been very helpful in teaching us how to adapt to this strange land, though I still have trouble getting used to being surrounded by water. It used to be more precious than gold. Still, I could hardly imagine a better home for my people. Between the bounty of the sea and the many fruits of the jungle there is no shortage of food. We are isolated from the chaos on the mainland and the merfolk guard the waters. Melusand says now is a time for peace and prosperity. Part of me didnt think we would survive our journey, there were so many close calls. Coming here almost does seem like a miracle. If only I could forget the price we paid..."
[/message]
# change depending on how many friends died
[if]
[variable]
name=allies_killed
numerical_equals=0
[/variable]
[then]
[message]
speaker=Kaleh
message= _ "If you had told me at the start of our journey the price I was to pay in blood, I do not know if I would have had the strength to take that first step. I suppose I should have known that my friends would not let me confront Yechnagoth alone. And it is only through Elohs grace and a good bit of luck that none of them died in that bloody battle. But so many others that I grew up with were not so lucky. Why did so many of us have to die? I wish I could go back and do it all over again."
[/message]
[/then]
[else]
{INCIDENTAL_MUSIC sad.ogg}
[/else]
[/if]
# if only 1 friend dies, then have 3 different texts depending on who died
[if]
[variable]
name=allies_killed
numerical_equals=1
[/variable]
[then]
[if]
[have_unit]
id=Nym
search_recall_list=yes
count=0
[/have_unit]
[then]
[message]
speaker=Kaleh
message= _ "If you had told me at the start of our journey the price I was to pay in blood, I do not know if I would have had the strength to take that first step. I suppose I should have known that my friends would not let me confront Yechnagoth alone. But I would gladly give up my life today if I could bring Nym back. She followed me faithfully and fought by my side for so long, to lose her at the end... I wish I could go back and do it all over again."
[/message]
[message]
speaker=Kaleh
message= _ "Although I believe that our battle in the black citadel was our finest hour, I am still haunted by Nyms death in that dark place. And so every morning at sunrise I come out to the southeastern tip of the island and look out upon the waters, upon the world that we sacrificed so much to preserve. I remind myself what Zhul said, and they all believed, that despite all the death and fighting we saw in our journey, this world was a beautiful and good enough place that Nym was willing to sacrifice her life to save it. Looking out over the waters, and back upon the prosperity of my people, I tell myself it was worth it. But sometimes that seems a small consolation."
[/message]
[/then]
[/if]
[if]
[have_unit]
id=Zhul
search_recall_list=yes
count=0
[/have_unit]
[then]
[message]
speaker=Kaleh
message= _ "If you had told me at the start of our journey the price I was to pay in blood, I do not know if I would have had the strength to take that first step. I suppose I should have known that my friends would not let me confront Yechnagoth alone. But I would gladly give up my life today if I could bring Zhul back. She followed me faithfully and fought by my side for so long, to lose her at the end... I wish I could go back and do it all over again."
[/message]
[message]
speaker=Kaleh
message= _ "Although I believe that our battle in the black citadel was our finest hour, I am still haunted by Zhuls death in that dark place. And so every morning at sunrise I come out to the southeastern tip of the island and look out upon the waters, upon the world that we sacrificed so much to preserve. I remind myself what Zhul said, and they all believed, that despite all the death and fighting we saw in our journey, this world was a beautiful and good enough place that Zhul was willing to sacrifice her life to save it. Looking out over the waters, and back upon the prosperity of my people, I tell myself it was worth it. But sometimes that seems a small consolation."
[/message]
[/then]
[/if]
[if]
[variable]
name=ally_died_in_final_fight
boolean_equals=yes
[/variable]
[then]
{MESSAGE_DEPEND_ON_ALLY
(
[message]
speaker=Kaleh
message= _ "If you had told me at the start of our journey the price I was to pay in blood, I do not know if I would have had the strength to take that first step. I suppose I should have known that my friends would not let me confront Yechnagoth alone. But I would gladly give up my life today if I could bring Grog back. He left his homeland to fight faithfully by my side, and then to lose him at the end... I wish I could go back and do it all over again."
[/message]
[message]
speaker=Kaleh
message= _ "Although I believe that our battle in the black citadel was our finest hour, I am still haunted by the death of Grog in that dark place. And so every morning at sunrise I come out to the southeastern tip of the island and look out upon the waters, upon the world that we sacrificed so much to preserve. I remind myself what Zhul said, and they all believed, that despite all the death and fighting we saw in our journey, this world was a beautiful and good enough place that Grog was willing to sacrifice his life to save it. Looking out over the waters, and back upon the prosperity of my people, I tell myself it was worth it. But when I think of the desperate war that his people are probably still fighting underground, it seems a small consolation."
[/message]
)
(
[message]
speaker=Kaleh
message= _ "If you had told me at the start of our journey the price I was to pay in blood, I do not know if I would have had the strength to take that first step. I suppose I should have known that my friends would not let me confront Yechnagoth alone. But I would gladly give up my life today if I could bring Nog back. He left his homeland to fight faithfully by my side, and then to lose him at the end... I wish I could go back and do it all over again."
[/message]
[message]
speaker=Kaleh
message= _ "Although I believe that our battle in the black citadel was our finest hour, I am still haunted by the death of Nog in that dark place. And so every morning at sunrise I come out to the southeastern tip of the island and look out upon the waters, upon the world that we sacrificed so much to preserve. I remind myself what Zhul said, and they all believed, that despite all the death and fighting we saw in our journey, this world was a beautiful and good enough place that Nog was willing to sacrifice his life to save it. Looking out over the waters, and back upon the prosperity of my people, I tell myself it was worth it. But when I think of the desperate war that his people are probably still fighting underground, it seems a small consolation."
[/message]
)
(
[message]
speaker=Kaleh
message= _ "If you had told me at the start of our journey the price I was to pay in blood, I do not know if I would have had the strength to take that first step. I suppose I should have known that my friends would not let me confront Yechnagoth alone. But I would gladly give up my life today if I could bring Rogrimir back. He left his homeland to fight faithfully by my side, and then to lose him at the end... I wish I could go back and do it all over again."
[/message]
[message]
speaker=Kaleh
message= _ "Although I believe that our battle in the black citadel was our finest hour, I am still haunted by the death of Rogrimir in that dark place. And so every morning at sunrise I come out to the southeastern tip of the island and look out upon the waters, upon the world that we sacrificed so much to preserve. I remind myself what Zhul said, and they all believed, that despite all the death and fighting we saw in our journey, this world was a beautiful and good enough place that Rogrimir was willing to sacrifice his life to save it. Looking out over the waters, and back upon the prosperity of my people, I tell myself it was worth it. But when I think of the desperate war that his people are probably still fighting underground, it seems a small consolation."
[/message]
)
(
[message]
speaker=Kaleh
message= _ "If you had told me at the start of our journey the price I was to pay in blood, I do not know if I would have had the strength to take that first step. I suppose I should have known that my friends would not let me confront Yechnagoth alone. But I would gladly give up my life today if I could bring Jarl back. He left his homeland to fight faithfully by my side, and then to lose him at the end... I wish I could go back and do it all over again."
[/message]
[message]
speaker=Kaleh
message= _ "Although I believe that our battle in the black citadel was our finest hour, I am still haunted by the death of Jarl in that dark place. And so every morning at sunrise I come out to the southeastern tip of the island and look out upon the waters, upon the world that we sacrificed so much to preserve. I remind myself what Zhul said, and they all believed, that despite all the death and fighting we saw in our journey, this world was a beautiful and good enough place that Jarl was willing to sacrifice his life to save it. Looking out over the waters, and back upon the prosperity of my people, I tell myself it was worth it. But when I think of the desperate war that his people are probably still fighting underground, it seems a small consolation."
[/message]
)}
[/then]
[/if]
[/then]
[/if]
[if]
[variable]
name=allies_killed
greater_than=1
[/variable]
[then]
[message]
speaker=Kaleh
message= _ "If you had told me at the start of our journey the price I was to pay in blood, I do not know if I would have had the strength to take that first step. I suppose I should have known that my friends would not let me confront Yechnagoth alone. But I would gladly give up my life today if I could bring any one of them back. They followed me faithfully and fought by my side for so long, to lose them at the end... I wish I could go back and do it all over again."
[/message]
[message]
speaker=Kaleh
message= _ "Although I believe that our battle in the black citadel was our finest hour, I am still haunted by my friends deaths in that dark place. And so every morning at sunrise I come out to the southeastern tip of the island and look out upon the waters, upon the world that we sacrificed so much to preserve. I remind myself what Zhul said, and they all believed, that despite all the death and fighting we saw in our journey, this world was a beautiful and good enough place that they were willing to sacrifice their lives to save it. Looking out over the waters, and back upon the prosperity of my people, I tell myself it was worth it. But I still miss each one of them horribly."
[/message]
[/then]
[/if]
[if]
[have_unit]
id=Nym
search_recall_list=yes
count=0
[/have_unit]
[then]
[message]
speaker=Kaleh
image=portraits/nym.png
message= _ "We carried Nym to a small island to the north which had a single peak with a beautiful view of the surrounding islands. It seemed to me to be a lookout that Nym would appreciate. So I and a few others climbed to the top of the peak and dug a grave for Nym so that she might always look down upon us and see all that we accomplished with her gift. For she gave us the gift of life, and every day I strive to make the most use of it I can. I will always remember her. Nym, who was with me ever since I was a child and during every step of the journey, who was always faithful, but never hesitated to speak her mind, who managed to crack a joke no matter how grim the situation. How I miss her laugh, her smile, her..."
[/message]
[/then]
[/if]
[if]
[have_unit]
id=Zhul
search_recall_list=yes
count=0
[/have_unit]
[then]
[message]
speaker=Kaleh
image=portraits/zhul.png
message= _ "Zhuls funeral was a huge ceremony, like those she told us about from ages ago. I led a procession of our few remaining priestesses and all of the faithful around the entire island, so that she might see all that she had given to us. Being a priestess of the desert sands we buried her in one of the large beaches at the northwest end of the island. At the final battle she was one of the oldest elves left and I suppose I should thank Eloh that she did not die during our journey. She was my guide and my faith and my link to the past. I am sorry that she did not live to see the fruits of her labors, but I hope that she is with Eloh now, in a better place."
[/message]
[/then]
[/if]
# if ally dies in the final battle
[if]
[variable]
name=ally_died_in_final_fight
boolean_equals=yes
[/variable]
[then]
{MESSAGE_DEPEND_ON_ALLY
(
[message]
speaker=Kaleh
image=portraits/grog.png
message= _ "I am saddened by the death of Grog, but by saving my life in the end he did fulfill his life debt to me. I think he also would have been glad to have died in battle. I considered leading an expedition to go back and return his body to his people, but my fellow elves have been weakened by our long journey and I do not want to risk losing any more. Instead I searched all across the islands and at last in the rocky outcroppings to the northwest I found a series of caves. They were not as deep as his homeland but I thought Grog would have appreciated being laid to rest under some solid rock. And so we buried him with much honor and will long remember the service that his kind has done for our people."
[/message]
)
(
[message]
speaker=Kaleh
image=portraits/grog.png
message= _ "I am saddened by the death of Nog, but by saving my life in the end he did fulfill his life debt to me. I think he also would have been glad to have died in battle. I considered leading an expedition to go back and return his body to his people, but my fellow elves have been weakened by our long journey and I do not want to risk losing any more. Instead I searched all across the islands and at last in the rocky outcroppings to the northwest I found a series of caves. They were not as deep as his homeland but I thought Nog would have appreciated being laid to rest under some solid rock. And so we buried him with much honor and will long remember the service that his kind has done for our people."
[/message]
)
(
[message]
speaker=Kaleh
image=portraits/rogrimir.png
message= _ "I am saddened by the death of Rogrimir, but by saving my life in the end he did fulfill his life debt to me. I think he also would have been glad to have died in battle. I considered leading an expedition to go back and return his body to his people, but my fellow elves have been weakened by our long journey and I do not want to risk losing any more. Instead I searched all across the islands and at last in the rocky outcroppings to the northwest I found a series of caves. They were not as deep as his homeland but I thought Rogrimir would have appreciated being laid to rest under some solid rock. And so we buried him with much honor and will long remember the service that his kind has done for our people."
[/message]
)
(
[message]
speaker=Kaleh
image=portraits/rogrimir.png
message= _ "I am saddened by the death of Jarl, but by saving my life in the end he did fulfill his life debt to me. I think he also would have been glad to have died in battle. I considered leading an expedition to go back and return his body to his people, but my fellow elves have been weakened by our long journey and I do not want to risk losing any more. Instead I searched all across the islands and at last in the rocky outcroppings to the northwest I found a series of caves. They were not as deep as his homeland but I thought Jarl would have appreciated being laid to rest under some solid rock. And so we buried him with much honor and will long remember the service that his kind has done for our people."
[/message]
)}
[/then]
[/if]
# if nym doesn't die
[if]
[have_unit]
id=Nym
search_recall_list=yes
[/have_unit]
[then]
[message]
speaker=Kaleh
image=portraits/nym.png
message= _ "Although I am not as devout as Zhul is, I thank Eloh every day that Nym survived that horrible battle in the Black Citadel. No one has been more enthusiastic than she in embracing our life among the islands. She delights in swimming and sailing among the shallows and spends so much time in the water that sometimes I think she is half mermaid herself. Her sparkling laugh and quick wit are a daily gift to us. She entertains the children with thrilling (though often slightly embellished) tales of our great journey, and at times when I get moody, she reminds me what a joy it is to be alive in this great land. She is a living testament to the fact that even though we were born among the sands we can thrive anywhere we have the will to live."
[/message]
[/then]
[/if]
# if zhul doesn't die
[if]
[have_unit]
id=Zhul
search_recall_list=yes
[/have_unit]
[then]
[message]
speaker=Kaleh
image=portraits/zhul.png
message= _ "The oldest of the surviving elves, Zhul is moving slower now, but she still has that sparkle in her eye. Despite the hardships of our journey and Yechnagoths deceptions, our victory has only strengthened her faith. She will be as quick as always to correct the error of your ways if you ever express a disbelief in the powers of Eloh. She told me recently that all the trials and triumphs of our journey were but parts of Elohs great plan for us, and this new home is our reward. She is spending her time now teaching a whole new generation of priestesses and telling all the old stories to the children so that they wont be forgotten. She has started designing a sacred grove in the jungle for Eloh, as our people did in the olden times. I am still not quite used to seeing so many trees, but perhaps, as some people say, it is a sign that the peace and prosperity of old has come again."
[/message]
[/then]
[/if]
# if ally doesn't die
[if]
[have_unit]
id=$ally_name
search_recall_list=yes
[/have_unit]
[then]
{MESSAGE_DEPEND_ON_ALLY
(
[message]
speaker=Kaleh
image=portraits/grog.png
message= _ "By saving my life, Grog fulfilled his life debt to me, but we convinced him to hang around for a while and revel in the celebrations that we held after our great victory. We celebrated for days and days, thanking Eloh and the merfolks god, and delighting in the bounty and beauty of our new home. And afterwards we set to work building new dwellings for our people. Grog stayed to help us with the construction, he was the hardest worker among us. But after a while he came to me and told me that he had to return to his own people. Grog said his time with us had been like a wonderful dream, and he promised he would remember us always, but his people needed him and he had to go back home. He said that someday he would return and visit us again, but I doubt I shall ever see him again in life. All the same I treasure the memory of him and his kind, and I will long remember his steadfast loyalty and all that he did to aid us in our struggle."
[/message]
)
(
[message]
speaker=Kaleh
image=portraits/grog.png
message= _ "By saving my life, Nog fulfilled his life debt to me, but we convinced him to hang around for a while and revel in the celebrations that we held after our great victory. We celebrated for days and days, thanking Eloh and the merfolks god, and delighting in the bounty and beauty of our new home. And afterwards we set to work building new dwellings for our people. Nog stayed to help us with the construction, he was the hardest worker among us. But after a while he came to me and told me that he had to return to his own people. Nog said his time with us had been like a wonderful dream, and he promised he would remember us always, but his people needed him and he had to go back home. He said that someday he would return and visit us again, but I doubt I shall ever see him again in life. All the same I treasure the memory of him and his kind, and I will long remember his steadfast loyalty and all that he did to aid us in our struggle."
[/message]
)
(
[message]
speaker=Kaleh
image=portraits/rogrimir.png
message= _ "By saving my life, Rogrimir fulfilled his life debt to me, but we convinced him to hang around for a while and revel in the celebrations that we held after our great victory. We celebrated for days and days, thanking Eloh and the merfolks god, and delighting in the bounty and beauty of our new home. Afterwards we set to work building new dwellings for our people. Rogrimir stayed to help us with the construction, he was the hardest worker among us. But after a while he came to me and told me that he had to return to his own people. Rogrimir said his time with us had been like a wonderful dream, and he promised he would remember us always, but his people needed him and he had to go back home. He said that someday he would return and visit us again, but I doubt I shall ever see him again in life. All the same I treasure the memory of him and his kind, and I will long remember his steadfast loyalty and all that he did to aid us in our struggle."
[/message]
)
(
[message]
speaker=Kaleh
image=portraits/rogrimir.png
message= _ "By saving my life, Jarl fulfilled his life debt to me, but we convinced him to hang around for a while and revel in the celebrations that we held after our great victory. We celebrated for days and days, thanking Eloh and the merfolks god, and delighting in the bounty and beauty of our new home. Afterwards we set to work building new dwellings for our people. Jarl stayed to help us with the construction, he was the hardest worker among us. But after a while he came to me and told me that he had to return to his own people. Jarl said his time with us had been like a wonderful dream, and he promised he would remember us always, but his people needed him and he had to go back home. He said that someday he would return and visit us again, but I doubt I shall ever see him again in life. All the same I treasure the memory of him and his kind, and I will long remember his steadfast loyalty and all that he did to aid us in our struggle."
[/message]
)}
[/then]
[/if]
# if ally died before the final battle
[if]
[have_unit]
id=$ally_name
search_recall_list=yes
count=0
[/have_unit]
[variable]
name=ally_died_in_final_fight
boolean_equals=no
[/variable]
[then]
{MESSAGE_DEPEND_ON_ALLY
(
[message]
speaker=Kaleh
image=portraits/grog.png
message= _ "And I will always remember Grog who died along our journey. A braver warrior I have never seen, and though he was taken from us too soon, I am glad for the short time that I knew him."
[/message]
)
(
[message]
speaker=Kaleh
image=portraits/grog.png
message= _ "And I will always remember Nog who died along our journey. A braver warrior I have never seen, and though he was taken from us too soon, I am glad for the short time that I knew him."
[/message]
)
(
[message]
speaker=Kaleh
image=portraits/rogrimir.png
message= _ "And I will always remember Rogrimir who died along our journey. A braver warrior I have never seen, and though he was taken from us too soon, I am glad for the short time that I knew him."
[/message]
)
(
[message]
speaker=Kaleh
image=portraits/rogrimir.png
message= _ "And I will always remember Jarl who died along our journey. A braver warrior I have never seen, and though he was taken from us too soon, I am glad for the short time that I knew him."
[/message]
)}
[/then]
[/if]
[message]
speaker=Kaleh
image=portraits/garak.png
message= _ "So much has happened since we left the desert, but looking back upon our journey I do not want to forget Garak and his sacrifice. I doubt that we would have made it out of the sands alive if it was not for his strength and guidance. I remember how he used to smile when charging into battle, and how he would pray over the bodies of his fallen friends afterwards. I think of him sometimes, buried in the sands with his fellow warriors. I think he would have been proud of us. He was both a great warrior and a great teacher. He will be remembered."
[/message]
[message]
speaker=Kaleh
message= _ "As for the Black Citadel, after much discussion we decided to go back to the ancient rituals for purifying unclean land, with fire. We filled the entire structure with wood and oil and set the place ablaze to make sure that any remnants of Yechnagoths infestation would be purged by holy fire. We then tore the citadel down, stone by stone. I was tempted to save the stones for construction in the future, but I did not know what foul magics might still linger in them, and I did not want to take any chances. So with the help of the merfolk, we carried the stones far out into the water and cast them down to the bottom of the ocean. Once the last stone had been removed, we decided that no matter what we built or grew around it, that area would be left bare as a reminder of the evil that once dwelt here and all those who gave their lives to destroy it."
[/message]
[message]
speaker=Kaleh
message= _ "It has been several years since the events that I chronicle here, and Im not quite as spry and limber as I used to be, so I decided it was about time that I write this all down lest something happen to me. My one wish is that our descendants do not forget all those who made the ultimate sacrifice so that there might be a future for our people. Looking at the ruins of the ancient empires, I know that time erases all things. We have forgotten so much about the Golden Age. Do not let our story suffer the same fate. For as long as the tales of those now departed are still told, in some sense they are still alive and still with us. Honor those who have died. Remember our mistakes so you will not repeat them. And most of all, treasure every day, for it is a gift, from us to you."
[/message]
# if both Nym and Zhul survived, then play special bonus conclusion
[if]
[have_unit]
id=Nym,Zhul
search_recall_list=yes
count=2
[/have_unit]
[then]
[store_unit]
[filter]
id=Nym
x,y=recall,recall
[/filter]
variable=stored_unit
[/store_unit]
[move_unit_fake]
type=$stored_unit.type
side=1
x=30,31,32,32,33,34,34,35,36
y=38,38,38,39,40,40,41,42,42
[/move_unit_fake]
[unstore_unit]
variable=stored_unit
x,y=36,42
[/unstore_unit]
[redraw]
[/redraw]
[delay]
time=300
[/delay]
[message]
speaker=Nym
message= _ "Hey Kaleh, hows the writing going?"
[/message]
[message]
speaker=Kaleh
message= _ "Actually I just finished."
[/message]
[message]
speaker=Nym
message= _ "Youve been working on that thing for months. Im impressed."
[/message]
[message]
speaker=Kaleh
message= _ "Yes, it feels good to finally be done."
[/message]
[message]
speaker=Nym
message= _ "Well, your timing was perfect. Zhul is dedicating the new grove to Eloh, and you know therell be one heck of a celebration afterwards."
[/message]
[message]
speaker=Kaleh
message= _ "I suppose we wouldnt want to miss that. I wonder if they will still have any of that wine left from last year?"
[/message]
[message]
speaker=Nym
message= _ "Well just have to find out. Come on!"
[/message]
[redraw]
[/redraw]
[hide_unit]
id=Nym
[/hide_unit]
[move_unit_fake]
type=$stored_unit.type
side=1
x=36,35,35,34,34,33,33,33,33
y=42,42,41,40,39,39,38,37,36
[/move_unit_fake]
[store_unit]
[filter]
id=Kaleh
[/filter]
variable=stored_unit
[/store_unit]
[hide_unit]
id=Kaleh
[/hide_unit]
[move_unit_fake]
type=$stored_unit.type
side=1
x=37,36,35,35,34,34,33,33,33,33,33
y=44,43,43,42,41,40,40,39,38,37,36
[/move_unit_fake]
{CLEAR_VARIABLE stored_unit}
[delay]
time=1500
[/delay]
[/then]
[else]
[redraw]
[/redraw]
[delay]
time=2000
[/delay]
[/else]
[/if]
[endlevel]
carryover_report=no
replay_save=no
linger_mode=no
[/endlevel]
[/event]
[/scenario]

View file

@ -0,0 +1,70 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Archer
name= _ "Quenoth Archer"
image=units/quenoth/archer.png
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
hitpoints=42
movement_type=quenoth_horse
[resistance]
pierce=120
[/resistance]
movement=8
experience=90
level=2
alignment=lawful
advances_to=Quenoth Marksman
cost=18
usage=scout
description= _ "With the open sands providing much less protection than their old forests did, the wide ranks of elvish archers that could once have stopped an advancing orcish horde in its tracks have all but disappeared. Instead, the few who still choose to dedicate themselves to the traditional weapon of their ancestors practise the art from the saddle, easily avoiding the perils of melee combat."
die_sound=horse-die.ogg
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=7
number=3
icon=attacks/sword-elven.png
[/attack]
[attack]
name=bow
description= _"bow"
type=pierce
range=ranged
damage=7
number=4
icon=attacks/bow-elven.png
[/attack]
{DEFENSE_ANIM "units/quenoth/archer.png" "units/quenoth/archer.png" {SOUND_LIST:HORSE_HIT}}
[attack_anim]
[filter_attack]
name=sword
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/archer.png"
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:SWORD_SWISH} {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=bow
[/filter_attack]
missile_start_time=-100
[missile_frame]
duration=100
image=projectiles/missile-n.png
image_diagonal=projectiles/missile-ne.png
[/missile_frame]
start_time=-380
[frame]
image=units/quenoth/archer.png:470
[/frame]
{SOUND:HIT_AND_MISS bow.ogg bow-miss.ogg -380}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,49 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Champion
name= _ "Quenoth Champion"
race=elf
image=units/quenoth/champion.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=60
movement_type=quenoth_foot
movement=5
experience=150
level=3
alignment=lawful
advances_to=null
{AMLA_DEFAULT}
cost=15
usage=fighter
description= _ ""+{SPECIAL_NOTES}+{SPECIAL_NOTES_FORMATION}+{SPECIAL_NOTES_FIRSTSTRIKE}
die_sound={SOUND_LIST:ELF_HIT}
[abilities]
{ABILITY_FORMATION}
[/abilities]
[attack]
name=spear
description= _"spear"
type=pierce
range=melee
damage=12
number=4
icon=attacks/spear.png
[specials]
{WEAPON_SPECIAL_FIRSTSTRIKE}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/champion.png" "units/quenoth/champion.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=spear
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/champion.png"
[/frame]
{SOUND:HIT_AND_MISS spear.ogg spear-miss.ogg -100}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,74 @@
#textdomain wesnoth-utbs
[unit_type]
id=Corrupted Quenoth Elf
name= _ "Corrupted Elf"
race=elf
image=units/quenoth/corrupted-elf.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=60
movement_type=quenoth_foot
movement=5
experience=150
level=3
alignment=chaotic
advances_to=null
{AMLA_DEFAULT}
cost=100
usage=fighter
description= _ "Imbued with a dark spirit these corrupted elves combine unhuman strength with potent magics to create formidable opponents. Though the elvish body often decays quickly, these abominations are potent weapons of the undead lords."+{SPECIAL_NOTES}+{SPECIAL_NOTES_FIRSTSTRIKE}+{SPECIAL_NOTES_MAGICAL}
die_sound={SOUND_LIST:ELF_HIT}
[attack]
name=spear
description= _"spear"
type=pierce
range=melee
damage=12
number=4
icon=attacks/spear.png
[specials]
{WEAPON_SPECIAL_FIRSTSTRIKE}
[/specials]
[/attack]
[attack]
name=magic
description= _"magic"
icon=attacks/dark-missile.png
type=cold
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
range=ranged
damage=12
number=3
[/attack]
{DEFENSE_ANIM "units/quenoth/corrupted-elf.png" "units/quenoth/corrupted-elf.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=spear
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/corrupted-elf.png"
[/frame]
{SOUND:HIT_AND_MISS spear.ogg spear-miss.ogg -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=magic
[/filter_attack]
missile_start_time=-200
[missile_frame]
duration=200
image=projectiles/darkmissile-n.png
image_diagonal=projectiles/darkmissile-ne.png
[/missile_frame]
start_time=-200
[frame]
image=units/quenoth/corrupted-elf.png:200
[/frame]
{SOUND:HIT_AND_MISS magic-dark.ogg magic-dark-miss.ogg -200}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,62 @@
#textdomain wesnoth-utbs
[unit_type]
id=Divine Avatar
name= _ "female^Divine Avatar"
gender=female
race=elf
image=units/quenoth/eloh.png
profile=portraits/eloh.png
hitpoints=40
movement_type=woodland
movement=1
experience=100
level=2
alignment=lawful
advances_to=null
{AMLA_DEFAULT}
cost=10
usage=null
description= _ "Divine Avatars only appear in time of great need. Forms of the Gods themselves, made real in this world for a time, blessed are those who are lucky enough to view such images of power and perfection."+{SPECIAL_NOTES}+{SPECIAL_NOTES_ARCANE}+{SPECIAL_NOTES_MAGICAL}
{DEFENSE_ANIM "units/quenoth/eloh.png" "units/quenoth/eloh.png" magicmissile.wav }
die_sound=magic-holy-miss-2.ogg
[attack]
name=fist
description= _"fist"
type=arcane
range=melee
damage=7
number=3
[/attack]
[attack]
name=lightbeam
description= _"lightbeam" # wmllint: no spellcheck (until name->id)
type=arcane
range=ranged
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
damage=10
number=2
[/attack]
[attack_anim]
[filter_attack]
name=fist
[/filter_attack]
start_time=-200
[frame]
image="units/quenoth/eloh.png:375"
[/frame]
{SOUND:HIT_AND_MISS fist.ogg {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=lightbeam
[/filter_attack]
{MISSILE_FRAME_LIGHT_BEAM}
start_time=-100
[frame]
image="units/quenoth/eloh.png:100"
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:HOLY} {SOUND_LIST:HOLY_MISS} -100}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,19 @@
#textdomain wesnoth-utbs
[unit_type]
[base_unit]
id=Divine Avatar
[/base_unit]
id=Divine Incarnation
name= _ "female^Divine Incarnation"
hitpoints=50
movement=4
experience=150
level=3
description= _ "Divine Incarnations are said to be the closest thing to a gods actual presence in this world. They can be both awe-inspiring and terrifying."+{SPECIAL_NOTES}+{SPECIAL_NOTES_ARCANE}+{SPECIAL_NOTES_MAGICAL}
[attack]
damage=9
[/attack]
[attack]
damage=14
[/attack]
[/unit_type]

View file

@ -0,0 +1,115 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Druid
name= _ "female^Quenoth Druid"
race=elf
gender=female
image=units/quenoth/druid.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=50
movement_type=quenoth_foot
movement=5
experience=150
level=3
alignment=neutral
advances_to=null
cost=34
usage=healer
[abilities]
{UTBS_ABILITY_CURES}
[/abilities]
description= _ ""+{SPECIAL_NOTES}+{SPECIAL_NOTES_UTBS_CURES}+{SPECIAL_NOTES_DAZE}+{SPECIAL_NOTES_MAGICAL}
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
[attack]
name=staff
description= _"staff"
type=impact
range=melee
damage=8
number=2
range=melee
icon=attacks/druidstaff.png
[/attack]
[attack]
name=sand
description= _"sand"
type=impact
range=ranged
damage=6
number=3
icon=attacks/sand-storm.png
[specials]
{WEAPON_SPECIAL_DAZE}
[/specials]
[/attack]
[attack]
name=thorns
description= _"thorns"
type=pierce
range=ranged
damage=7
number=4
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/druid.png" "units/quenoth/druid.png" {SOUND_LIST:ELF_FEMALE_HIT} }
[healing_anim]
start_time=-250
[frame]
image="units/quenoth/druid.png:50"
[/frame]
[frame]
image="units/quenoth/druid.png:350"
halo=halo/elven/shaman-heal-halo-[1~7].png
[/frame]
[frame]
image="units/quenoth/druid.png:50"
[/frame]
[/healing_anim]
[attack_anim]
[filter_attack]
name=staff
[/filter_attack]
start_time=-250
[frame]
image="units/quenoth/druid.png:400"
[/frame]
{SOUND:HIT_AND_MISS staff.ogg staff-miss.ogg -125}
[/attack_anim]
[attack_anim]
[filter_attack]
name=sand
[/filter_attack]
missile_start_time=-200
[missile_frame]
duration=320
offset=0.75~1.1,1.1~1.25
halo="projectiles/sand-storm-[1~8].png:40"
auto_vflip=no
[/missile_frame]
start_time=-320
[frame]
image="units/quenoth/druid.png:450"
sound=petrified.ogg
[/frame]
[/attack_anim]
[attack_anim]
[filter_attack]
name=thorns
[/filter_attack]
missile_start_time=-200
[missile_frame]
duration=200
image="projectiles/thorns.png"
image_diagonal="projectiles/thorns-ne.png"
[/missile_frame]
start_time=-300
[frame]
image="units/quenoth/druid.png:500"
halo="halo/elven/nature-halo[1~8].png"
[/frame]
{SOUND:HIT_AND_MISS magic-thorns-[1,2].ogg magic-thorns-miss-[1,2].ogg -100}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,78 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Fighter
name= _ "Quenoth Fighter"
race=elf
ignore_race_traits=yes
{TRAIT_STRONG}
{TRAIT_INTELLIGENT}
{TRAIT_RESILIENT}
{TRAIT_QUICK}
image=units/quenoth/fighter.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=34
movement_type=quenoth_foot
movement=5
experience=40
level=1
alignment=lawful
advances_to=Quenoth Warrior,Quenoth Flanker
cost=15
usage=fighter
description= _ "Fighters make up the bulk of the Quenoth warriors. Aside from being proficient in the use of the spear, they are remarkably skilled in working together and coordinating defense."+{SPECIAL_NOTES}+{SPECIAL_NOTES_FORMATION}+{SPECIAL_NOTES_FIRSTSTRIKE}
die_sound={SOUND_LIST:ELF_HIT}
[abilities]
{ABILITY_FORMATION}
[/abilities]
[attack]
name=spear
description= _"spear"
type=pierce
range=melee
damage=10
number=2
icon=attacks/spear.png
[specials]
{WEAPON_SPECIAL_FIRSTSTRIKE}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/fighter.png" "units/quenoth/fighter.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=spear
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/fighter.png"
[/frame]
{SOUND:HIT_AND_MISS spear.ogg spear-miss.ogg -100}
[/attack_anim]
[/unit_type]
#define QUENOTH_FIGHTER_VARIANT SUFFIX_NUMBER COST
[unit_type]
id=Quenoth Fighter{SUFFIX_NUMBER}
[base_unit]
id=Quenoth Fighter
[/base_unit]
hide_help=true
do_not_list=true
cost={COST}
[/unit_type]
#enddef
{QUENOTH_FIGHTER_VARIANT 1 16}
{QUENOTH_FIGHTER_VARIANT 2 17}
{QUENOTH_FIGHTER_VARIANT 3 18}
{QUENOTH_FIGHTER_VARIANT 4 19}
{QUENOTH_FIGHTER_VARIANT 5 20}
{QUENOTH_FIGHTER_VARIANT 6 21}
{QUENOTH_FIGHTER_VARIANT 7 22}
{QUENOTH_FIGHTER_VARIANT 8 23}
{QUENOTH_FIGHTER_VARIANT 9 24}
{QUENOTH_FIGHTER_VARIANT 10 25}
#undef QUENOTH_FIGHTER_VARIANT

View file

@ -0,0 +1,84 @@
#textdomain wesnoth-utbs
[unit_type]
id=Tauroch Flagbearer
name= _ "Tauroch Flagbearer"
image=units/quenoth/flagbearer.png
image_icon="units/quenoth/flagbearer.png~CROP(0,0,72,72)"
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
hitpoints=60
movement_type=quenoth_beast
#mostly like a foot Elf, but they are bad at defending in villages
[defense]
village=60
[/defense]
movement=5
experience=150
level=3
alignment=lawful
advances_to=null
cost=18
usage=mixed fighter
description= _ "Carrying the banners of the Quenoth elves into battle, the prestigious Flagbearers are also masters of tactics. Any enemy commander intending on besting them on the battlefield must invariably possess vastly superior numbers."+{SPECIAL_NOTES}+{SPECIAL_NOTES_LEADERSHIP}+{SPECIAL_NOTES_SHOCK}
die_sound=horse-die.ogg
[abilities]
{ABILITY_LEADERSHIP_LEVEL_3}
[/abilities]
[attack]
name=ram
description= _"ram"
type=impact
range=melee
damage=13
number=3
icon=attacks/ram.png
[specials]
{WEAPON_SPECIAL_SHOCK}
[/specials]
[/attack]
[attack]
name=javelin
description= _"javelin"
type=pierce
range=ranged
damage=10
number=3
icon=attacks/javelin-human.png
[/attack]
{DEFENSE_ANIM "units/quenoth/flagbearer.png" "units/quenoth/flagbearer.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=ram
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=50
image="units/quenoth/flagbearer.png"
[/frame]
[frame]
duration=400
image="units/quenoth/flagbearer.png"
sound=tail.ogg
[/frame]
{SOUND:HIT mace.ogg -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=javelin
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image="projectiles/spear-n.png"
image_diagonal="projectiles/spear-ne.png"
[/missile_frame]
start_time=-300
[frame]
image="units/quenoth/flagbearer.png:450"
sound={SOUND_LIST:THROW}
[/frame]
{SOUND:HIT spear.ogg -100}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,73 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Flanker
name= _ "Quenoth Flanker"
race=elf
image=units/quenoth/flanker.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=48
movement_type=quenoth_foot
movement=5
experience=90
level=2
alignment=lawful
advances_to=Quenoth Ranger
cost=15
usage=fighter
description= _ "Some fighters find that their true talents lie not within rigid spear ranks, but out in the sands, striking at the flanks and rear of enemy forces. Fast and nimble, these elves can take advantage of the smallest weaknesses in enemy formations."+{SPECIAL_NOTES}+{SPECIAL_NOTES_SKIRMISHER}+{SPECIAL_NOTES_POISON}
die_sound={SOUND_LIST:ELF_HIT}
[abilities]
{ABILITY_SKIRMISHER}
[/abilities]
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=8
number=4
icon=attacks/sword-elven.png
[/attack]
[attack]
name=blowgun
description= _"blowgun"
type=pierce
range=ranged
damage=3
number=3
icon=attacks/blowgun.png
[specials]
{WEAPON_SPECIAL_POISON}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/flanker.png" "units/quenoth/flanker.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=sword
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/flanker.png"
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:SWORD_SWISH} {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=blowgun
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image="projectiles/missile-n.png~SCALE_SHARP(36,36)"
image_diagonal="projectiles/missile-ne.png~SCALE_SHARP(36,36)"
[/missile_frame]
start_time=-300
[frame]
image="units/quenoth/flanker.png:450"
[/frame]
{SOUND:HIT_AND_MISS crossbow.ogg crossbow-miss.ogg -300}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,78 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Horseman
name= _ "Quenoth Horseman"
image=units/quenoth/horseman.png
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
hitpoints=42
movement_type=quenoth_horse
[resistance]
pierce=120
[/resistance]
movement=8
experience=80
level=2
alignment=lawful
advances_to=Quenoth Outrider
cost=18
usage=scout
description= _ "In most cases, turning and fleeing from an engagement is a risky tactic. These elusive Horsemen, however, are masters of weakening an enemy while at the same time provoking them to give chase — often into a trap."+{SPECIAL_NOTES}+{SPECIAL_NOTES_DISENGAGE}+{SPECIAL_NOTES_SLOW}
die_sound=horse-die.ogg
[abilities]
{ABILITY_DISENGAGE}
[/abilities]
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=7
number=4
icon=attacks/sword-elven.png
movement_used=0
[/attack]
[attack]
name=bolas
description= _"bolas"
type=impact
range=ranged
damage=9
number=3
icon=attacks/bolas.png
movement_used=0
[specials]
{WEAPON_SPECIAL_SLOW}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/horseman.png" "units/quenoth/horseman.png" {SOUND_LIST:HORSE_HIT}}
[attack_anim]
[filter_attack]
name=sword
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/horseman.png"
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:SWORD_SWISH} {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=bolas
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image=projectiles/bolas-n.png
image_diagonal=projectiles/bolas-ne.png
[/missile_frame]
start_time=-300
[frame]
image=units/quenoth/horseman.png:400
[/frame]
{SOUND:HIT_AND_MISS hatchet.wav hatchet-miss.wav -300}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,74 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Marksman
name= _ "Quenoth Marksman"
image=units/quenoth/marksman.png
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
hitpoints=55
movement_type=quenoth_horse
[resistance]
pierce=120
[/resistance]
movement=8
experience=150
level=3
alignment=lawful
advances_to=null
{AMLA_DEFAULT}
cost=18
usage=scout
description= _ "A marksman can loose volleys of arrows at their enemies with deadly accuracy, even at full gallop."
die_sound=horse-die.ogg
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=8
number=3
icon=attacks/sword-elven.png
[/attack]
[attack]
name=bow
description= _"bow"
type=pierce
range=ranged
damage=9
number=4
icon=attacks/bow-elven.png
[specials]
{WEAPON_SPECIAL_MARKSMAN}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/marksman.png" "units/quenoth/marksman.png" {SOUND_LIST:HORSE_HIT}}
[attack_anim]
[filter_attack]
name=sword
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/marksman.png"
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:SWORD_SWISH} {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=bow
[/filter_attack]
missile_start_time=-100
[missile_frame]
duration=100
image=projectiles/missile-n.png
image_diagonal=projectiles/missile-ne.png
[/missile_frame]
start_time=-380
[frame]
image=units/quenoth/marksman.png:470
[/frame]
{SOUND:HIT_AND_MISS bow.ogg bow-miss.ogg -380}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,116 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Moon Shyde
name= _ "female^Quenoth Moon Shyde"
race=elf
gender=female
image=units/quenoth/moon-shyde.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=59
movement_type=quenoth_float
movement=6
experience=150
level=3
alignment=chaotic
advances_to=null
cost=34
usage=healer
[abilities]
{UTBS_ABILITY_HEALS}
[dummy]
id=moonwalk
name="moonwalk"
description="This unit gains +1 movement points in darkness, whether at night or underground."
[/dummy]
[/abilities]
description= _ ""+{SPECIAL_NOTES}+{SPECIAL_NOTES_UTBS_HEALS}+{SPECIAL_NOTES_MAGICAL}
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
[event]
name=turn refresh
first_time_only=no
[store_time_of_day]
[/store_time_of_day]
[if]
[variable]
name=time_of_day.id
contains="_dark"
[/variable]
[then]
[modify_unit]
[filter]
side=$side_number
type=Quenoth Moon Shyde
[/filter]
moves="$($this_unit.moves + 1)"
[/modify_unit]
[/then]
[/if]
[/event]
[attack]
name=touch
description= _"touch"
type=arcane
range=melee
damage=9
number=3
icon=attacks/touch-faerie.png
[/attack]
[attack]
name=chill gale
description= _"chill gale"
type=cold
range=ranged
damage=11
number=4
icon=attacks/iceball.png
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/moon-shyde.png" "units/quenoth/moon-shyde.png" {SOUND_LIST:ELF_FEMALE_HIT} }
[healing_anim]
start_time=-250
[frame]
image="units/quenoth/moon-shyde.png:50"
[/frame]
[frame]
image="units/quenoth/moon-shyde.png:350"
halo=halo/elven/shaman-heal-halo-[1~7].png
[/frame]
[frame]
image="units/quenoth/moon-shyde.png:50"
[/frame]
[/healing_anim]
[attack_anim]
[filter_attack]
name=touch
[/filter_attack]
start_time=-250
[frame]
image="units/quenoth/moon-shyde.png:400"
sound=miss-3.ogg
[/frame]
{SOUND:HIT magicmissile.wav -75}
[/attack_anim]
[attack_anim]
[filter_attack]
name=chill gale
[/filter_attack]
start_time=-350
{MISSILE_FRAME_FAERIE_FIRE}
[frame]
image="units/quenoth/moon-shyde.png"
duration=500
halo=halo/elven/faerie-fire-halo[1~7].png
halo_x,halo_y=14,-4
[/frame]
{SOUND:HIT_AND_MISS magic-faeriefire.ogg magic-faeriefire-miss.ogg -350}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,84 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Moon Singer
name= _ "female^Quenoth Moon Singer"
race=elf
gender=female
image=units/quenoth/moon-singer.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=50
movement_type=quenoth_float
movement=5
experience=80
level=2
alignment=chaotic
advances_to=Quenoth Moon Shyde
cost=34
usage=healer
[abilities]
{UTBS_ABILITY_HEALS}
[/abilities]
description= _ ""+{SPECIAL_NOTES}+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_UTBS_CURES}
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
[attack]
name=touch
description= _"touch"
type=arcane
range=melee
damage=9
number=2
icon=attacks/touch-faerie.png
[/attack]
[attack]
name=chill gale
description= _"chill gale"
type=cold
range=ranged
damage=10
number=3
icon=attacks/iceball.png
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/moon-singer.png" "units/quenoth/moon-singer.png" {SOUND_LIST:ELF_FEMALE_HIT} }
[healing_anim]
start_time=-250
[frame]
image="units/quenoth/moon-singer.png:50"
[/frame]
[frame]
image="units/quenoth/moon-singer.png:350"
halo=halo/elven/shaman-heal-halo-[1~7].png
[/frame]
[frame]
image="units/quenoth/moon-singer.png:50"
[/frame]
[/healing_anim]
[attack_anim]
[filter_attack]
name=touch
[/filter_attack]
start_time=-250
[frame]
image="units/quenoth/moon-singer.png:400"
sound=miss-3.ogg
[/frame]
{SOUND:HIT magicmissile.wav -75}
[/attack_anim]
[attack_anim]
[filter_attack]
name=chill gale
[/filter_attack]
start_time=-350
{MISSILE_FRAME_FAERIE_FIRE}
[frame]
image="units/quenoth/moon-singer.png"
duration=500
halo=halo/elven/faerie-fire-halo[1~7].png
halo_x,halo_y=16,-6
[/frame]
{SOUND:HIT_AND_MISS magic-faeriefire.ogg magic-faeriefire-miss.ogg -350}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,112 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Mystic
name= _ "female^Quenoth Mystic"
race=elf
gender=female
image=units/quenoth/mystic.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=26
movement_type=quenoth_foot
movement=5
experience=28
level=1
alignment=neutral
advances_to=Quenoth Shaman,Quenoth Sun Singer,Quenoth Moon Singer
cost=18
usage=healer
[abilities]
{UTBS_ABILITY_HEALS}
[/abilities]
description= _ "Like their ancestors, Quenoth Mystics have the potential to become great wielders of magic. It is a testament to the resilience of elves that they are able to accomplish this in a world devoid of the vast forests from which their forebears drew much of their strength from."+{SPECIAL_NOTES}+{SPECIAL_NOTES_UTBS_HEALS}+{SPECIAL_NOTES_DAZE}
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
[attack]
name=staff
description= _"staff"
type=impact
range=melee
damage=4
number=2
range=melee
icon=attacks/druidstaff.png
[/attack]
[attack]
name=sand
description= _"sand"
type=impact
range=ranged
damage=3
number=2
icon=attacks/sand-storm.png
[specials]
{WEAPON_SPECIAL_DAZE}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/mystic.png" "units/quenoth/mystic.png" {SOUND_LIST:ELF_FEMALE_HIT} }
[healing_anim]
start_time=-250
[frame]
image="units/quenoth/mystic.png:50"
[/frame]
[frame]
image="units/quenoth/mystic.png:350"
halo=halo/elven/shaman-heal-halo-[1~7].png
[/frame]
[frame]
image="units/quenoth/mystic.png:50"
[/frame]
[/healing_anim]
[attack_anim]
[filter_attack]
name=staff
[/filter_attack]
start_time=-250
[frame]
image="units/quenoth/mystic.png:400"
[/frame]
{SOUND:HIT_AND_MISS staff.ogg staff-miss.ogg -125}
[/attack_anim]
[attack_anim]
[filter_attack]
name=sand
[/filter_attack]
missile_start_time=-200
[missile_frame]
duration=320
offset=0.75~1.1,1.1~1.25
halo="projectiles/sand-storm-[1~8].png:40"
auto_vflip=no
[/missile_frame]
start_time=-320
[frame]
image="units/quenoth/mystic.png:450"
sound=petrified.ogg
[/frame]
[/attack_anim]
[/unit_type]
#define QUENOTH_MYSTIC_VARIANT SUFFIX_NUMBER COST
[unit_type]
id=Quenoth Mystic{SUFFIX_NUMBER}
[base_unit]
id=Quenoth Mystic
[/base_unit]
hide_help=true
do_not_list=true
cost={COST}
[/unit_type]
#enddef
{QUENOTH_MYSTIC_VARIANT 1 19}
{QUENOTH_MYSTIC_VARIANT 2 20}
{QUENOTH_MYSTIC_VARIANT 3 21}
{QUENOTH_MYSTIC_VARIANT 4 22}
{QUENOTH_MYSTIC_VARIANT 5 23}
{QUENOTH_MYSTIC_VARIANT 6 24}
{QUENOTH_MYSTIC_VARIANT 7 25}
{QUENOTH_MYSTIC_VARIANT 8 26}
{QUENOTH_MYSTIC_VARIANT 9 27}
{QUENOTH_MYSTIC_VARIANT 10 28}
#undef QUENOTH_MYSTIC_VARIANT

View file

@ -0,0 +1,78 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Outrider
name= _ "Quenoth Outrider"
image=units/quenoth/outrider.png
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
hitpoints=52
movement_type=quenoth_horse
[resistance]
pierce=120
[/resistance]
movement=8
experience=150
level=3
alignment=lawful
advances_to=null
cost=18
usage=scout
description= _ "Riding like the wind, Outriders breeze across the sands to strike at weaker units and exposed flanks, before flying off into the sands to evade response."+{SPECIAL_NOTES}+{SPECIAL_NOTES_DISENGAGE}+{SPECIAL_NOTES_SLOW}
die_sound=horse-die.ogg
[abilities]
{ABILITY_DISENGAGE}
[/abilities]
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=8
number=4
icon=attacks/sword-elven.png
movement_used=0
[/attack]
[attack]
name=bolas
description= _"bolas"
type=impact
range=ranged
damage=11
number=3
icon=attacks/bolas.png
movement_used=0
[specials]
{WEAPON_SPECIAL_SLOW}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/outrider.png" "units/quenoth/outrider.png" {SOUND_LIST:HORSE_HIT}}
[attack_anim]
[filter_attack]
name=sword
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/outrider.png"
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:SWORD_SWISH} {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=bolas
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image=projectiles/bolas-n.png
image_diagonal=projectiles/bolas-ne.png
[/missile_frame]
start_time=-300
[frame]
image=units/quenoth/outrider.png:400
[/frame]
{SOUND:HIT_AND_MISS hatchet.wav hatchet-miss.wav -300}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,83 @@
#textdomain wesnoth-utbs
[unit_type]
id=Tauroch Protector
name= _ "Tauroch Protector"
image=units/quenoth/protector.png
image_icon="units/quenoth/protector.png~CROP(0,0,72,72)"
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
hitpoints=65
movement_type=quenoth_beast
#mostly like a foot Elf, but they are bad at defending in villages
[defense]
village=60
[/defense]
movement=5
experience=150
level=3
alignment=lawful
advances_to=null
cost=18
usage=mixed fighter
description= _ "It is told that once, an elf fleeing from an orcish hunting party came across a young stray tauroch on a small oasis. Understanding that neither meant any harm to the other, they are said to have fought side by side through a long night, driving off the orcs at sunrise. Afterwards, as the elf had mended the tauroch's wounds and finally collapsed from exhaustion, the beast had gently picked her up with its horns and carried back to her village.
Whether the story is true is unknown, but the loyalty and resolve of these mounts and riders both is undeniable."+{SPECIAL_NOTES}+{SPECIAL_NOTES_STEADFAST}
die_sound=horse-die.ogg
[abilities]
{ABILITY_STEADFAST}
[/abilities]
[attack]
name=trample
description= _"trample"
type=impact
range=melee
damage=15
number=2
icon=attacks/slam-drake.png
[/attack]
[attack]
name=javelin
description= _"javelin"
type=pierce
range=ranged
damage=12
number=3
icon=attacks/javelin-human.png
[/attack]
{DEFENSE_ANIM "units/quenoth/protector.png" "units/quenoth/protector.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=trample
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=100
image="units/quenoth/protector.png"
[/frame]
[frame]
duration=350
image="units/quenoth/protector.png"
sound=club.ogg
[/frame]
{SOUND:HIT squishy-hit.wav -150}
[/attack_anim]
[attack_anim]
[filter_attack]
name=javelin
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image="projectiles/spear-n.png"
image_diagonal="projectiles/spear-ne.png"
[/missile_frame]
start_time=-300
[frame]
image="units/quenoth/protector.png:450"
sound={SOUND_LIST:THROW}
[/frame]
{SOUND:HIT spear.ogg -100}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,73 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Ranger
name= _ "Quenoth Ranger"
race=elf
image=units/quenoth/ranger.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=62
movement_type=quenoth_foot
movement=6
experience=150
level=3
alignment=lawful
advances_to=null
cost=50
usage=fighter
description= _ ""+{SPECIAL_NOTES}+{SPECIAL_NOTES_SKIRMISHER}+{SPECIAL_NOTES_POISON}
die_sound={SOUND_LIST:ELF_HIT}
[abilities]
{ABILITY_SKIRMISHER}
[/abilities]
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=11
number=4
icon=attacks/sword-elven.png
[/attack]
[attack]
name=blowgun
description= _"blowgun"
type=pierce
range=ranged
damage=7
number=3
icon=attacks/blowgun.png
[specials]
{WEAPON_SPECIAL_POISON}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/ranger.png" "units/quenoth/ranger.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=sword
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/ranger.png"
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:SWORD_SWISH} {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=blowgun
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image="projectiles/missile-n.png~SCALE_SHARP(36,36)"
image_diagonal="projectiles/missile-ne.png~SCALE_SHARP(36,36)"
[/missile_frame]
start_time=-300
[frame]
image="units/quenoth/ranger.png:450"
[/frame]
{SOUND:HIT_AND_MISS crossbow.ogg crossbow-miss.ogg -300}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,107 @@
#textdomain wesnoth-utbs
[unit_type]
id=Tauroch Rider
name= _ "Tauroch Rider"
image=units/quenoth/rider.png
image_icon="units/quenoth/rider.png~CROP(0,0,72,72)"
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
# Base movement of 4 is too little, but we don't want them to get 6 either
# if they're quick, so instead they just have 5 movement but can't get quick
ignore_race_traits=yes
{TRAIT_STRONG}
{TRAIT_INTELLIGENT}
{TRAIT_RESILIENT}
{TRAIT_DEXTROUS}
{TRAIT_HEALTHY}
hitpoints=50
movement_type=quenoth_beast
movement=5
experience=37
level=1
alignment=lawful
advances_to=Tauroch Vanguard,Tauroch Stalwart
cost=20
usage=mixed fighter
description= _ "Taurochs are huge, hardened beasts of the desert, considered untamable by most surviving races. However, the elves' affinity with nature has allowed them to form an unlikely bond with them. While taurochs can easily carry or pull heavy loads, their thick hides and unwavering resolution also make them formidable mounts in battle. A tauroch guided by a skilled rider can hold off multiple enemies long enough for assistance to arrive."
die_sound=horse-die.ogg
[attack]
name=trample
description= _"trample"
type=impact
range=melee
damage=6
number=2
icon=attacks/slam-drake.png
[/attack]
[attack]
name=javelin
description= _"javelin"
type=pierce
range=ranged
damage=7
number=3
icon=attacks/javelin-human.png
[/attack]
{DEFENSE_ANIM "units/quenoth/rider.png" "units/quenoth/rider.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=trample
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=100
image="units/quenoth/rider.png"
[/frame]
[frame]
duration=350
image="units/quenoth/rider.png"
sound=club.ogg
[/frame]
{SOUND:HIT squishy-hit.wav -150}
[/attack_anim]
[attack_anim]
[filter_attack]
name=javelin
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image="projectiles/spear-n.png"
image_diagonal="projectiles/spear-ne.png"
[/missile_frame]
start_time=-300
[frame]
image="units/quenoth/rider.png:450"
sound={SOUND_LIST:THROW}
[/frame]
{SOUND:HIT spear.ogg -100}
[/attack_anim]
[/unit_type]
#define QUENOTH_RIDER_VARIANT SUFFIX_NUMBER COST
[unit_type]
id=Tauroch Rider{SUFFIX_NUMBER}
[base_unit]
id=Tauroch Rider
[/base_unit]
hide_help=true
do_not_list=true
cost={COST}
[/unit_type]
#enddef
{QUENOTH_RIDER_VARIANT 1 21}
{QUENOTH_RIDER_VARIANT 2 22}
{QUENOTH_RIDER_VARIANT 3 23}
{QUENOTH_RIDER_VARIANT 4 24}
{QUENOTH_RIDER_VARIANT 5 25}
{QUENOTH_RIDER_VARIANT 6 26}
{QUENOTH_RIDER_VARIANT 7 27}
{QUENOTH_RIDER_VARIANT 8 28}
{QUENOTH_RIDER_VARIANT 9 29}
{QUENOTH_RIDER_VARIANT 10 30}
#undef QUENOTH_RIDER_VARIANT

View file

@ -0,0 +1,100 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Scout
name= _ "Quenoth Scout"
image=units/quenoth/scout.png
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
hitpoints=29
movement_type=quenoth_horse
movement=8
experience=37
level=1
alignment=lawful
advances_to=Quenoth Horseman,Quenoth Archer
cost=17
usage=scout
description= _ "The Quenoth Scouts move swiftly across the sands. Their skill on horseback is virtually unmatched, which they use to harry and incapacitate enemies."+{SPECIAL_NOTES}+{SPECIAL_NOTES_DISENGAGE}+{SPECIAL_NOTES_SLOW}
die_sound=horse-die.ogg
[abilities]
{ABILITY_DISENGAGE}
[/abilities]
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=6
number=3
icon=attacks/sword-elven.png
movement_used=0
[/attack]
[attack]
name=bolas
description= _"bolas"
type=impact
range=ranged
damage=6
number=2
icon=attacks/bolas.png
movement_used=0
[specials]
{WEAPON_SPECIAL_SLOW}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/scout.png" "units/quenoth/scout.png" {SOUND_LIST:HORSE_HIT}}
[attack_anim]
[filter_attack]
name=sword
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/scout.png"
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:SWORD_SWISH} {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=bolas
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image=projectiles/bolas-n.png
image_diagonal=projectiles/bolas-ne.png
[/missile_frame]
start_time=-300
[frame]
image=units/quenoth/scout.png:400
[/frame]
{SOUND:HIT_AND_MISS hatchet.wav hatchet-miss.wav -300}
[/attack_anim]
[/unit_type]
#define QUENOTH_SCOUT_VARIANT SUFFIX_NUMBER COST
[unit_type]
id=Quenoth Scout{SUFFIX_NUMBER}
[base_unit]
id=Quenoth Scout
[/base_unit]
hide_help=true
do_not_list=true
cost={COST}
[/unit_type]
#enddef
{QUENOTH_SCOUT_VARIANT 1 18}
{QUENOTH_SCOUT_VARIANT 2 19}
{QUENOTH_SCOUT_VARIANT 3 20}
{QUENOTH_SCOUT_VARIANT 4 21}
{QUENOTH_SCOUT_VARIANT 5 22}
{QUENOTH_SCOUT_VARIANT 6 23}
{QUENOTH_SCOUT_VARIANT 7 24}
{QUENOTH_SCOUT_VARIANT 8 25}
{QUENOTH_SCOUT_VARIANT 9 26}
{QUENOTH_SCOUT_VARIANT 10 27}
#undef QUENOTH_SCOUT_VARIANT

View file

@ -0,0 +1,115 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Shaman
name= _ "female^Quenoth Shaman"
race=elf
gender=female
image=units/quenoth/shaman.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=36
movement_type=quenoth_foot
movement=5
experience=80
level=2
alignment=neutral
advances_to=Quenoth Druid
cost=34
usage=healer
[abilities]
{UTBS_ABILITY_CURES}
[/abilities]
description= _ "Shamans seek to maintain the elves' traditional connection with the natural world. Using their vast knowledge of plants of the desert to heal allies and their magical abilities to bolster crops, they serve an invaluable role among the Quenoth elves."+{SPECIAL_NOTES}+{SPECIAL_NOTES_UTBS_CURES}+{SPECIAL_NOTES_DAZE}+{SPECIAL_NOTES_MAGICAL}
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
[attack]
name=staff
description= _"staff"
type=impact
range=melee
damage=5
number=2
range=melee
icon=attacks/druidstaff.png
[/attack]
[attack]
name=sand
description= _"sand"
type=impact
range=ranged
damage=6
number=2
icon=attacks/sand-storm.png
[specials]
{WEAPON_SPECIAL_DAZE}
[/specials]
[/attack]
[attack]
name=thorns
description= _"thorns"
type=pierce
range=ranged
damage=6
number=3
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/shaman.png" "units/quenoth/shaman.png" {SOUND_LIST:ELF_FEMALE_HIT} }
[healing_anim]
start_time=-250
[frame]
image="units/quenoth/shaman.png:50"
[/frame]
[frame]
image="units/quenoth/shaman.png:350"
halo=halo/elven/shaman-heal-halo-[1~7].png
[/frame]
[frame]
image="units/quenoth/shaman.png:50"
[/frame]
[/healing_anim]
[attack_anim]
[filter_attack]
name=staff
[/filter_attack]
start_time=-250
[frame]
image="units/quenoth/shaman.png:400"
[/frame]
{SOUND:HIT_AND_MISS staff.ogg staff-miss.ogg -125}
[/attack_anim]
[attack_anim]
[filter_attack]
name=sand
[/filter_attack]
missile_start_time=-200
[missile_frame]
duration=320
offset=0.75~1.1,1.1~1.25
halo="projectiles/sand-storm-[1~8].png:40"
auto_vflip=no
[/missile_frame]
start_time=-320
[frame]
image="units/quenoth/shaman.png:450"
sound=petrified.ogg
[/frame]
[/attack_anim]
[attack_anim]
[filter_attack]
name=thorns
[/filter_attack]
missile_start_time=-200
[missile_frame]
duration=200
image="projectiles/thorns.png"
image_diagonal="projectiles/thorns-ne.png"
[/missile_frame]
start_time=-300
[frame]
image="units/quenoth/shaman.png:500"
halo="halo/elven/nature-halo[1~8].png"
[/frame]
{SOUND:HIT_AND_MISS magic-thorns-[1,2].ogg magic-thorns-miss-[1,2].ogg -100}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,81 @@
#textdomain wesnoth-utbs
[unit_type]
id=Tauroch Stalwart
name= _ "Tauroch Stalwart"
image=units/quenoth/stalwart.png
image_icon="units/quenoth/stalwart.png~CROP(0,0,72,72)"
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
hitpoints=50
movement_type=quenoth_beast
#mostly like a foot Elf, but they are bad at defending in villages
[defense]
village=60
[/defense]
movement=5
experience=75
level=2
alignment=lawful
advances_to=Tauroch Protector
cost=18
usage=mixed fighter
description= _ "It is difficult enough to dislodge a stubborn wild tauroch. When one has made common cause with a skilled javelineer on its back, however, it is wiser to seek another path."+{SPECIAL_NOTES}+{SPECIAL_NOTES_STEADFAST}
die_sound=horse-die.ogg
[abilities]
{ABILITY_STEADFAST}
[/abilities]
[attack]
name=trample
description= _"trample"
type=impact
range=melee
damage=12
number=2
icon=attacks/slam-drake.png
[/attack]
[attack]
name=javelin
description= _"javelin"
type=pierce
range=ranged
damage=10
number=3
icon=attacks/javelin-human.png
[/attack]
{DEFENSE_ANIM "units/quenoth/stalwart.png" "units/quenoth/stalwart.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=trample
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=100
image="units/quenoth/stalwart.png"
[/frame]
[frame]
duration=350
image="units/quenoth/stalwart.png"
sound=club.ogg
[/frame]
{SOUND:HIT squishy-hit.wav -150}
[/attack_anim]
[attack_anim]
[filter_attack]
name=javelin
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image="projectiles/spear-n.png"
image_diagonal="projectiles/spear-ne.png"
[/missile_frame]
start_time=-300
[frame]
image="units/quenoth/stalwart.png:450"
sound={SOUND_LIST:THROW}
[/frame]
{SOUND:HIT spear.ogg -100}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,84 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Sun Shyde
name= _ "female^Quenoth Sun Shyde"
race=elf
gender=female
image=units/quenoth/sun-shyde.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=59
movement_type=quenoth_float
movement=6
experience=150
level=3
alignment=lawful
advances_to=null
cost=34
usage=healer
[abilities]
{UTBS_ABILITY_HEALS}
{ABILITY_ILLUMINATES}
[/abilities]
description= _ "Stepping beyond what may have once been thought of as the boundaries of the faerie world, these shydes have transformed into beings of light and fire. Not having spent centuries exploring and perfecting their abilities as their ancestors did, it is unknown what may yet be achieved by elvenkind in the new world."+{SPECIAL_NOTES}+{SPECIAL_NOTES_UTBS_HEALS}+{SPECIAL_NOTES_MAGICAL}
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
[attack]
name=touch
description= _"touch"
type=fire
range=melee
damage=9
number=3
icon=attacks/touch-faerie.png
[/attack]
[attack]
name=faerie fire
description= _"faerie fire"
type=arcane
range=ranged
damage=11
number=4
icon=attacks/faerie-fire.png
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/sun-shyde.png" "units/quenoth/sun-shyde.png" {SOUND_LIST:ELF_FEMALE_HIT} }
[healing_anim]
start_time=-250
[frame]
image="units/quenoth/sun-shyde.png:50"
[/frame]
[frame]
image="units/quenoth/sun-shyde.png:350"
halo=halo/elven/shaman-heal-halo-[1~7].png
[/frame]
[frame]
image="units/quenoth/sun-shyde.png:50"
[/frame]
[/healing_anim]
[attack_anim]
[filter_attack]
name=touch
[/filter_attack]
start_time=-250
[frame]
image="units/quenoth/sun-shyde.png:400"
[/frame]
{SOUND:HIT_AND_MISS flame-big.ogg flame-big-miss.ogg -250}
[/attack_anim]
[attack_anim]
[filter_attack]
name=faerie fire
[/filter_attack]
start_time=-350
{MISSILE_FRAME_FAERIE_FIRE}
[frame]
image="units/quenoth/sun-shyde.png"
duration=500
halo=halo/elven/faerie-fire-halo[1~7].png
halo_x,halo_y=14,0
[/frame]
{SOUND:HIT_AND_MISS magic-faeriefire.ogg magic-faeriefire-miss.ogg -350}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,83 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Sun Singer
name= _ "female^Quenoth Sun Singer"
race=elf
gender=female
image=units/quenoth/sun-singer.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=50
movement_type=quenoth_float
movement=5
experience=80
level=2
alignment=lawful
advances_to=Quenoth Sun Shyde
cost=34
usage=healer
[abilities]
{UTBS_ABILITY_HEALS}
[/abilities]
description= _ "Elves may be slower to adapt than many other races, but when they do, the results can be surprising. Where the elves of old may have sang the song of the woodlands, these elves have found their spiritual home in the light of the twin suns."+{SPECIAL_NOTES}+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_UTBS_CURES}
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
[attack]
name=touch
description= _"touch"
type=fire
range=melee
damage=9
number=2
icon=attacks/touch-faerie.png
[/attack]
[attack]
name=faerie fire
description= _"faerie fire"
type=arcane
range=ranged
damage=10
number=3
icon=attacks/faerie-fire.png
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/sun-singer.png" "units/quenoth/sun-singer.png" {SOUND_LIST:ELF_FEMALE_HIT} }
[healing_anim]
start_time=-250
[frame]
image="units/quenoth/sun-singer.png:50"
[/frame]
[frame]
image="units/quenoth/sun-singer.png:350"
halo=halo/elven/shaman-heal-halo-[1~7].png
[/frame]
[frame]
image="units/quenoth/sun-singer.png:50"
[/frame]
[/healing_anim]
[attack_anim]
[filter_attack]
name=touch
[/filter_attack]
start_time=-250
[frame]
image="units/quenoth/sun-singer.png:400"
[/frame]
{SOUND:HIT_AND_MISS flame-big.ogg flame-big-miss.ogg -250}
[/attack_anim]
[attack_anim]
[filter_attack]
name=faerie fire
[/filter_attack]
start_time=-350
{MISSILE_FRAME_FAERIE_FIRE}
[frame]
image="units/quenoth/sun-singer.png"
duration=500
halo=halo/elven/faerie-fire-halo[1~7].png
halo_x,halo_y=14,0
[/frame]
{SOUND:HIT_AND_MISS magic-faeriefire.ogg magic-faeriefire-miss.ogg -350}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,84 @@
#textdomain wesnoth-utbs
[unit_type]
id=Tauroch Vanguard
name= _ "Tauroch Vanguard"
image=units/quenoth/vanguard.png
image_icon="units/quenoth/vanguard.png~CROP(0,0,72,72)"
{MAGENTA_IS_THE_TEAM_COLOR}
race=elf
hitpoints=50
movement_type=quenoth_beast
#mostly like a foot Elf, but they are bad at defending in villages
[defense]
village=60
[/defense]
movement=5
experience=80
level=2
alignment=lawful
advances_to=Tauroch Flagbearer
cost=18
usage=mixed fighter
description= _ "The massive and fearless taurochs are often employed not only to hold ground, but also to lead a charge to break enemy formations. Shielding and inspiring infantry behind them, these commanders can survive the thick of battle better than those on foot or on more slender mounts."+{SPECIAL_NOTES}+{SPECIAL_NOTES_LEADERSHIP}+{SPECIAL_NOTES_SHOCK}
die_sound=horse-die.ogg
[abilities]
{ABILITY_LEADERSHIP_LEVEL_2}
[/abilities]
[attack]
name=ram
description= _"ram"
type=impact
range=melee
damage=10
number=3
icon=attacks/ram.png
[specials]
{WEAPON_SPECIAL_SHOCK}
[/specials]
[/attack]
[attack]
name=javelin
description= _"javelin"
type=pierce
range=ranged
damage=8
number=3
icon=attacks/javelin-human.png
[/attack]
{DEFENSE_ANIM "units/quenoth/vanguard.png" "units/quenoth/vanguard.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=ram
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=50
image="units/quenoth/vanguard.png"
[/frame]
[frame]
duration=400
image="units/quenoth/vanguard.png"
sound=tail.ogg
[/frame]
{SOUND:HIT mace.ogg -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=javelin
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image="projectiles/spear-n.png"
image_diagonal="projectiles/spear-ne.png"
[/missile_frame]
start_time=-300
[frame]
image="units/quenoth/vanguard.png:450"
sound={SOUND_LIST:THROW}
[/frame]
{SOUND:HIT spear.ogg -100}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,48 @@
#textdomain wesnoth-utbs
[unit_type]
id=Quenoth Warrior
name= _ "Quenoth Warrior"
race=elf
image=units/quenoth/warrior.png
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=48
movement_type=quenoth_foot
movement=5
experience=80
level=2
alignment=lawful
advances_to=Quenoth Champion
cost=15
usage=fighter
description= _ ""+{SPECIAL_NOTES}+{SPECIAL_NOTES_FORMATION}+{SPECIAL_NOTES_FIRSTSTRIKE}
die_sound={SOUND_LIST:ELF_HIT}
[abilities]
{ABILITY_FORMATION}
[/abilities]
[attack]
name=spear
description= _"spear"
type=pierce
range=melee
damage=11
number=3
icon=attacks/spear.png
[specials]
{WEAPON_SPECIAL_FIRSTSTRIKE}
[/specials]
[/attack]
{DEFENSE_ANIM "units/quenoth/warrior.png" "units/quenoth/warrior.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=spear
[/filter_attack]
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
start_time=-300
[frame]
duration=450
image="units/quenoth/warrior.png"
[/frame]
{SOUND:HIT_AND_MISS spear.ogg spear-miss.ogg -100}
[/attack_anim]
[/unit_type]

View file

@ -0,0 +1,547 @@
#textdomain wesnoth-utbs
#define HEAL_EFFECTS
[effect]
apply_to=hitpoints
heal_full=yes
[/effect]
[effect]
apply_to=status
remove=poisoned
[/effect]
[effect]
apply_to=status
remove=slowed
[/effect]
[effect]
apply_to=status
remove=dazed
[/effect]
#enddef
#define XP_INCREASE_EFFECT
[effect]
apply_to=max_experience
increase=20%
[/effect]
#enddef
#define QUENOTH_YOUTH_ADVANCEMENTS EXTRA_EFFECTS
[advancement]
id=warrior_1
description= _ "Warrior"
image=attacks/sword-elven.png
[effect]
[filter]
type=Quenoth Youth
[/filter]
apply_to=type
name=Quenoth Youth 2
[/effect]
[effect]
[filter]
type=Quenoth Youth 2
[/filter]
apply_to=type
name=Quenoth Youth 3
[/effect]
{HEAL_EFFECTS}
{EXTRA_EFFECTS}
[effect]
apply_to=attack
name=sword
increase_damage=2
[/effect]
[effect]
apply_to=attack
name=bow
increase_damage=2
increase_attacks=1
[/effect]
[/advancement]
[advancement]
id=hunter_1
description= _ "Hunter"
image=attacks/bolas.png
[effect]
[filter]
type=Quenoth Youth
[/filter]
apply_to=type
name=Quenoth Youth 2
[/effect]
[effect]
[filter]
type=Quenoth Youth 2
[/filter]
apply_to=type
name=Quenoth Youth 3
[/effect]
{HEAL_EFFECTS}
{EXTRA_EFFECTS}
[effect]
apply_to=new_attack
name=bolas
description= _"bolas"
type=impact
range=ranged
damage=10
number=2
icon=attacks/bolas.png
[specials]
{WEAPON_SPECIAL_SLOW}
[/specials]
[/effect]
[effect]
apply_to=movement
increase=1
[/effect]
[/advancement]
[advancement]
id=leader_1
description= _ "Leader"
image=attacks/leader.png
[effect]
[filter]
type=Quenoth Youth
[/filter]
apply_to=type
name=Quenoth Youth 2
[/effect]
[effect]
[filter]
type=Quenoth Youth 2
[/filter]
apply_to=type
name=Quenoth Youth 3
[/effect]
{HEAL_EFFECTS}
{EXTRA_EFFECTS}
[effect]
apply_to=attack
name=sword
increase_damage=1
[/effect]
[effect]
apply_to=attack
name=bow
increase_damage=1
[/effect]
[effect]
apply_to=new_ability
[abilities]
{ABILITY_LEADERSHIP}
[/abilities]
[/effect]
[/advancement]
[advancement]
id=warrior_2_1
require_amla=warrior_1
description= _ "Warrior (choose only one): specialize in melee combat"
image=attacks/sword-elven.png
exclude_amla=warrior_2_2
[effect]
[filter]
type=Quenoth Youth 2
[/filter]
apply_to=type
name=Quenoth Youth 3
[/effect]
{HEAL_EFFECTS}
{EXTRA_EFFECTS}
[effect]
apply_to=attack
name=sword
increase_damage=2
increase_attacks=1
[/effect]
[/advancement]
[advancement]
id=warrior_2_2
require_amla=warrior_1
description= _ "Warrior (choose only one): specialize in archery"
image=attacks/sword-elven.png
exclude_amla=warrior_2_1
[effect]
[filter]
type=Quenoth Youth 2
[/filter]
apply_to=type
name=Quenoth Youth 3
[/effect]
{HEAL_EFFECTS}
{EXTRA_EFFECTS}
[effect]
apply_to=attack
name=bow
increase_damage=3
[set_specials]
{WEAPON_SPECIAL_MARKSMAN}
[/set_specials]
[/effect]
[/advancement]
[advancement]
id=hunter_2_1
require_amla=hunter_1
description= _ "Hunter (choose only one): specialize in surprise attacks"
image=attacks/bolas.png
exclude_amla=hunter_2_2
[effect]
[filter]
type=Quenoth Youth 2
[/filter]
apply_to=type
name=Quenoth Youth 3
[/effect]
{HEAL_EFFECTS}
{EXTRA_EFFECTS}
[effect]
apply_to=attack
name=sword
[set_specials]
{WEAPON_SPECIAL_BACKSTAB}
[/set_specials]
[/effect]
[effect]
apply_to=attack
name=bolas
increase_damage=3
increase_attacks=1
[/effect]
[/advancement]
[advancement]
id=hunter_2_2
require_amla=hunter_1
description= _ "Hunter (choose only one): specialize in skirmishing"
image=attacks/bolas.png
exclude_amla=hunter_2_1
[effect]
[filter]
type=Quenoth Youth 2
[/filter]
apply_to=type
name=Quenoth Youth 3
[/effect]
{HEAL_EFFECTS}
{EXTRA_EFFECTS}
[effect]
apply_to=new_ability
[abilities]
{ABILITY_SKIRMISHER}
[/abilities]
[/effect]
[effect]
apply_to=attack
name=bolas
increase_damage=3
increase_attacks=1
[/effect]
[/advancement]
[advancement]
id=leader_2_1
require_amla=leader_1
description= _ "Leader (choose only one): specialize in supporting allies"
image=attacks/leader.png
exclude_amla=leader_2_2
[effect]
[filter]
type=Quenoth Youth 2
[/filter]
apply_to=type
name=Quenoth Youth 3
[/effect]
{HEAL_EFFECTS}
{EXTRA_EFFECTS}
[effect]
apply_to=new_ability
[abilities]
{ABILITY_SUPPORT}
[/abilities]
[/effect]
[effect]
apply_to=attack
name=sword
increase_damage=1
[/effect]
[effect]
apply_to=attack
name=bow
increase_damage=1
[/effect]
[/advancement]
[advancement]
id=leader_2_2
require_amla=leader_1
description= _ "Leader (choose only one): specialize in distracting enemies"
image=attacks/leader.png
exclude_amla=leader_2_1
[effect]
[filter]
type=Quenoth Youth 2
[/filter]
apply_to=type
name=Quenoth Youth 3
[/effect]
{HEAL_EFFECTS}
{EXTRA_EFFECTS}
[effect]
apply_to=new_ability
[abilities]
{ABILITY_DISTRACT}
[/abilities]
[/effect]
[effect]
apply_to=attack
name=sword
increase_damage=1
[/effect]
[effect]
apply_to=attack
name=bow
increase_damage=1
[/effect]
[/advancement]
#enddef
#define KALEH_ANIMATIONS
{DEFENSE_ANIM "units/quenoth/kaleh.png" "units/quenoth/kaleh.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=bow
[/filter_attack]
missile_start_time=-100
[missile_frame]
duration=100
image=projectiles/missile-n.png
image_diagonal=projectiles/missile-ne.png
[/missile_frame]
start_time=-380
[frame]
image=units/quenoth/kaleh.png:470
[/frame]
{SOUND:HIT_AND_MISS bow.ogg bow-miss.ogg -380}
[/attack_anim]
[attack_anim]
[filter_attack]
name=sword
[/filter_attack]
start_time=-300
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
[frame]
image=units/quenoth/kaleh.png:500
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:SWORD_SWISH} {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=bolas
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image=projectiles/bolas-n.png
image_diagonal=projectiles/bolas-ne.png
[/missile_frame]
start_time=-300
[frame]
image=units/quenoth/kaleh.png:400
[/frame]
{SOUND:HIT_AND_MISS hatchet.wav hatchet-miss.wav -300}
[/attack_anim]
#enddef
#define NYM_ANIMATIONS
{DEFENSE_ANIM "units/quenoth/nym.png" "units/quenoth/nym.png" {SOUND_LIST:ELF_HIT}}
[attack_anim]
[filter_attack]
name=bow
[/filter_attack]
missile_start_time=-100
[missile_frame]
duration=100
image=projectiles/missile-n.png
image_diagonal=projectiles/missile-ne.png
[/missile_frame]
start_time=-380
[frame]
image=units/quenoth/nym.png:470
[/frame]
{SOUND:HIT_AND_MISS bow.ogg bow-miss.ogg -380}
[/attack_anim]
[attack_anim]
[filter_attack]
name=sword
[/filter_attack]
start_time=-300
offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
[frame]
image=units/quenoth/nym.png:500
[/frame]
{SOUND:HIT_AND_MISS {SOUND_LIST:SWORD_SWISH} {SOUND_LIST:MISS} -100}
[/attack_anim]
[attack_anim]
[filter_attack]
name=bolas
[/filter_attack]
missile_start_time=-150
[missile_frame]
duration=150
image=projectiles/bolas-n.png
image_diagonal=projectiles/bolas-ne.png
[/missile_frame]
start_time=-300
[frame]
image=units/quenoth/nym.png:400
[/frame]
{SOUND:HIT_AND_MISS hatchet.wav hatchet-miss.wav -300}
[/attack_anim]
#enddef
[unit_type]
id=Quenoth Youth
race=elf
gender=male,female
name= _ "Quenoth Youth"
image=units/quenoth/kaleh.png
movement_type=quenoth_foot
movement=5
hitpoints=32
experience=40
level=1
profile=portraits/kaleh.png
alignment=lawful
advances_to=null
cost=14
usage=fighter
description= _ "Kaleh is still a young Elf of the Quenoth, on the verge of adulthood. He trained with his father with the bow and sword, joining him in lighter expeditions and raids. When his father was lost, Kaleh became more serious and solemn than is usual for those who walk under the two suns. He turned inwards for answers and guidance, not knowing how much his people would look towards him for guidance in times to come."
die_sound={SOUND_LIST:ELF_HIT}
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=5
number=4
icon=attacks/sword-elven.png
[/attack]
[attack]
name=bow
description= _"bow"
type=pierce
range=ranged
damage=4
number=3
icon=attacks/bow-elven.png
[/attack]
{KALEH_ANIMATIONS}
[female]
gender=female
name= _ "female^Quenoth Youth"
image="units/quenoth/nym.png"
profile=portraits/nym.png
description= _ "Nym is Kalehs childhood friend, a young, rebellious lady with quick wits and strong will. Her high spirits are a great boon in dark times."
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
{NYM_ANIMATIONS}
[/female]
{QUENOTH_YOUTH_ADVANCEMENTS ()}
[/unit_type]
[unit_type]
id=Quenoth Youth 2
race=elf
gender=male,female
name= _ "Quenoth Youth"
image=units/quenoth/kaleh.png
movement_type=quenoth_foot
movement=5
hitpoints=40
experience=90
level=2
profile=portraits/kaleh.png
alignment=lawful
advances_to=null
cost=14
usage=fighter
description= _ "Kaleh is still a young Elf of the Quenoth, on the verge of adulthood. He trained with his father with the bow and sword, joining him in lighter expeditions and raids. When his father was lost, Kaleh became more serious and solemn than is usual for those who walk under the two suns. He turned inwards for answers and guidance, not knowing how much his people would look towards him for guidance in times to come."
die_sound={SOUND_LIST:ELF_HIT}
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=5
number=4
icon=attacks/sword-elven.png
[/attack]
[attack]
name=bow
description= _"bow"
type=pierce
range=ranged
damage=4
number=3
icon=attacks/bow-elven.png
[/attack]
{KALEH_ANIMATIONS}
[female]
gender=female
name= _ "female^Quenoth Youth"
image="units/quenoth/nym.png"
profile=portraits/nym.png
description= _ "Nym is Kalehs childhood friend, a young, rebellious lady with quick wits and strong will. Her high spirits are a great boon in dark times."
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
{NYM_ANIMATIONS}
[/female]
{QUENOTH_YOUTH_ADVANCEMENTS ()}
[/unit_type]
[unit_type]
id=Quenoth Youth 3
race=elf
gender=male,female
name= _ "Quenoth Youth"
image=units/quenoth/kaleh.png
movement_type=quenoth_foot
movement=5
hitpoints=52
experience=150
level=3
profile=portraits/kaleh.png
alignment=lawful
advances_to=null
cost=14
usage=fighter
description= _ "Kaleh is still a young Elf of the Quenoth, on the verge of adulthood. He trained with his father with the bow and sword, joining him in lighter expeditions and raids. When his father was lost, Kaleh became more serious and solemn than is usual for those who walk under the two suns. He turned inwards for answers and guidance, not knowing how much his people would look towards him for guidance in times to come."
die_sound={SOUND_LIST:ELF_HIT}
[attack]
name=sword
description= _"sword"
type=blade
range=melee
damage=5
number=4
icon=attacks/sword-elven.png
[/attack]
[attack]
name=bow
description= _"bow"
type=pierce
range=ranged
damage=4
number=3
icon=attacks/bow-elven.png
[/attack]
{KALEH_ANIMATIONS}
[female]
gender=female
name= _ "female^Quenoth Youth"
image="units/quenoth/nym.png"
profile=portraits/nym.png
description= _ "Nym is Kalehs childhood friend, a young, rebellious lady with quick wits and strong will. Her high spirits are a great boon in dark times."
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
{NYM_ANIMATIONS}
[/female]
{QUENOTH_YOUTH_ADVANCEMENTS {XP_INCREASE_EFFECT}}
{AMLA_DEFAULT}
[/unit_type]

View file

@ -107,3 +107,173 @@
[/defense]
{WOODLAND_RESISTANCE}
[/movetype]
#desert elves move fast across the sands, but are not used to forests
#they are also a bit faster in caves
[movetype]
name=quenoth_foot
[movement_costs]
shallow_water=3
reef=2
swamp_water=2
flat=1
sand=1
forest=2
hills=2
mountains=3
village=1
castle=1
cave=2
frozen=3
fungus=2
[/movement_costs]
[vision_costs]
deep_water=3
unwalkable=3
[/vision_costs]
[defense]
shallow_water=80
reef=70
swamp_water=70
flat=60
sand=40
forest=50
hills=50
mountains=40
village=40
castle=40
cave=70
frozen=70
fungus=50
[/defense]
{WOODLAND_RESISTANCE}
[/movetype]
[movetype]
name=quenoth_beast
[movement_costs]
shallow_water=2
reef=2
swamp_water=2
flat=1
sand=1
forest=2
hills=2
mountains=3
village=1
castle=1
cave=2
frozen=2
fungus=2
[/movement_costs]
[vision_costs]
deep_water=3
unwalkable=3
[/vision_costs]
[defense]
shallow_water=70
reef=70
swamp_water=70
flat=50
sand=50
forest=60
hills=60
mountains=60
village=70
castle=60
cave=70
frozen=60
fungus=70
[/defense]
{WOODLAND_RESISTANCE}
[+resistance]
blade=80
impact=80
cold=80
[/resistance]
[/movetype]
[movetype]
name=quenoth_horse
[movement_costs]
shallow_water=3
reef=2
swamp_water=2
flat=1
sand=1
forest=2
hills=2
mountains=3
village=1
castle=1
cave=2
frozen=3
fungus=2
[/movement_costs]
[vision_costs]
deep_water=3
unwalkable=3
[/vision_costs]
[defense]
shallow_water=80
reef=70
swamp_water=70
flat=50
sand=50
forest=60
hills=50
mountains=60
village=60
castle=60
cave=70
frozen=70
fungus=70
[/defense]
{WOODLAND_RESISTANCE}
[+resistance]
pierce=120
[/resistance]
[/movetype]
[movetype]
name=quenoth_float
flies=true
[movement_costs]
deep_water={UNREACHABLE}
shallow_water=1
reef=1
swamp_water=1
flat=1
sand=1
forest=2
hills=1
mountains=2
village=1
castle=1
cave=1
unwalkable=2
frozen=2
fungus=2
[/movement_costs]
[vision_costs]
deep_water=3
[/vision_costs]
[defense]
deep_water=70
shallow_water=60
reef=50
swamp_water=60
flat=50
sand=40
forest=50
hills=50
mountains=40
village=40
castle=40
cave=70
frozen=60
fungus=50
unwalkable=70
[/defense]
{WOODLAND_RESISTANCE}
[/movetype]

View file

@ -76,3 +76,663 @@ _" This unit is capable of healing those around it, slowing dehydration, and cur
description= _ "At the start of every turn, this unit redistributes its experience points to all the units of the same side adjacent to it. If no suitable unit is adjacent, its experience just goes back to zero."
[/dummy]
#enddef
#define WEAPON_SPECIAL_SHOCK
# Canned definition of the Shock ability to be included in a
# [specials] clause.
[attacks]
id=shock
name= _ "shock"
name_inactive= _ "shock"
description= _ "When this attack is used on offense, the opponent will retaliate with one less strike than normally, to a minimum of one strike."
description_inactive= _ "When this attack is used on offense, the opponent will retaliate with one less strike than normally, to a minimum of one strike."
sub=1
active_on=offense
apply_to=opponent
[filter_base_value]
greater_than=1
[/filter_base_value]
[/attacks]
#enddef
#define ABILITY_FORMATION
[dummy]
id=formation
name= _ "formation"
description= _ "This unit gains a +10% bonus to defense when another unit with the same ability is adjacent to it and the enemy. However, this cannot raise the unit's defense above 70%."
[/dummy]
#enddef
#define ABILITY_DISENGAGE
[dummy]
id=disengage
name= _ "disengage"
description= _ "If this unit doesn't move before attacking, it will retain its movement points after the attack."
[/dummy]
#enddef
#define WEAPON_SPECIAL_DAZE
[dummy]
id=daze
name= _ "daze"
description= _ "When hit with this attack, an enemy suffers a 10% penalty both to their defense and chance to hit for one turn, except for magical attacks."
[/dummy]
#enddef
#define ABILITY_DISTRACT
[skirmisher]
id=distract
name= _ "distract"
description= _ "This unit negates enemy Zones of Control around itself for allied units (but not for itself)."
affect_self=no
affect_allies=yes
[affect_adjacent]
[/affect_adjacent]
[/skirmisher]
#enddef
#define ABILITY_SUPPORT
[dummy]
id=support
name= _ "support"
description= _ "At the start of each turn, no upkeep costs are incurred by adjacent friendly units."
[/dummy]
#enddef
#define SPECIAL_NOTES_SHOCK
_" This units melee attack can overwhelm the defenses of enemies, preventing them from retaliating as effectively."#enddef
#define SPECIAL_NOTES_FORMATION
_" Groups of units of this type are able to shield each other in combat."#enddef
#define SPECIAL_NOTES_DISENGAGE
_" This unit can move either before or after attacking."#enddef
#define SPECIAL_NOTES_DAZE
_" This unit can daze its enemies, reducing their accuracy and defense until they end a turn."#enddef
#define SPECIAL_NOTES_DISTRACT
_"This unit is capable of distracting opponents, allowing allied units to trespass their Zones of Control and move unhindered around them."#enddef
#define ABILITY_DISENGAGE_EVENTS
[event]
name=attack end
first_time_only=no
[filter]
ability=disengage
[not]
[filter_wml]
moves=$this_unit.max_moves
[/filter_wml]
[/not]
[/filter]
{VARIABLE unit.moves 0}
[unstore_unit]
variable=unit
find_vacant=no
[/unstore_unit]
[/event]
#enddef
#define WEAPON_SPECIAL_DAZE_EVENTS
[event]
id=weapon_special_daze_event_1
name=unit placed
first_time_only=no
[filter]
[not]
[filter_wml]
[attack]
[specials]
[chance_to_hit]
id=daze_ally
[/chance_to_hit]
[/specials]
[/attack]
[/filter_wml]
[/not]
[/filter]
[object]
silent=yes
[filter]
x,y=$x1,$y1
[/filter]
[effect]
apply_to=attack
[set_specials]
mode=append
[chance_to_hit]
id=daze_ally
name=""
description=""
add=10
[filter_opponent]
[filter_wml]
[status]
dazed=yes
[/status]
[/filter_wml]
[/filter_opponent]
[/chance_to_hit]
[/set_specials]
[/effect]
[/object]
[/event]
[event]
id=weapon_special_daze_event_2
name=attacker hits
first_time_only=no
[filter_attack]
special=daze
[/filter_attack]
[filter_second]
[not]
[filter_wml]
[status]
dazed=yes
[/status]
[/filter_wml]
[/not]
[/filter_second]
{VARIABLE second_unit.status.dazed yes}
[unstore_unit]
variable=second_unit
find_vacant=no
text= _ "dazed"
red,green,blue=196,196,128
[/unstore_unit]
[object]
silent=yes
[filter]
x,y=$x2,$y2
[/filter]
[effect]
apply_to=attack
[set_specials]
mode=append
[chance_to_hit]
id=daze_enemy
name=""
description=""
sub=10
[filter_self]
[filter_wml]
[status]
dazed=yes
[/status]
[/filter_wml]
[/filter_self]
[/chance_to_hit]
[/set_specials]
[/effect]
[/object]
[/event]
[event]
id=weapon_special_daze_event_3
name=side turn
first_time_only=no
[event]
name=side turn
delayed_variable_substitution=no
#{DEBUG_MSG "side $|side_number turn started, clearing daze from side $side_number units"}
[modify_unit]
[filter]
side=$side_number
[filter_wml]
[status]
dazed=yes
[/status]
[/filter_wml]
[/filter]
[status]
dazed=no
[/status]
[/modify_unit]
[/event]
[/event]
#enddef
#define ABILITY_FORMATION_EVENTS
[event]
id=ability_formation_event
name=unit placed
first_time_only=no
[filter]
[not]
side=1
[/not]
[not]
[filter_wml]
[attack]
[specials]
[chance_to_hit]
id=formation_enemy_1
[/chance_to_hit]
[/specials]
[/attack]
[/filter_wml]
[/not]
[/filter]
[object]
silent=yes
[filter]
id=$unit.id
[/filter]
[effect]
apply_to=attack
[set_specials]
mode=append
[chance_to_hit]
id=formation_enemy_1
name=""
description=""
sub=10
[filter_base_value]
greater_than=30
[/filter_base_value]
[filter_opponent]
ability=formation
[filter_adjacent]
ability=formation
is_enemy=no
count=1
[filter_adjacent]
id=$unit.id
[/filter_adjacent]
[/filter_adjacent]
[/filter_opponent]
[/chance_to_hit]
[chance_to_hit]
id=formation_enemy_2
name=""
description=""
sub=20
[filter_base_value]
greater_than=40
[/filter_base_value]
[filter_opponent]
ability=formation
[filter_adjacent]
ability=formation
is_enemy=no
count=2
[filter_adjacent]
id=$unit.id
[/filter_adjacent]
[/filter_adjacent]
[/filter_opponent]
[/chance_to_hit]
[/set_specials]
[/effect]
[/object]
[/event]
#enddef
#define ABILITY_SUPPORT_EVENTS
[event]
name=unit placed,prerecruit,prerecall
first_time_only=no
[filter]
side=1
upkeep=full
[filter_adjacent]
ability=support
[/filter_adjacent]
[/filter]
{VARIABLE unit.variables.original_upkeep $unit.upkeep}
{VARIABLE unit.variables.upkeep_supported yes}
{VARIABLE unit.upkeep free}
[unstore_unit]
variable=unit
find_vacant=no
fire_event=no
[/unstore_unit]
[/event]
[event]
name=set_support_upkeep
first_time_only=no
{FOREACH update_support_units i}
[if]
[have_unit]
x,y=$update_support_units[$i].x,$update_support_units[$i].y
upkeep=full
[filter_adjacent]
ability=support
[/filter_adjacent]
[/have_unit]
[then]
{VARIABLE update_support_units[$i].variables.original_upkeep $update_support_units[$i].upkeep}
{VARIABLE update_support_units[$i].variables.upkeep_supported yes}
{VARIABLE update_support_units[$i].upkeep free}
[/then]
[else]
[if]
[have_unit]
x,y=$update_support_units[$i].x,$update_support_units[$i].y
upkeep=free
[not]
[filter_adjacent]
ability=support
[/filter_adjacent]
[/not]
[/have_unit]
[then]
{VARIABLE update_support_units[$i].upkeep $update_support_units[$i].variables.original_upkeep}
{VARIABLE update_support_units[$i].variables.upkeep_supported no}
[/then]
[/if]
[/else]
[/if]
[unstore_unit]
variable=update_support_units[$i]
find_vacant=no
fire_event=no
[/unstore_unit]
{NEXT i}
[/event]
[event]
name=moveto
first_time_only=no
[filter]
side=1
ability=support
[/filter]
[store_unit]
[filter]
upkeep=full
[filter_adjacent]
x,y=$x1,$y1
[/filter_adjacent]
[or]
upkeep=free
[filter_wml]
[variables]
upkeep_supported=yes
[/variables]
[/filter_wml]
[filter_location]
[filter_adjacent_location]
x,y=$x2,$y2
[/filter_adjacent_location]
[/filter_location]
[/or]
[/filter]
kill=no
variable=update_support_units
[/store_unit]
[fire_event]
name=set_support_upkeep
[/fire_event]
{CLEAR_VARIABLE update_support_units}
[on_undo]
[store_unit]
[filter]
upkeep=full
[filter_location]
[filter_adjacent_location]
x,y=$x2,$y2
[/filter_adjacent_location]
[/filter_location]
[or]
upkeep=free
[filter_wml]
[variables]
upkeep_supported=yes
[/variables]
[/filter_wml]
[filter_location]
[filter_adjacent_location]
x,y=$x1,$y1
[/filter_adjacent_location]
[/filter_location]
[/or]
[/filter]
kill=no
variable=update_support_units
[/store_unit]
[fire_event]
name=set_support_upkeep
[/fire_event]
{CLEAR_VARIABLE update_support_units}
[/on_undo]
[on_redo]
[store_unit]
[filter]
upkeep=full
[filter_location]
[filter_adjacent_location]
x,y=$x1,$y1
[/filter_adjacent_location]
[/filter_location]
[or]
upkeep=free
[filter_wml]
[variables]
upkeep_supported=yes
[/variables]
[/filter_wml]
[filter_location]
[filter_adjacent_location]
x,y=$x2,$y2
[/filter_adjacent_location]
[/filter_location]
[/or]
[/filter]
kill=no
variable=update_support_units
[/store_unit]
[fire_event]
name=set_support_upkeep
[/fire_event]
{CLEAR_VARIABLE update_support_units}
[/on_redo]
[allow_undo]
[/allow_undo]
[/event]
[event]
name=moveto
first_time_only=no
[filter]
side=1
[not]
ability=support
[/not]
[and]
upkeep=full
[filter_adjacent]
side=1
ability=support
[/filter_adjacent]
[or]
upkeep=free
[not]
[filter_adjacent]
side=1
ability=support
[/filter_adjacent]
[/not]
[filter_wml]
[variables]
upkeep_supported=yes
[/variables]
[/filter_wml]
[/or]
[/and]
[/filter]
[store_unit]
[filter]
x,y=$x1,$y1
[/filter]
kill=no
variable=update_support_units
[/store_unit]
[fire_event]
name=set_support_upkeep
[/fire_event]
{CLEAR_VARIABLE update_support_units}
[on_undo]
[store_unit]
[filter]
x,y=$x2,$y2
[/filter]
kill=no
variable=update_support_units
[/store_unit]
[fire_event]
name=set_support_upkeep
[/fire_event]
{CLEAR_VARIABLE update_support_units}
[/on_undo]
[on_redo]
[store_unit]
[filter]
x,y=$x1,$y1
[/filter]
kill=no
variable=update_support_units
[/store_unit]
[fire_event]
name=set_support_upkeep
[/fire_event]
{CLEAR_VARIABLE update_support_units}
[/on_redo]
[allow_undo]
[/allow_undo]
[/event]
[event]
name=die
first_time_only=no
[filter]
side=1
ability=support
[/filter]
[store_unit]
[filter]
upkeep=free
[filter_wml]
[variables]
upkeep_supported=yes
[/variables]
[/filter_wml]
[filter_adjacent]
x,y=$x1,$y1
[/filter_adjacent]
[/filter]
kill=no
variable=update_support_units
[/store_unit]
[kill]
x,y=$x1,$y1
fire_event=no
[/kill]
[fire_event]
name=set_support_upkeep
[/fire_event]
{CLEAR_VARIABLE update_support_units}
[/event]
#enddef

View file

@ -3,40 +3,30 @@
#define KALEH
id=Kaleh
name= _ "Kaleh"
type=Kaleh
variation=Youth
gender=male
type=Quenoth Youth
canrecruit=yes
unrenamable=yes
[modifications]
#ifndef HARD
{TRAIT_RESILIENT}
#ifdef EASY
{TRAIT_INTELLIGENT}
#endif
#endif
[/modifications]
#enddef
#define NYM
type=Nym Hunter
type=Quenoth Youth
id=Nym
name= _ "Nym"
gender=female
unrenamable=yes
random_traits=no
profile=portraits/nym.png
upkeep=loyal
[modifications]
{TRAIT_LOYAL}
#ifndef HARD
{TRAIT_RESILIENT}
#ifdef EASY
{TRAIT_QUICK}
#endif
#endif
{TRAIT_DEXTROUS}
[/modifications]
{IS_HERO}
#enddef
#define GARAK
type=Desert Marshal
type=Quenoth Champion
id=Garak
name= _ "Garak"
profile=portraits/garak.png
@ -45,11 +35,6 @@
{TRAIT_LOYAL}
{TRAIT_STRONG}
[object]
[effect]
apply_to=attack
range=ranged
increase_damage=1
[/effect]
[effect]
apply_to=new_ability
[abilities]
@ -66,14 +51,13 @@
#enddef
#define ZHUL
type=Desert Druid
type=Quenoth Shaman
id=Zhul
name= _ "Zhul"
profile=portraits/zhul.png
unrenamable=yes
[modifications]
{TRAIT_LOYAL}
{TRAIT_QUICK}
{TRAIT_INTELLIGENT}
[/modifications]
{IS_HERO}

View file

@ -3,7 +3,7 @@
# event for the teaching ability
#define ABILITY_TEACHING_EVENT
[event]
name=turn refresh
name=turn refresh,victory
id=garak_teaching
first_time_only=no

View file

@ -63,6 +63,20 @@
[/then]
[/if]
#ifdef UTBSNEW
#{DEBUG_MSG "disallowing: Quenoth Fighter$num,Tauroch Rider$num,Quenoth Scout$num,Quenoth Mystic$num"}
[disallow_recruit]
type=Quenoth Fighter$num,Tauroch Rider$num,Quenoth Scout$num,Quenoth Mystic$num
side=1
[/disallow_recruit]
{VARIABLE num $recruit_cost_extra}
#{DEBUG_MSG "allowing: Quenoth Fighter$num,Tauroch Rider$num,Quenoth Scout$num,Quenoth Mystic$num"}
[allow_recruit]
type=Quenoth Fighter$num,Tauroch Rider$num,Quenoth Scout$num,Quenoth Mystic$num
side=1
[/allow_recruit]
#else
#{DEBUG_MSG "disallowing: Desert Fighter$num,Desert Archer$num,Desert Hunter$num,Desert Shaman$num,Desert Scout$num"}
[disallow_recruit]
type=Desert Fighter$num,Desert Archer$num,Desert Hunter$num,Desert Shaman$num,Desert Scout$num
@ -75,6 +89,7 @@
type=Desert Fighter$num,Desert Archer$num,Desert Hunter$num,Desert Shaman$num,Desert Scout$num
side=1
[/allow_recruit]
#endif
{CLEAR_VARIABLE num}
#enddef

View file

@ -2,9 +2,16 @@
#define STORY_THE_MORNING_AFTER
[story]
[part]
story= _ "Note: This campaign is probably not appropriate 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 objectives that change in the middle. For these reasons, we strongly suggest that you occasionally save your game mid-scenario, so you wont lose all your progress if you get stuck and have to start over."
[/part]
#ifdef UTBSNEW
[part]
# Untranslated development version notice only.
story="Note: the redesigned elvish units are still a work-in-progress."
[/part]
#else
[part]
story= _ "Note: This campaign is probably not appropriate 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 objectives that change in the middle. For these reasons, we strongly suggest that you occasionally save your game mid-scenario, so you wont lose all your progress if you get stuck and have to start over."
[/part]
#endif
[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, remember the sacrifices we made, and profit from the hard lessons we learned."

View file

@ -29,6 +29,9 @@ Version 1.13.5+dev:
* S20b ('Underground Channels'): New sub-quest added: Help the Wose.
* S22 ('Return to Wesnoth') Under certain conditions, Gryphons will appear
to assist Konrad.
* Under the Burning Suns:
* Redesign of all desert elf units (currently optional, selectable through
the difficulty menu).
* Graphics:
* New sprite for Tentacle of the Deep.