mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-15 17:08:57 +00:00
1509 lines
29 KiB
INI
1509 lines
29 KiB
INI
[tutorial]
|
|
name=Under Elves' Protection
|
|
map=map-tutorial
|
|
turns=48
|
|
music=wesnoth-4.ogg
|
|
|
|
id=tutorial
|
|
|
|
{DAWN}
|
|
{MORNING}
|
|
{MORNING}
|
|
{MORNING}
|
|
{AFTERNOON}
|
|
{AFTERNOON}
|
|
{AFTERNOON}
|
|
{DUSK}
|
|
{FIRST_WATCH}
|
|
{FIRST_WATCH}
|
|
{SECOND_WATCH}
|
|
{SECOND_WATCH}
|
|
|
|
objectives="Tasks:
|
|
@1. Control two villages near the river.
|
|
@2. Return to the castle and recruit units.
|
|
@3. Defeat enemies, control western villages.
|
|
@4. Defeat dark adepts.
|
|
@5. Defeat walking corpses.
|
|
@6. Defeat bandit leader.
|
|
Defeat:
|
|
#Death of Konrad
|
|
#Death of Delfador
|
|
#Death of any of the elvish leaders
|
|
#Turns run out"
|
|
|
|
|
|
[side]
|
|
race=human
|
|
type=Youth
|
|
description=Konrad
|
|
experience=0
|
|
side=1
|
|
canrecruit=1
|
|
recruit=Elvish Fighter,Elvish Archer,Elvish Scout
|
|
enemy=3
|
|
gold=8
|
|
controller=human
|
|
team_name=goodguys
|
|
[/side]
|
|
|
|
[side]
|
|
type=Elvish Captain
|
|
description=Galdrad
|
|
side=2
|
|
canrecruit=0
|
|
experience=37
|
|
recruit=
|
|
recruitment_pattern=mixed fighter,scout
|
|
gold=100
|
|
team_name=goodguys
|
|
enemy=3
|
|
ai_special=guardian
|
|
[unit]
|
|
type=Elder Mage
|
|
description=Delfador
|
|
side=2
|
|
x=18
|
|
y=23
|
|
ai_special=guardian
|
|
[/unit]
|
|
[unit]
|
|
type=Elvish Lord
|
|
description=Lofar
|
|
side=2
|
|
ai_special=guardian
|
|
x=16
|
|
y=49
|
|
[/unit]
|
|
[unit]
|
|
type=Elvish Marshal
|
|
description=Enelar
|
|
side=2
|
|
x=15
|
|
y=49
|
|
ai_special=guardian
|
|
[/unit]
|
|
[unit]
|
|
type=Elvish Avenger
|
|
description=Alisar
|
|
side=2
|
|
x=16
|
|
y=48
|
|
ai_special=guardian
|
|
[/unit]
|
|
[unit]
|
|
type=Elvish Outrider
|
|
description=Uli'ar
|
|
side=2
|
|
x=17
|
|
y=49
|
|
ai_special=guardian
|
|
[/unit]
|
|
[unit]
|
|
type=Elvish Druid
|
|
description=Chantal
|
|
side=2
|
|
ai_special=guardian
|
|
x=2
|
|
y=22
|
|
[/unit]
|
|
[/side]
|
|
|
|
[side]
|
|
race=Bandits3
|
|
type=Outlaw
|
|
description=Berkanah
|
|
side=3
|
|
canrecruit=1
|
|
recruit=
|
|
gold=200
|
|
enemy=1,2
|
|
team_name=badguys
|
|
[/side]
|
|
|
|
[story]
|
|
[part]
|
|
id=tutorial_1
|
|
story="After they found refuge in the Elvish lands, the elder mage Delfador tried to teach the young Konrad all the skills and knowledge needed to be a leader among his peers."
|
|
image="misc/story0a.png"
|
|
[/part]
|
|
[part]
|
|
id=tutorial_2
|
|
story="Meanwhile in the nearby woods, a group of dark preachers made an unholy pact with some desperate bandits."
|
|
image="misc/story0b.png"
|
|
[/part]
|
|
[/story]
|
|
|
|
[event]
|
|
name=start
|
|
[set_variable]
|
|
name=task
|
|
value=0
|
|
[/set_variable]
|
|
[set_variable]
|
|
name=exc_archer
|
|
value=0
|
|
[/set_variable]
|
|
[set_variable]
|
|
name=exc_fighter
|
|
value=0
|
|
[/set_variable]
|
|
[set_variable]
|
|
name=exc_scout
|
|
value=0
|
|
[/set_variable]
|
|
|
|
|
|
[command]
|
|
[kill]
|
|
description=Galdrad
|
|
[/kill]
|
|
[/command]
|
|
[command]
|
|
[unit]
|
|
type=Elvish Fighter
|
|
description=Galdrad
|
|
x=24
|
|
y=16
|
|
#canrecruit=1
|
|
ai_special=guardian
|
|
side=2
|
|
experience=37
|
|
advanceto=Shadow
|
|
[/unit]
|
|
[/command]
|
|
|
|
[message]
|
|
id=tut1
|
|
description=Delfador
|
|
message="It has been a great time here, Konrad. With our friends, the Elves, we have enjoyed many years in peace.
|
|
|
|
But you are no longer child, Konrad. Every lord must learn the ways of battle, to have the ability to lead his army against enemies of any race. Soon will be time to replace your training sword with an iron one, and claim your inheritance. But there are things that we must learn before that."
|
|
[/message]
|
|
|
|
[message]
|
|
id=tut2
|
|
description=Konrad
|
|
message="What must I learn, Delfador?"
|
|
[/message]
|
|
|
|
[message]
|
|
id=tut3
|
|
description=Delfador
|
|
message="Before entering any battle, you need to hire soldiers. Gold is necessary for that. There are villages through the land. Those which you gain control (marked with a red flag), will give you a extra gold coin every turn and pay the cost of one of your units. To conquer a village, move any of your units there.
|
|
@EXERCISE
|
|
Go to the nearest villages, so with the earned gold we can continue our lesson."
|
|
[/message]
|
|
[message]
|
|
id=tut3a
|
|
speaker=narrator
|
|
image="misc/tutorial1.png"
|
|
message="To move a unit first select it..."
|
|
[/message]
|
|
[message]
|
|
id=tut3b
|
|
speaker=narrator
|
|
image="misc/tutorial2.png"
|
|
message=".. then select his destination.
|
|
If the destination is far away a unit could need more than one turn to reach it, the number shows how many turns it will take him."
|
|
[/message]
|
|
[message]
|
|
id=tut3c
|
|
speaker=narrator
|
|
image="misc/tutorial3.png"
|
|
message="After you are done with all the movements you need to click on the End Turn button."
|
|
[/message]
|
|
[/event]
|
|
|
|
|
|
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Konrad
|
|
[/filter]
|
|
[message]
|
|
id=tut15
|
|
description=Delfador
|
|
message="This has only been a practice, Konrad, but remember that if it were a real battle, you would now be dead."
|
|
[/message]
|
|
[/event]
|
|
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Delfador
|
|
[/filter]
|
|
[message]
|
|
id=tut16
|
|
description=Delfador
|
|
message="Konrad, I did my best to stop them, but you were obligued to protect me as well. That is the end of training for today."
|
|
[/message]
|
|
[endlevel]
|
|
result=defeat
|
|
[/endlevel]
|
|
[/event]
|
|
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Chantal
|
|
[/filter]
|
|
[message]
|
|
description=Chantal
|
|
message="Indeed Lofar, you were right that humans can't lead armies."
|
|
[/message]
|
|
[endlevel]
|
|
result=defeat
|
|
[/endlevel]
|
|
[/event]
|
|
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Galdrad
|
|
[/filter]
|
|
[message]
|
|
description=Galdrad
|
|
message="Konrad! You should have helped me!"
|
|
[/message]
|
|
[endlevel]
|
|
result=defeat
|
|
[/endlevel]
|
|
[/event]
|
|
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Lofar
|
|
[/filter]
|
|
[message]
|
|
description=Lofar
|
|
message="Huh, human the leader! Wasn't telling you, Galdrad, it is waste of time?"
|
|
[/message]
|
|
[endlevel]
|
|
result=defeat
|
|
[/endlevel]
|
|
[/event]
|
|
|
|
[event]
|
|
name=enemies defeated
|
|
[message]
|
|
description=Delfador
|
|
message="Alright Konrad. You were excellent today."
|
|
[/message]
|
|
[message]
|
|
description=Chantal
|
|
message="This young commander deserves the crown of Wesnoth. Let him be our hope for peace with Wesnoth, Lofar."
|
|
[/message]
|
|
[message]
|
|
description=Lofar
|
|
message="Congratulations human. Your performance today was impressing, I must admit."
|
|
[/message]
|
|
[message]
|
|
description=Delfador
|
|
message="A mission of a great importance is before us. Asheviere must not be the queen any longer!"
|
|
[/message]
|
|
[/event]
|
|
|
|
[event]
|
|
name=time over
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
greater_than=4
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="You did all the exercies, but four days was not enough for you to defeat bandits. I'm afraid you won't have so much time in real battle."
|
|
[/message]
|
|
[message]
|
|
description=Galdrad
|
|
message="Don't be so cautious, Konrad. Go yourself to the fight, if there is no risk of your life."
|
|
[/message]
|
|
[/then]
|
|
[else]
|
|
[message]
|
|
description=Delfador
|
|
message="You look miserable, Konrad. Four days have passed and you haven't completed the exercises. In a real battle you must act quickly, before your enemies summon reinforcements. We will have to try again another time."
|
|
[/message]
|
|
[/else]
|
|
[/if]
|
|
[/event]
|
|
|
|
########
|
|
# Item #
|
|
########
|
|
[item]
|
|
x=21
|
|
y=22
|
|
image=misc/item-staff.png
|
|
[/item]
|
|
|
|
[event]
|
|
name=moveto
|
|
first_time_only=no
|
|
[filter]
|
|
side=1
|
|
x=21
|
|
y=22
|
|
[/filter]
|
|
[object]
|
|
id=obj_staff
|
|
name=Delfador's staff
|
|
image=misc/item-staff.png
|
|
description="Hmmm... This is Delfador's... I wonder what it is used for..."
|
|
cannot_use_message="Human's magical staff -- I'll better not touch it!"
|
|
[filter]
|
|
description=Konrad
|
|
[/filter]
|
|
[effect]
|
|
apply_to=new_attack
|
|
name=staff
|
|
type=impact
|
|
range=short
|
|
damage=2
|
|
number=2
|
|
[/effect]
|
|
[effect]
|
|
apply_to=new_attack
|
|
name=flame
|
|
type=fire
|
|
range=long
|
|
special=magical
|
|
damage=4
|
|
number=6
|
|
icon=misc/fireball.png
|
|
[sound]
|
|
time=-200
|
|
sound=fire.wav
|
|
[/sound]
|
|
[missile_frame]
|
|
begin=-100
|
|
end=0
|
|
image=fireball.png
|
|
[/missile_frame]
|
|
[/effect]
|
|
[/object]
|
|
[/event]
|
|
[event]
|
|
name=moveto
|
|
[filter]
|
|
description=Konrad
|
|
x=21
|
|
y=22
|
|
[/filter]
|
|
[message]
|
|
id=tut_staff
|
|
description=Delfador
|
|
message="This is my old staff. Although not very useful in close range, its magic proves to be deadly to your enemies. Its powers are waning so it will not last long. Don't be afraid to use this weapon now - I will make sure you won't hurt yourself."
|
|
[/message]
|
|
[message]
|
|
id=tut_staff2
|
|
speaker=narrator
|
|
image="misc/tutorial3b.png"
|
|
message="Magic items could help you in your quest, but you should be aware that some items can only be picked up by certain units."
|
|
[/message]
|
|
[/event]
|
|
|
|
|
|
|
|
##########
|
|
# TASK 1 #
|
|
##########
|
|
[event]
|
|
name=moveto
|
|
first_time_only=yes
|
|
[filter]
|
|
description=Konrad
|
|
x=25
|
|
y=21
|
|
[/filter]
|
|
[set_variable]
|
|
name=task
|
|
value=1
|
|
[/set_variable]
|
|
|
|
#define POACHER_WEAKENER
|
|
[modifications]
|
|
[trait]
|
|
[effect]
|
|
apply_to=hitpoints
|
|
increase_total=-15
|
|
heal_full=yes
|
|
[/effect]
|
|
[effect]
|
|
apply_to=attack
|
|
range=long
|
|
increase_damage=-1
|
|
[/effect]
|
|
[/trait]
|
|
[/modifications]
|
|
#enddef
|
|
[unit]
|
|
type=Poacher
|
|
description=Rapprah
|
|
x=26
|
|
y=21
|
|
side=3
|
|
{POACHER_WEAKENER}
|
|
[/unit]
|
|
[unit]
|
|
type=Poacher
|
|
description=Tromarch
|
|
x=24
|
|
y=20
|
|
side=3
|
|
{POACHER_WEAKENER}
|
|
[/unit]
|
|
[message]
|
|
id=amb1
|
|
description=Rapprah
|
|
message="Surprise! You have walked into our trap, foolish boy!"
|
|
[/message]
|
|
[message]
|
|
id=amb2
|
|
description=Delfador
|
|
message="Konrad!"
|
|
[/message]
|
|
[message]
|
|
id=amb3
|
|
description=Konrad
|
|
message="Delfador! Help me!"
|
|
[/message]
|
|
[message]
|
|
id=amb4
|
|
description=Galdrad
|
|
message="Stay calm Konrad. I'm coming to save you. Meanwhile try to defend yourself. When you are in a village they have little chance to hurt you. Look -- one of them stays in the water. Try to hit him!"
|
|
[/message]
|
|
[message]
|
|
id=amb5
|
|
description=Delfador
|
|
message="Fighting is the best way to improve your skills. When you get enough experience (XP) you advance to become a better fighter.
|
|
|
|
When you choose to attack an enemy unit, you may choose which weapon you want to fight with. For every weapon, there are three important numbers shown: the damage it causes, the number of attacks you have and the probability of hitting the enemy. Also the opponent's values are displayed."
|
|
[/message]
|
|
[message]
|
|
id=tut4a
|
|
speaker=narrator
|
|
image="misc/tutorial4.png"
|
|
message="To attack with a unit you should select it first..."
|
|
[/message]
|
|
[message]
|
|
id=tut5a
|
|
speaker=narrator
|
|
image="misc/tutorial5.png"
|
|
message="...then click to select a target.
|
|
Once you do this you have to choose the weapon."
|
|
[/message]
|
|
[/event]
|
|
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Rapprah
|
|
[/filter]
|
|
[filter_second]
|
|
description=Konrad
|
|
[/filter_second]
|
|
[message]
|
|
id=kill1
|
|
description=Delfador
|
|
message="Well done! This is Garards nephew!"
|
|
[/message]
|
|
[/event]
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Tromarch
|
|
[/filter]
|
|
[filter_second]
|
|
description=Konrad
|
|
[/filter_second]
|
|
[message]
|
|
id=kill2
|
|
description=Garldrad
|
|
message="Excellent, young human!"
|
|
[/message]
|
|
[/event]
|
|
|
|
|
|
#define ENDTASKONE
|
|
[command]
|
|
[kill]
|
|
description=Galdrad
|
|
[/kill]
|
|
[/command]
|
|
[command]
|
|
[unit]
|
|
type=Elvish Captain
|
|
description=Galdrad
|
|
x=24
|
|
y=16
|
|
canrecruit=1
|
|
side=2
|
|
[/unit]
|
|
[/command]
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=1
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
id=kill4
|
|
description=Delfador
|
|
message="If you are finished with the villages, go back to the castle, to recruit your soldiers. Remember that in a real battle, you will probably start with some money to recruit soldiers from the beginning."
|
|
[/message]
|
|
[message]
|
|
id=tut3a
|
|
speaker=narrator
|
|
image="misc/tutorial6.png"
|
|
message="To recruit units you should place your leader in the keep tile of the castle."
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
#enddef
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Rapprah
|
|
[/filter]
|
|
[if]
|
|
[have_unit]
|
|
description=Tromarch
|
|
[/have_unit]
|
|
[then]
|
|
[message]
|
|
id=kill3
|
|
description=Delfador
|
|
message="Look behind!"
|
|
[/message]
|
|
[/then]
|
|
[else]
|
|
{ENDTASKONE}
|
|
[/else]
|
|
[/if]
|
|
[/event]
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Tromarch
|
|
[/filter]
|
|
[if]
|
|
[have_unit]
|
|
description=Rapprah
|
|
[/have_unit]
|
|
[then]
|
|
[message]
|
|
id=kill5
|
|
description=Galdrad
|
|
message="There is one still hiding there!"
|
|
[/message]
|
|
[/then]
|
|
[else]
|
|
{ENDTASKONE}
|
|
[/else]
|
|
[/if]
|
|
[/event]
|
|
|
|
[event]
|
|
name=moveto
|
|
first_time_only=no
|
|
[filter]
|
|
description=Konrad
|
|
x=20
|
|
y=23
|
|
[/filter]
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=1
|
|
[/variable]
|
|
[then]
|
|
[set_variable]
|
|
name=task
|
|
value=2
|
|
[/set_variable]
|
|
[message]
|
|
id=recr1
|
|
description=Delfador
|
|
message="Now you are ready to recruit units (right click and select Recruit)."
|
|
[/message]
|
|
[message]
|
|
id=recr2
|
|
description=Konrad
|
|
message="So how should I choose what kind of soldiers to hire, Delfador?"
|
|
[/message]
|
|
[message]
|
|
id=recr3
|
|
description=Delfador
|
|
message="You have to carefully review their skills. Early on, you want fast units to sieze as many villages as possible. After that, fighters should probably make up the bulk of your army. Remember that all Elvish units fight very well in forest. Horsemen are excellent on open ground. Mages are good for support, and can be used much like archers. If you can get your mages more experienced, they can be especially powerful."
|
|
[/message]
|
|
[gold]
|
|
side=1
|
|
amount=50
|
|
[/gold]
|
|
[/then]
|
|
[else]
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=0
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="Go to the two villages near the river."
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/else]
|
|
[/if]
|
|
[/event]
|
|
|
|
|
|
|
|
|
|
|
|
####################################
|
|
# Task: scouts, moving to villages #
|
|
####################################
|
|
[event]
|
|
name=moveto
|
|
first_time_only=no
|
|
[filter]
|
|
x=5,7,2,5,6,3,17
|
|
y=1,5,6,15,18,25,3
|
|
side=1
|
|
[/filter]
|
|
[command]
|
|
[set_variable]
|
|
name=exc_scout
|
|
add=1
|
|
[/set_variable]
|
|
[/command]
|
|
[command]
|
|
[if]
|
|
[variable]
|
|
name=exc_scout
|
|
greater_than=4
|
|
[/variable]
|
|
[variable]
|
|
name=exc_scout
|
|
less_than=6
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Uli'ar
|
|
message="Now you have control over the majority of villages here. Well done!"
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/command]
|
|
[command]
|
|
[if]
|
|
[variable]
|
|
name=exc_scout
|
|
greater_than=2
|
|
[/variable]
|
|
[variable]
|
|
name=exc_scout
|
|
less_than=4
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Uli'ar
|
|
message="So far so good, but we need more of them."
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/command]
|
|
[/event]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#################################
|
|
# Task: archers, killing Gerlog #
|
|
#################################
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Gerlog
|
|
[/filter]
|
|
[set_variable]
|
|
name=exc_archer
|
|
value=2
|
|
[/set_variable]
|
|
[message]
|
|
description=Alisar
|
|
message="Excellent, human commander!"
|
|
[/message]
|
|
[/event]
|
|
|
|
[event]
|
|
name=attack
|
|
[filter]
|
|
type=Elvish Fighter
|
|
[/filter]
|
|
[filter_second]
|
|
description=Gerlog
|
|
[/filter_second]
|
|
[message]
|
|
description=Lofar
|
|
message="Well, fighter is an excellent choice for every battle, but I would use archers here instead. They are better shooters than fighters."
|
|
[/message]
|
|
[/event]
|
|
|
|
[event]
|
|
name=attack
|
|
[filter]
|
|
type=Elvish Scout
|
|
[/filter]
|
|
[filter_second]
|
|
description=Gerlog
|
|
[/filter_second]
|
|
[message]
|
|
description=Uli'ar
|
|
message="Scouts are known of their horse riding. I would rather use archers here who can defeat the enemy before he is close enough to respond."
|
|
[/message]
|
|
[/event]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
####################################
|
|
# Task: fighters killing Kharhbrah #
|
|
####################################
|
|
|
|
[event]
|
|
name=die
|
|
[filter]
|
|
description=Kharhbrah
|
|
[/filter]
|
|
[set_variable]
|
|
name=exc_fighter
|
|
value=2
|
|
[/set_variable]
|
|
[message]
|
|
description=Enelar
|
|
message="This task is complete!"
|
|
[/message]
|
|
[/event]
|
|
[event]
|
|
name=attack
|
|
[filter]
|
|
type=Elvish Archer
|
|
[/filter]
|
|
[filter_second]
|
|
description=Kharhbrah
|
|
[/filter_second]
|
|
[message]
|
|
description=Alisar
|
|
message="Archers are too weak to defeat poacher with a sword and attempting to attack a him from a long range may become the last moment in this archer's life!"
|
|
[/message]
|
|
[/event]
|
|
|
|
|
|
|
|
|
|
|
|
#############################
|
|
# Task: killing dark adepts #
|
|
#############################
|
|
[event]
|
|
name=die
|
|
first_time_only=no
|
|
[filter]
|
|
type=Dark Adept
|
|
[/filter]
|
|
[set_variable]
|
|
name=exc_horse
|
|
add=1
|
|
[/set_variable]
|
|
[if]
|
|
[variable]
|
|
name=exc_horse
|
|
greater_than=1
|
|
[/variable]
|
|
[then]
|
|
[set_variable]
|
|
name=task
|
|
value=4
|
|
[/set_variable]
|
|
[message]
|
|
description=Uli'ar
|
|
message="Well done!"
|
|
[/message]
|
|
[message]
|
|
description=Delfador
|
|
message="Now the last excercise. To continue, recruit some mages, so they can show you their skills."
|
|
[/message]
|
|
[disallow_recruit]
|
|
side=1
|
|
type=Horseman
|
|
[/disallow_recruit]
|
|
[allow_recruit]
|
|
side=1
|
|
type=Mage
|
|
[/allow_recruit]
|
|
[gold]
|
|
side=1
|
|
amount=42
|
|
[/gold]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#########################
|
|
# Task: killing corpses #
|
|
#########################
|
|
[event]
|
|
name=die
|
|
first_time_only=no
|
|
[filter]
|
|
type=Walking Corpse
|
|
[/filter]
|
|
[set_variable]
|
|
name=exc_mage
|
|
add=1
|
|
[/set_variable]
|
|
[if]
|
|
[variable]
|
|
name=exc_mage
|
|
greater_than=2
|
|
[/variable]
|
|
[then]
|
|
[set_variable]
|
|
name=task
|
|
value=5
|
|
[/set_variable]
|
|
[message]
|
|
description=Chantal
|
|
message="Good work Konrad!"
|
|
[/message]
|
|
[message]
|
|
description=Delfador
|
|
message="You are now a real commander, Konrad."
|
|
[/message]
|
|
[message]
|
|
description=Konrad
|
|
message="Thank you, Delfador. It wasn't so difficult as I had thought!"
|
|
[/message]
|
|
[message]
|
|
description=Delfador
|
|
message="Now a real test of your commanding skills: in the castle north-east of ours, a bandit leader is preparing to take Elven land. Help Galrad defeat this evil leader.
|
|
There are also Elvish friends of ours who want to help you (use right click and Unit List to find them).
|
|
You are now allowed to recruit all units. Good luck!"
|
|
[/message]
|
|
[allow_recruit]
|
|
side=1
|
|
type=Elvish Fighter
|
|
[/allow_recruit]
|
|
[allow_recruit]
|
|
side=1
|
|
type=Elvish Archer
|
|
[/allow_recruit]
|
|
[allow_recruit]
|
|
side=1
|
|
type=Elvish Scout
|
|
[/allow_recruit]
|
|
[allow_recruit]
|
|
side=1
|
|
type=Horseman
|
|
[/allow_recruit]
|
|
[unit]
|
|
type=Elvish Champion
|
|
side=1
|
|
x=23
|
|
y=16
|
|
[/unit]
|
|
[unit]
|
|
type=Elvish Shyde
|
|
side=1
|
|
x=25
|
|
y=16
|
|
[/unit]
|
|
[unit]
|
|
type=Elvish Avenger
|
|
side=1
|
|
x=24
|
|
y=15
|
|
[/unit]
|
|
[allow_recruit]
|
|
side=3
|
|
type=Thug
|
|
[/allow_recruit]
|
|
[allow_recruit]
|
|
side=3
|
|
type=Footpad
|
|
[/allow_recruit]
|
|
[allow_recruit]
|
|
side=3
|
|
type=Poacher
|
|
[/allow_recruit]
|
|
[allow_recruit]
|
|
side=3
|
|
type=Thief
|
|
[/allow_recruit]
|
|
[allow_recruit]
|
|
side=2
|
|
type=Elvish Ranger
|
|
[/allow_recruit]
|
|
[allow_recruit]
|
|
side=2
|
|
type=Elvish Hero
|
|
[/allow_recruit]
|
|
[terrain]
|
|
x=23
|
|
y=12
|
|
letter=t
|
|
[/terrain]
|
|
[terrain]
|
|
x=25
|
|
y=1
|
|
letter=t
|
|
[/terrain]
|
|
[terrain]
|
|
x=31
|
|
y=9
|
|
letter=t
|
|
[/terrain]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##################################
|
|
# Things to check for every turn #
|
|
##################################
|
|
|
|
#define EVENTTURN T
|
|
[event]
|
|
name=turn {T}
|
|
#
|
|
# TASK 2
|
|
#
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=2
|
|
[/variable]
|
|
[then]
|
|
[if]
|
|
[have_unit]
|
|
type=Elvish Scout
|
|
[/have_unit]
|
|
[variable]
|
|
name=exc_scout
|
|
equals=0
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Uli'ar
|
|
message="You have recruited Scouts. Elvish Scouts aren't very well in combat although they can sieze large territories in short time. They are excellent in capturing villages.
|
|
@EXERCISE
|
|
Take over the western villages to get more gold."
|
|
[/message]
|
|
[set_variable]
|
|
name=exc_scout
|
|
value=1
|
|
[/set_variable]
|
|
[/then]
|
|
[/if]
|
|
[if]
|
|
[have_unit]
|
|
type=Elvish Archer
|
|
[/have_unit]
|
|
[variable]
|
|
name=exc_archer
|
|
equals=0
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Alisar
|
|
message="You have recruited Archers. Elvish archers are weak in hand-to-hand combat, but are excellent shooters. Send your archers against enemies who don't have long range weapons and avoid exiting forests and villages.
|
|
Archers advance to sharpshooters or avengers who are deadly with their long bows and swords.
|
|
@EXERCISE
|
|
We have prepared a practice target for you -- Gerlog, the thief, due south of your castle."
|
|
[/message]
|
|
[unit]
|
|
type=Thief
|
|
description=Gerlog
|
|
x=20
|
|
y=28
|
|
side=3
|
|
[/unit]
|
|
[set_variable]
|
|
name=exc_archer
|
|
value=1
|
|
[/set_variable]
|
|
[/then]
|
|
[/if]
|
|
[if]
|
|
[have_unit]
|
|
type=Elvish Fighter
|
|
[/have_unit]
|
|
[variable]
|
|
name=exc_fighter
|
|
equals=0
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Enelar
|
|
message="You have recruited Fighters. They are well prepared to combat in both close and long range. As all the Elves, they defend well in forests and villages.
|
|
Fighter's career ends at marshal or champion, both well prepared to fight against all types of enemies. Marshals can also lead soldiers in battle.
|
|
@EXERCISE
|
|
To test fighters, send them against Kharhbrah, the Poacher on the brigde."
|
|
[/message]
|
|
[unit]
|
|
type=Poacher
|
|
description=Kharhbrah
|
|
x=22
|
|
y=21
|
|
side=3
|
|
[/unit]
|
|
[set_variable]
|
|
name=exc_fighter
|
|
value=1
|
|
[/set_variable]
|
|
[/then]
|
|
[/if]
|
|
[/then]
|
|
[/if]
|
|
#
|
|
# TASK 3
|
|
#
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=3
|
|
[/variable]
|
|
[have_unit]
|
|
type=Horseman
|
|
[/have_unit]
|
|
[then]
|
|
[set_variable]
|
|
name=task
|
|
value=103
|
|
[/set_variable]
|
|
[message]
|
|
description=Uli'ar
|
|
message="Horses are very fast on roads and grass. Because of that, horsemen have advantage on that terrain."
|
|
[/message]
|
|
[message]
|
|
description=Lofar
|
|
message="Clearly, humans are less talented than the Elves. I'm doubful about usefulness of horsemen on the battlefield."
|
|
[/message]
|
|
[message]
|
|
description=Uli'ar
|
|
message="Horsemen advance to paladins, great warriors who can also heal their companions in battle.
|
|
@EXERCISE
|
|
There is practice target on the clearing, south-east of your castle. Go there and wipe the area out of our enemies."
|
|
[/message]
|
|
[unit]
|
|
description=Gorgo
|
|
type=Dark Adept
|
|
x=31
|
|
y=31
|
|
side=3
|
|
ai_special=guardian
|
|
[/unit]
|
|
[unit]
|
|
description=Lomm
|
|
type=Dark Adept
|
|
x=31
|
|
y=33
|
|
side=3
|
|
ai_special=guardian
|
|
[/unit]
|
|
[terrain]
|
|
x=29
|
|
y=32
|
|
letter=t
|
|
[/terrain]
|
|
[terrain]
|
|
x=28
|
|
y=36
|
|
letter=t
|
|
[/terrain]
|
|
[/then]
|
|
[/if]
|
|
#
|
|
# TASK 4
|
|
#
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=4
|
|
[/variable]
|
|
[have_unit]
|
|
type=Mage
|
|
[/have_unit]
|
|
[then]
|
|
[set_variable]
|
|
name=exc_mage
|
|
value=0
|
|
[/set_variable]
|
|
[set_variable]
|
|
name=task
|
|
value=104
|
|
[/set_variable]
|
|
[message]
|
|
description=Chantal
|
|
message="Humans are famous for their deep knowledge about the world. Mages are the elite of human researchers -- they are able to summon forces of nature and use them against any fool who would oppose them. Because of the magic, their flaming missiles almost always hit the target.
|
|
Mages are weak, yet, as they gain in experience, they specialize either in white magic as mages of light or other kinds of forces to become great mages.
|
|
@EXERCISE
|
|
On the other side of the road, undead have spread. Make sure, they don't move another step further!"
|
|
[/message]
|
|
[unit]
|
|
type=Walking Corpse
|
|
x=25
|
|
y=25
|
|
side=3
|
|
[/unit]
|
|
[unit]
|
|
type=Walking Corpse
|
|
x=25
|
|
y=26
|
|
side=3
|
|
[/unit]
|
|
[unit]
|
|
type=Walking Corpse
|
|
x=26
|
|
y=25
|
|
side=3
|
|
[/unit]
|
|
[/then]
|
|
[/if]
|
|
#
|
|
# Check if the player has completed task 2.
|
|
#
|
|
[if]
|
|
[or]
|
|
[variable]
|
|
name=exc_archer
|
|
greater_than=1
|
|
[/variable]
|
|
[variable]
|
|
name=task
|
|
equals=2
|
|
[/variable]
|
|
[/or]
|
|
[or]
|
|
[variable]
|
|
name=exc_scout
|
|
greater_than=4
|
|
[/variable]
|
|
[variable]
|
|
name=task
|
|
equals=2
|
|
[/variable]
|
|
[/or]
|
|
[or]
|
|
[variable]
|
|
name=exc_fighter
|
|
greater_than=1
|
|
[/variable]
|
|
[variable]
|
|
name=task
|
|
equals=2
|
|
[/variable]
|
|
[/or]
|
|
[then]
|
|
[set_variable]
|
|
name=exc_horse
|
|
value=0
|
|
[/set_variable]
|
|
[set_variable]
|
|
name=task
|
|
value=3
|
|
[/set_variable]
|
|
[message]
|
|
description=Delfador
|
|
message="Alright. In the next lesson, you will learn how to command horsemen. Now recruit some of them."
|
|
[/message]
|
|
[gold]
|
|
side=1
|
|
amount=42
|
|
[/gold]
|
|
[allow_recruit]
|
|
side=1
|
|
type=Horseman
|
|
[/allow_recruit]
|
|
[disallow_recruit]
|
|
side=1
|
|
type=Elvish Fighter
|
|
[/disallow_recruit]
|
|
[disallow_recruit]
|
|
side=1
|
|
type=Elvish Archer
|
|
[/disallow_recruit]
|
|
[disallow_recruit]
|
|
side=1
|
|
type=Elvish Scout
|
|
[/disallow_recruit]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
#enddef
|
|
|
|
{EVENTTURN 4}
|
|
{EVENTTURN 5}
|
|
{EVENTTURN 6}
|
|
{EVENTTURN 7}
|
|
{EVENTTURN 8}
|
|
{EVENTTURN 9}
|
|
{EVENTTURN 10}
|
|
{EVENTTURN 11}
|
|
{EVENTTURN 12}
|
|
{EVENTTURN 13}
|
|
{EVENTTURN 14}
|
|
{EVENTTURN 15}
|
|
{EVENTTURN 16}
|
|
{EVENTTURN 17}
|
|
{EVENTTURN 18}
|
|
{EVENTTURN 19}
|
|
{EVENTTURN 20}
|
|
{EVENTTURN 21}
|
|
{EVENTTURN 22}
|
|
{EVENTTURN 23}
|
|
{EVENTTURN 24}
|
|
{EVENTTURN 25}
|
|
{EVENTTURN 26}
|
|
{EVENTTURN 27}
|
|
{EVENTTURN 28}
|
|
{EVENTTURN 29}
|
|
{EVENTTURN 30}
|
|
{EVENTTURN 31}
|
|
{EVENTTURN 32}
|
|
{EVENTTURN 33}
|
|
{EVENTTURN 34}
|
|
{EVENTTURN 35}
|
|
{EVENTTURN 36}
|
|
{EVENTTURN 37}
|
|
{EVENTTURN 38}
|
|
{EVENTTURN 39}
|
|
{EVENTTURN 40}
|
|
{EVENTTURN 41}
|
|
{EVENTTURN 42}
|
|
{EVENTTURN 43}
|
|
{EVENTTURN 44}
|
|
{EVENTTURN 45}
|
|
{EVENTTURN 46}
|
|
{EVENTTURN 47}
|
|
{EVENTTURN 48}
|
|
|
|
|
|
|
|
|
|
|
|
##########################################
|
|
# Notifying the player of a passing time #
|
|
##########################################
|
|
[event]
|
|
name=turn 8
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=0
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="Hurry up! You should be here back long time ago!"
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
|
|
[event]
|
|
name=turn 14
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=0
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="What are you doing Konrad?! One day has passed and you haven't completed a single task!"
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=1
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="You should have completed the second practice. Come on!"
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
|
|
[event]
|
|
name=turn 22
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=1
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="Konrad! Come on. They are not so many."
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=2
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="Alright, but you're wasting too much time."
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
|
|
[event]
|
|
name=turn 28
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=3
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="Konrad! Last warning -- end with them now!"
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=103
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="It's easy, why are you doing this mission so slowly!"
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
|
|
[event]
|
|
name=turn 32
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=103
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="Well, hurry up!"
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=104
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="So far so good, but hurry up, I have one more task to do for you."
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
|
|
[event]
|
|
name=turn 40
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=104
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="You have too little time now, I must say..."
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
equals=5
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
description=Delfador
|
|
message="Only eight turns left, Konrad."
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
|
|
|
|
|
|
#########################################
|
|
# Dnt attack the enemy boss before time #
|
|
#########################################
|
|
[event]
|
|
name=moveto
|
|
first_time_only=no
|
|
[filter]
|
|
side=1
|
|
x=24-31
|
|
y=1-10
|
|
[/filter]
|
|
[if]
|
|
[variable]
|
|
name=task
|
|
not_equals=5
|
|
[/variable]
|
|
[then]
|
|
[message]
|
|
id=tutnope
|
|
description=Delfador
|
|
message="You should complete your training before attacking the bandit leader."
|
|
[/message]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
|
|
[/tutorial]
|
|
|