Untitled diff

Created Diff never expires
31 removals
317 lines
147 additions
426 lines
#textdomain wesnoth-tsg
#textdomain wesnoth-tsg
[scenario]
[scenario]
id=07b_Pebbles_in_the_Flood
id=07b_Pebbles_in_the_Flood


name= _ "Pebbles in the Flood"
name= _ "Pebbles in the Flood"
next_scenario=08b_The_Tides_of_War
next_scenario=08b_The_Tides_of_War


{SCENARIO_MUSIC elvish-theme.ogg}
{SCENARIO_MUSIC elvish-theme.ogg}
{EXTRA_SCENARIO_MUSIC the_king_is_dead.ogg}
{EXTRA_SCENARIO_MUSIC the_king_is_dead.ogg}
{EXTRA_SCENARIO_MUSIC nunc_dimittis.ogg}
{EXTRA_SCENARIO_MUSIC nunc_dimittis.ogg}
{EXTRA_SCENARIO_MUSIC heroes_rite.ogg}
{EXTRA_SCENARIO_MUSIC heroes_rite.ogg}


map_data="{campaigns/The_South_Guard/maps/07b_Pebbles_in_the_Flood.map}"
map_data="{campaigns/The_South_Guard/maps/07b_Pebbles_in_the_Flood.map}"


{campaigns/The_South_Guard/utils/sg_help.cfg}
{campaigns/The_South_Guard/utils/sg_help.cfg}


{DEFAULT_SCHEDULE}
{DEFAULT_SCHEDULE}


{SG_PEBBLES_IN_THE_FLOOD}
{SG_PEBBLES_IN_THE_FLOOD}
{BIGMAP_07B}
{BIGMAP_07B}


turns=-1
turns=-1
victory_when_enemies_defeated=no
victory_when_enemies_defeated=no
disallow_recall=yes
disallow_recall=yes


# The South Guard
# The South Guard


[side]
[side]
side=1
side=1
type=Horseman Commander
type=Horseman Commander
id=Deoran
id=Deoran
name= _ "Deoran"
name= _ "Deoran"
unrenamable=yes
unrenamable=yes


team_name=South_Guard
team_name=South_Guard
user_team_name=_"South Guard"
user_team_name=_"South Guard"
controller=human
controller=human
{CUSTOM_SG_FLAG}
{CUSTOM_SG_FLAG}


gold=0
gold=0
{INCOME 4 2 0}
{INCOME 4 2 0}


canrecruit=yes
canrecruit=yes
recruit=Bowman, Spearman, Cavalryman, Footpad, Thug
recruit=Bowman, Spearman, Cavalryman, Footpad, Thug
[/side]
[/side]


{STARTING_VILLAGES 1 15}
{STARTING_VILLAGES 1 15}


# The Undead Hordes
# The Undead Hordes


[side]
[side]
side=2
side=2
type=Ancient Lich
type=Ancient Lich
id="Mal M'Brin"
id="Mal M'Brin"
name= _ "Mal M’Brin"
name= _ "Mal M’Brin"
profile=portraits/mal-mbrin.png
profile=portraits/mal-mbrin.png
facing=sw
facing=sw


team_name=The_Undead_Hordes
team_name=The_Undead_Hordes
user_team_name=_"Undead"
user_team_name=_"Undead"
controller=ai
controller=ai

{GOLD 200 300 400}
# Let’s start manageably, then increase difficulty
{INCOME 50 75 100}
{GOLD 100 150 200}
income=0


canrecruit=yes
canrecruit=yes
[ai]
[ai]
recruitment_pattern=scout, fighter, fighter, archer, scout, fighter, archer
recruitment_pattern=scout, fighter, fighter, archer, scout, fighter, archer
aggression=1.0
aggression=1.0
caution=0.0
caution=0.0
[goal]
[goal]
[criteria]
[criteria]
id=Sir Gerrick
id=Sir Gerrick
[/criteria]
[/criteria]
value=10.0
value=10.0
[/goal]
[/goal]
[/ai]
[/ai]
recruit=Wraith, Shadow, Skeleton, Revenant, Draug, Bone Shooter, Blood Bat, Chocobone
recruit=Wraith, Shadow, Skeleton, Revenant, Draug, Bone Shooter, Blood Bat, Chocobone
{FLAG_VARIANT undead}
{FLAG_VARIANT undead}

[/side]
[/side]

# Make it impossible for the player to kill him, no matter how lucky.
# He’s supposed to be unreachable anyway
{FORCE_CHANCE_TO_HIT side=1 id="Mal M'Brin" 0 ()}
# # Make it impossible for the player to kill him, no matter how lucky.

# {FORCE_CHANCE_TO_HIT side=1 id="Mal M'Brin" 0 ()}
# The idea: The Undead’s income increases every turn. This will make sure that at the beginning things will be manageable enough to allow surviving long enough, but will also ensure that sooner or later the player will die.
# Also on this setting we might have some actual battle at the beginning, rather than immediate onslaught, which I think is good.
# I hope it makes sense to play well during the “preparation time” on the first few turns. Hopefully not loosing too many units in the beginning + managing to evolve a few will be what decides whether the player manages or not to survive these two or three more turns.
# I hope that on Hard a good player should be able to survive till the bloody turn 24, but only with a little luck.
# The income increasement rate should be very similar no matter the difficulty level, or else Easy will allow much longer survival, which is bad. I’ll do my job if all difficulty levels allow the player to survive for about the same time, but with lesser or greater ease.
[event]
name=side 2 turn
first_time_only=no
#ifdef EASY
{INCREASE_INCOME 2 7}
#endif
#ifdef NORMAL
{INCREASE_INCOME 2 8}
#endif
#ifdef HARD
{INCREASE_INCOME 2 9}
#endif
[/event]
[side]
[side]
side=3
side=3
type=Lich
# Just for novelty; doesn’t matter anyway
type=Death Knight
id=Mal Tera
id=Mal Tera
name= _ "Mal Tera"
name= _ "Mal Tera"


team_name=The_Undead_Hordes
team_name=The_Undead_Hordes
user_team_name=_"Undead"
user_team_name=_"Undead"
controller=ai
controller=ai


{GOLD 200 250 300}
{GOLD 50 100 150}
{INCOME 0 0 0}
income=0


canrecruit=yes
canrecruit=yes
[ai]
[ai]
recruitment_pattern=fighter
recruitment_pattern=fighter
aggression=0.95
aggression=0.95
[/ai]
[/ai]
#ifdef EASY
#ifdef EASY
recruit=Walking Corpse
recruit=Walking Corpse
#endif
#endif
#ifdef NORMAL
#ifdef NORMAL
recruit=Walking Corpse, Soulless
recruit=Walking Corpse, Soulless
#endif
#endif
#ifdef HARD
#ifdef HARD
recruit=Walking Corpse, Soulless, Ghoul
recruit=Walking Corpse, Soulless, Ghoul
#endif
#endif
{FLAG_VARIANT undead}
{FLAG_VARIANT undead}
[/side]
[/side]
# If he’s supposed to be a continued nuissance, then it’d be useful to limit the number of ghouls, or else the poison’s gonna wear the player off too soon
#ifdef HARD
[event]
name=side 3 turn 3
[modify_side]
side=3
recruit=Walking Corpse, Soulless
[/modify_side]
[/event]
#endif
[event]
name=side 3 turn
first_time_only=no
#ifdef EASY
{INCREASE_INCOME 3 2}
#endif
#ifdef NORMAL
{INCREASE_INCOME 3 3}
#endif
#ifdef HARD
{INCREASE_INCOME 3 4}
#endif
[/event]


#prestart
#prestart
[event]
[event]
name=prestart
name=prestart


[store_side]
[store_side]
side=1
side=1
variable=stored_side_1
variable=stored_side_1
[/store_side]
[/store_side]
{VARIABLE pebbles_starting_gold $stored_side_1.gold}
{VARIABLE pebbles_starting_gold $stored_side_1.gold}


# Hopefully we can keep these large differences among difficulty levels: I hope they won’t allow for much longer survival (you should get overwhelmed at about the same time, when the Undeads’ income goes off-charts), but will give you a greater tolerance for mistakes
[modify_side]
[modify_side]
side=1
side=1
{GOLD 250 200 150}
{GOLD 250 200 150}
[/modify_side]
[/modify_side]


# Sgt. Finde's Section
# Sgt. Finde's Section


{NAMED_GENERIC_UNIT 1 Sergeant 5 11 (Sgt. Finde) (_"Sgt. Finde")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 Sergeant 5 11 (Sgt. Finde) (_"Sgt. Finde")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 Spearman 4 10 (Maelvas) (_"Maelvas")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 Spearman 4 10 (Maelvas) (_"Maelvas")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 Spearman 5 10 (Orome) (_"Orome")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 Spearman 5 10 (Orome) (_"Orome")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 Peasant 6 10 (Mitche) (_"Mitche")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 Peasant 6 10 (Mitche) (_"Mitche")} {GUARDIAN}


# Lt. Illan's Section
# Lt. Illan's Section


{NAMED_GENERIC_UNIT 1 (Lieutenant) 13 12 (Lt. Illan) (_"Lt. Illan")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Lieutenant) 13 12 (Lt. Illan) (_"Lt. Illan")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 13 13 (Rheban) (_"Rheban")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 13 13 (Rheban) (_"Rheban")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Horseman) 14 12 (Jul) (_"Jul")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Horseman) 14 12 (Jul) (_"Jul")} {GUARDIAN}


# Lt. Meris' Section
# Lt. Meris' Section


{NAMED_GENERIC_UNIT 1 (Lieutenant) 35 11 (Lt. Meris) (_"Lt. Meris")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Lieutenant) 35 11 (Lt. Meris) (_"Lt. Meris")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Peasant) 34 10 (Findlas) (_"Findlas")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Peasant) 34 10 (Findlas) (_"Findlas")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Bowman) 33 10 (Chumet) (_"Chumet")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Bowman) 33 10 (Chumet) (_"Chumet")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 33 11 (Neras) (_"Neras")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 33 11 (Neras) (_"Neras")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Bowman) 34 11 (Eera) (_"Eera")} {GUARDIAN}
{NAMED_GENERIC_UNIT 1 (Bowman) 34 11 (Eera) (_"Eera")} {GUARDIAN}


# Ancient Lich's Guards
# Ancient Lich's Guards


{NAMED_GENERIC_UNIT 2 Draug 26 23 () (_"Death Guard")} {GUARDIAN}
{NAMED_GENERIC_UNIT 2 Draug 26 23 () (_"Death Guard")} {GUARDIAN}
{CAN_PASS_BARRIER 26 23}
{NAMED_GENERIC_UNIT 2 Draug 29 22 () (_"Death Guard")} {GUARDIAN}
{NAMED_GENERIC_UNIT 2 Draug 29 22 () (_"Death Guard")} {GUARDIAN}
{CAN_PASS_BARRIER 29 22}


{MODIFY_UNIT x,y=24-40,5-25 facing sw}
{MODIFY_UNIT x,y=24-40,5-25 facing sw}


{CLEAR_VARIABLE stored_side_1}
{CLEAR_VARIABLE stored_side_1}
[/event]
[/event]


#start
#start
[event]
[event]
name=start
name=start
[recall]
[recall]
id=Sir Gerrick
id=Sir Gerrick
x,y=19,10
x,y=19,10
[/recall]
[/recall]
[recall]
[recall]
id=Urza Afalas
id=Urza Afalas
x,y=18,9
x,y=18,9
[/recall]
[/recall]


[message]
[message]
speaker=Deoran
speaker=Deoran
message= _ "We have escaped the great forest, but look! The undead are chasing us — we must not have rooted them all out of the wood."
message= _ "We have escaped the great forest, but look! The undead are chasing us — we must not have rooted them all out of the wood."
[/message]
[/message]
[message]
[message]
speaker=Sir Gerrick
speaker=Sir Gerrick
message= _ "My lord, you must hasten back to Westin to prepare a defense against them. I will command the defense of the border forts."
message= _ "My lord, you must hasten back to Westin to prepare a defense against them. I will command the defense of the border forts."
[/message]
[/message]
[message]
[message]
speaker=Urza Afalas
speaker=Urza Afalas
message= _ "I too will make my stand here — I owe you my life and must atone for my crimes. Together we will hold off the foul undead as long as we can."
message= _ "I too will make my stand here — I owe you my life and must atone for my crimes. Together we will hold off the foul undead as long as we can."
[/message]
[/message]
[message]
[message]
speaker=Deoran
speaker=Deoran
message= _ "Minister Hylas, ride with me to Westin — you must summon the Council of Westin while I prepare the city’s defenses. We shall return as soon as we can in force and relieve you."
message= _ "Minister Hylas, ride with me to Westin — you must summon the Council of Westin while I prepare the city’s defenses. We shall return as soon as we can in force and relieve you."
[/message]
[/message]
[message]
[message]
speaker=Sir Gerrick
speaker=Sir Gerrick
message= _ "Make no promises you know you cannot keep. Organize the defense of Westin, and if you survive, remember those who fell here."
message= _ "Make no promises you know you cannot keep. Organize the defense of Westin, and if you survive, remember those who fell here."
[/message]
[/message]


{MOVE_UNIT id=Deoran 18 5}
{MOVE_UNIT id=Deoran 18 5}


[message]
[message]
speaker=Deoran
speaker=Deoran
message= _ "Your name will be sounded in the roll of heroes, and you will be avenged. Thank you, my friend."
message= _ "Your name will be sounded in the roll of heroes, and you will be avenged. Thank you, my friend."
[/message]
[/message]


{MOVE_UNIT id=Deoran 17 1}
{MOVE_UNIT id=Deoran 17 1}


[store_unit]
[store_unit]
[filter]
[filter]
id=Deoran
id=Deoran
[/filter]
[/filter]


kill=yes
kill=yes
variable=stored_Deoran
variable=stored_Deoran
[/store_unit]
[/store_unit]


{MODIFY_UNIT (id=Sir Gerrick) canrecruit yes}
{MODIFY_UNIT (id=Sir Gerrick) canrecruit yes}
{MODIFY_UNIT (id=Sir Gerrick) ellipse ""}
{MODIFY_UNIT (id=Sir Gerrick) ellipse ""}


[message]
[message]
speaker=Lt. Illan
speaker=Lt. Illan
message= _ "We are yours to command, Sir Gerrick. Our men are not the great warriors that you and Deoran are, but we will hold our lines staunchly, until the bitter end."
message= _ "We are yours to command, Sir Gerrick. Our men are not the great warriors that you and Deoran are, but we will hold our lines staunchly, until the bitter end."
[/message]
[/message]


[objectives]
[objectives]
side=1
side=1
[objective]
[objective]
description= _ "Hold the line: Keep Sir Gerrick alive as long as possible"
description= _ "Hold the line: Keep Sir Gerrick alive as long as possible"
condition=win
condition=win
[/objective]
[/objective]


note= _ "No gold carried over to the next scenario."
note= _ "No gold carried over to the next scenario."
[/objectives]
[/objectives]


[message]
[message]
speaker=narrator
speaker=narrator
message= _ "There is no way to win this scenario, and no way to lose. Hold off the undead hordes as long as you can. Keep Sir Gerrick alive as long as you can. Every turn that passes strengthens the defenses of Westin."
message= _ "There is no way to win this scenario, and no way to lose. Hold off the undead hordes as long as you can. Keep Sir Gerrick alive as long as you can. Every turn that passes strengthens the defenses of Westin."
image=wesnoth-icon.png
image=wesnoth-icon.png
[/message]
[/message]
[/event]
[/event]


# We’re devising a wholly different idea of Mal M’Brin’s gold
# [event]
# name=die
# first_time_only=no
#
# [filter]
# side=2
# [/filter]
# [gold]
# side=2
##ifdef EASY
# amount=50
##endif
##ifdef NORMAL
# amount=65
##endif
##ifdef HARD
# amount=80
##endif
# [/gold]
# [/event]

# Surround the Undead castles with this magical barrier other scenarios talk so much about, but never actually show. Also (obviously) make Undead recruits able to pass this barrier, but lock the leaders.
# This is for a few reasons:
# • Otherwise it is possible to attempt to assasinate Mal Tera on turn 2 by luring him outta his keep with (14,12) horseman. This is too luck dependant.
# • We want Mal Tera to present a continued nuissance, for which reason we want him to be unkillable.
# • Since the Undead start pretty weak, it could be possible to actually charge them early-on; ofc we want to prohibit this, but in a more gracefull way than forcing a 0 chance to hit
# About the use of the Void terrain as the barrier… Well, it simply looks nice. Plus, it’s trivial to prohibit units from passing it
[event]
[event]
name=die
name=side 1 turn 1 end
first_time_only=no
{PLACE_BARRIER 28 24 "Mal M'Brin" recruiting 300 25 21 "border_size=1
usage=map

_f,_f,_f,_f,_f,_f,_f,_f,_f,_f
_f,_f,_f,_f,Xv,Xv,Xv,_f,_f,_f
_f,_f,Xv,Xv,_f,_f,_f,Xv,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
"}
{PLACE_BARRIER 14 24 "Mal M'Brin" recruiting 300 11 21 "border_size=1
usage=map


[filter]
_f,_f,_f,_f,_f,_f,_f,_f,_f,_f
side=2
_f,_f,_f,_f,Xv,_f,_f,_f,_f,_f
[/filter]
_f,_f,Xv,Xv,_f,Xv,Xv,_f,_f,_f
[gold]
_f,Xv,_f,_f,_f,_f,_f,Xv,Xv,_f
side=2
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
#ifdef EASY
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
amount=50
_f,Xv,_f,_f,_f,_f,_f,_f,Xv,_f
#endif
"}
#ifdef NORMAL
[message]
amount=65
speaker=Urza Afalas
#endif
message= _ "See? This is this magical barrier I was telling you about… No one can pass it! We cannot even reach the castles he has occupied, while he has plenty of time for preparations. We are surely doomed!"
#ifdef HARD
[/message]
amount=80
#endif
{MODIFY_UNIT id="Mal M'Brin" max_moves 0}
[/gold]
{MODIFY_UNIT id="Mal Tera" max_moves 0}
[/event]
[/event]


[event]
[event]
name=last breath
name=last breath
[filter]
[filter]
id=Urza Afalas
id=Urza Afalas
[/filter]
[/filter]


[message]
[message]
speaker=Urza Afalas
speaker=Urza Afalas
message= _ "Now I will never see my home again... Hold back the undead, Gerrick!"
message= _ "Now I will never see my home again... Hold back the undead, Gerrick!"
[/message]
[/message]
[/event]
[/event]
# Make undead units able to pass the barrier
# The macro is defined in terms of the [object] tag to prevent the (at least hypothetical) gimmick that the player holds undead forces on the line of the barrier and evolves them, thus making them stuck and preventing any other undead from attacking
[event]
name=recruit
first_time_only=no
[filter]
side=2,3
[/filter]
{CAN_PASS_BARRIER $x1 $y1}
[/event]
[event]
[event]
name=last breath
name=last breath
[filter]
[filter]
id=Sir Gerrick
id=Sir Gerrick
[/filter]
[/filter]


[message]
[message]
speaker=Sir Gerrick
speaker=Sir Gerrick
message= _ "I only hope we have bought Deoran enough time to secure Westin for the onslaught!"
message= _ "I only hope we have bought Deoran enough time to secure Westin for the onslaught!"
[/message]
[/message]
[kill]
[kill]
x,y=$x1,$y1
x,y=$x1,$y1
animate=yes
animate=yes
[/kill]
[/kill]
[message]
[message]
speaker="Mal M'Brin"
speaker="Mal M'Brin"
message= _ "We will crush Westin as we have crushed you! No one shall stand between us and our home."
message= _ "We will crush Westin as we have crushed you! No one shall stand between us and our home."
[/message]
[/message]


{VARIABLE pebbles_defense_length $turn_number}
{VARIABLE pebbles_defense_length $turn_number}


[kill]
[kill]
side=1
side=1
{EVERYWHERE}
{EVERYWHERE}
fire_event=no
fire_event=no
animate=no
animate=no
[/kill]
[/kill]


{VARIABLE stored_Deoran.x recall}
{VARIABLE stored_Deoran.x recall}
{VARIABLE stored_Deoran.y recall}
{VARIABLE stored_Deoran.y recall}


[unstore_unit]
[unstore_unit]
variable=stored_Deoran
variable=stored_Deoran
[/unstore_unit]
[/unstore_unit]


#Set the amount of gold that the player has to what it was before Pebbles.
#Set the amount of gold that the player has to what it was before Pebbles.
[modify_side]
[modify_side]
side=1
side=1
gold=$pebbles_starting_gold
gold=$pebbles_starting_gold
[/modify_side]
[/modify_side]
{CLEAR_VARIABLE pebbles_starting_gold}
{CLEAR_VARIABLE pebbles_starting_gold}


[endlevel]
[endlevel]
result=victory
result=victory
bonus=no
bonus=no
{NEW_GOLD_CARRYOVER 100}
{NEW_GOLD_CARRYOVER 100}
[/endlevel]
[/endlevel]
[/event]
[/event]
[/scenario]
[/scenario]