summaryrefslogtreecommitdiff
path: root/npc/009-3/sword.txt
blob: f0332db6f2d7322403607cabe96c9fc9b418dd26 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
009-3,26,100,0	script	#MysticSword#_M	NPC400,{
    if (getskilllv(SKILL_MAGIC))
        goto L_message;
    close;

L_message:
    @Q_MASK = NIBBLE_6_MASK;
    @Q_SHIFT = NIBBLE_6_SHIFT;
    @Q_status = (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT;

    // Set up SkillUp function
    @SUP_id = SKILL_MAGIC_WAR;
    @SUP_name$ = "War Magic";

    @STATUS_INITIAL = 0;
    @STATUS_LEARNED_FLAREDART = 1;
    @STATUS_LEARNED_MAGICBLADE = 2;
    @STATUS_LEVEL2 = 3;
    @STATUS_W11 = 4;
    @STATUS_W12 = 5;
    @STATUS_W11_12 = 6;
    @STATUS_L2_ALLSPELLS = 7;

    if (@Q_status == @STATUS_INITIAL) goto L_Initial;
    if (@Q_status == @STATUS_LEARNED_FLAREDART) goto L_PostFlareDart;
    if (@Q_status == @STATUS_LEARNED_MAGICBLADE) goto L_PostFlareDart_teach2;
    if (@Q_status == @STATUS_LEVEL2) goto L_L2_W11;
    if (@Q_status == @STATUS_W12) goto L_L2_W11;
    if (@Q_status == @STATUS_W11) goto L_L2_almost_done;
    if (@Q_status == @STATUS_W11_12) goto L_L2_almost_done;

    mesn l("Magic Sword");
    mesq l("Come back when thou art stronger.");
    close;

L_Initial:
    mesn l("Magic Sword");
    mesc l("As you look at the sword, you suddenly hear a voice in your head!");
    mesq l("Welcome to my prison, mortal!");
    next;
    mesn l("Magic Sword");
    mesc l("Well, either you are going mad, or that sword in the stone is talking to you.");
    next;
    mesn l("Magic Sword");
    mesc l("Or, well, both.");
    next;
    mesn l("Magic Sword");
    mesc l("The deep basso voice continues.");
    mesq l("I know not what brought thee hither, but I kindly ask that thou leavest me alone in my sorrow.");
    next;
    menu
        "Leave", L_close,
        "Sorry.", L_Next,
        "Who or what are you?", L_Next,
        "What sorrow?", L_Next,
        "Can I help?", L_Next,
        "Can you teach me magic?", L_Next;

L_Next:
    mesn l("Magic Sword");
    mesc l("There is no answer.");
    close;

L_PostFlareDart:
    mesn l("Magic Sword");
    mes "As you look at the sword, you hear a deep voice resounding in your head.";
    mes "\"Welcome, mortal!\"";
    next;
    menu
        "Hi!  How are you?", L_PostFlareDart_hi,
        "Can you teach me magic?", L_PostFlareDart_teach,
        "Your sister sent me.", L_PostFlareDart_sister,
        "Bye!", L_close;

L_PostFlareDart_hi:
    mesn l("Magic Sword");
    mes "\"Mortal... I have seen pain and death beyond thine reckoning!  Mock me not with thine idle questions!\"";
    close;

L_PostFlareDart_sister:
    mesn l("Magic Sword");
    mes "\"My sister...?  Alas!  I remember now; abandoned she was, just as I; buried in stone, never to be wielded again.\"";
    mes "\"Wherefore did she send thee?\"";
    next;
    menu
        "She asked me to ask you to teach me a spell.", L_PostFlareDart_teach;

L_PostFlareDart_teach:
    mesn l("Magic Sword");
    mes "\"Beware, mortal... the only spells I can teach thee are those of the school of war. Dark and dreary spells, that lot!  Pain and misery is all they bring...\"";
    next;
    mesn l("Magic Sword");
    mes "The sword's voice is growing apprehensive.";
    mes "\"Once a spell has been learned, it cannot be taken back, no more than a death can be undone. So be careful, mortal... dost thou truly wish to know the secrets of thus destructive power?\"";
    next;
    menu
        "Yes.", L_Next1,
        "No.", L_close;

L_Next1:
    mesn l("Magic Sword");
    mes "\"So thou art bound to the path of War, as am I, as is my sister...\"";
    next;
    mesn l("Magic Sword");
    mesq l("So be it, fellow warrior. Hear the incantation for the blade spell: '%s'", b("Chiza"));
    mes "\"Hold a knife, sharp or regular, when thou speakest it.\"";
    learnskill SKILL_CHIZA;
    @Q_status = @STATUS_LEARNED_MAGICBLADE;
    callsub S_Update_Var;
    next;
    mesn l("Magic Sword");
    mes "\"But beware... the path of war that thou hast embarked upon is one from which few return. May luck be on thy side...\"";
    close;

L_PostFlareDart_teach2:
    mesn l("Magic Sword");
    mes "\"Seek out my sister, and leave me alone in my sorrows.\"";
    next;
    goto L_close;

L_close:
    close;

L_L2_W11:
    mesn l("Magic Sword");
    mes "\"Thou hast returned. That must mean that thy wish to learn the magic of war is still alive?\"";
    next;
    menu
        "No, I just wanted to say `hi'.", L_Farewell2,
        "Yes, teach me more!", L_Next2;

L_Next2:
    mesn l("Magic Sword");
    mes "\"If that is thou wishest, I shall not stop thee. But do not expect to find merriment down this road.\"";
    mes "\"I must ask that thou sacrificest five thousand monster points for this, however.\"";
    menu
        "No, I don't want that.", L_close,
        "Very well.", L_Next3;

L_Next3:
    if (Mobpt < 5000)
        goto L_lacking_mobpoints;
    mesn l("Magic Sword");
    mes "\"So be it, then.\"";
    mes "[1000 experience points]";
    Mobpt = Mobpt - 5000;
    getexp 1000, 0;
    @Q_status = @Q_status + 1;
    callsub S_Update_Var;
    next;
    mesn l("Magic Sword");
    mes "\"The spell I shall teach thee is the hail of arrows spell. It will make arrows fall down from the heavens unto thy enemies.\"";
    next;
    mesn l("Magic Sword");
    mesq l("Take %s arrows, sprinkle sulphur powder over them, and then speak '%s'. Throw them high up in the air, and watch the hail unfold before thy feet.", l("fifteen"), b("Frillyar"));
    learnskill SKILL_FRILLYAR;
    close;

L_L2_almost_done:
    mesn l("Magic Sword");
    mesq l("Return to my sister now. I expect that she shall teach thee one more spell.");
    close;

L_lacking_mobpoints:
    mesn l("Magic Sword");
    mes "\"Thou lackest the monster points needed to prove thy worthiness. I shall not reveal more to thee until thou hast slain more monsters.\"";
    close;

L_Farewell2:
    mesn l("Magic Sword");
    mesq l("Please leave me in peace.");
    close;

S_Update_Var:
    QUEST_MAGIC = (QUEST_MAGIC & ~(@Q_MASK) | (@Q_status << @Q_SHIFT));
    return;
}