summaryrefslogtreecommitdiff
path: root/npc/021-1/yeti.txt
blob: 77215302b26ce5f0cc5dcad8362621b7514a4850 (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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
// TMW2 script.
// Authors:
//    Jesusalva
// Description:
//    Controls the Cindy Gateway quest node.
//    Also controls Watch Spot Yetis.

021-1,246,206,0	script	Yeti#0211Cindy	NPC_YETI,{
    // Is this the right Yeti?
    .@n=getq(NivalisQuest_Well);

    if (.@n < 2)
        goto L_NoQuest;

    CINDY_PLAYER_STRUCK=false;
    // Alright, now we need to cycle Cindy quest to decide if this NPC will have
    // a special behavior or not.
    .@q=getq(NivalisQuest_Cindy);

    if (.@q == 1) goto L_Assigned;      // Quest Assigned
    if (.@q == 2) goto L_Report;        // Quest (Sub) Accepted
    if (.@q <= 5) goto L_Instructions;  // Quest (Sub) Completed
    if (.@q >= 6) goto L_Complete;      // Quest completed at least once.

L_Thanks:
    mesn;
    mesq l("Hey, thanks for saving me. You know, from the well.");
    next;
    mesn strcharinfo(0);
    mesq l("You're wel-- Wait, it was you who was trapped on the well near Miler's house?!");
    next;
    mesn;
    mesq l("Yes, exactly. Thanks for the rescue. I must guard this area from the caves, if you need, just call me.");
    close;

L_Assigned:
    mesn;
    mesq l("Hello my friend.");
    next;
    select
        l("Hi."),
        l("Hm, do you perhaps know where to find Cindy and could help me?"),
        l("Die, your evil Yeti!");
    mes "";
    switch (@menu) {
        case 1: goto L_Thanks;
        case 2:
            mesn;
            mesq l("Hm, would \"Cindy\" be a small, little girl, kidnapped by some sturdy-looking rogue Yetis?");
            next;
            mesn strcharinfo(0);
            mesq l("Probably.");
            next;
            mesn;
            mesq l("Well, yes, I've saw them heading off to the Yeti King room. Lately, many Yetis have been uprising against your majesty.");
            next;
            mesn;
            mesq l("Unfortunately, @@s are not welcome on the Yeti Domains. You're no exception.", get_race());
            next;
            mesn strcharinfo(0);
            select
                l("Alright, good bye."),
                l("Can't I do anything, though?"),
                l("Tell me how or I'll kill you!");
            mes "";
            if (@menu == 3) {
                mesn;
                mesq l("Now, that's unfortunate. I don't think you can hit me from where you are.");
                next;
                mesn;
                mesq l("Besides, I know these caves like the back of my hand. You would have a hard time tracking me down.");
                next;
                mesn;
                mesq l("In fact, you would get lost and killed. If I were you, I would avoid the Death Penalty. It's high, ya know?");
            } else if (@menu == 2) {
                mesn;
                mesq l("Well, the Yeti King has went away to the cliffs north of this one. He'll get back here very hungry.");
                next;
                mesn;
                mesq l("I am his right-hand Yeti, so I could grant you passage to his Throne Room to slay the rogue Yetis...");
                next;
                mesn;
                mesq l("...But saving me won't be enough, so build trust by the kind gift of @@ @@. I'll be waiting.", 50, getitemlink(MoubooSteak)); // A normal Steak could do, but...
                setq NivalisQuest_Cindy, 2;
            }
            close;
        case 3:
            mesn;
            mesq l("That's rude. I never did anything to you.");
            next;
            mesn;
            mesq l("Please get moving, @@. I do not mean any harm to you.", get_race());
            close;
    }
    close;

L_Report:
    mesn;
    mesq l("Did you brought us a kind gift of good will, on the worth of %d %s, to offer to our King?", 50, getitemlink(MoubooSteak));
    next;
    select
        rif(countitem(MoubooSteak) >= 50, l("Yes, here they are.")), // Demure was here
        l("Not yet.");
    mes "";
    if (@menu == 2) {
        mesn;
        mesq l("Then please bring me this, so I can help you back.");
        close;
    }
    delitem MoubooSteak, 50;
    getexp 120000, 0; // roughly 30% from needed EXP. This quest IS boring.
    setq NivalisQuest_Cindy, 3;
    mesn;
    mesq l("Great. I hereby task you to kill the rogue Yetis on the Yeti King Throne Room. Of course, you won't be able to leave until all of them are dead.");
    next;
    mesn;
    mesq l("Getting there is tricky, so listen carefully to the instructions:");
    next;
L_Instructions:
    mesn l("ROGUE YETI SLAYING REQUEST");
    mesc l("Mission: Kill all rogue Yetis on the Throne Room. You won't be able to leave until all of them are dead.");
    next;
    mesc l("Directions: ");
    mesc l("You must flip all 5 switches on this cave, and then walk accross the cave blocked with an etheral crystal.");
    mesc l("First timers will be lead to somewhere random on this cave to keep intruders out. Just walk there again while all switches are still active.");
    mesc l("This random cave-warping only happens once, too.");
    mesc l("The Throne Room is the last room. You can reactive any switch which turns itself off.");
    next;
    mesc l("Notes: ");
    mesc l("To unlock the cell on the middle of the throne room, you need to flip all 5 switches there.");
    mesc l("You need a @@ to flip the switches on the Throne Room, don't forget to bring at least five.", getitemlink(TreasureKey));
    mesc l("EVERY switch on EVERY cave will unflip itself after about 2 minutes. So don't waste your time."), 1;
    mesc l("Keep in mind that %s are weak, baby Yetis, so kill them as well!" % getmonsterlink(Moggun));
    next;
    mesn;
    mesq l("Good luck. %%1");
    close;

L_Complete:
    //mesc l("ToDo"), 1;
    mesn;
    mesq l("Hello my friend. Thanks for slaying the rogue Yetis.");
    mesc l("Do you want to read again the instructions?");
    next;
    if (askyesno() == ASK_YES) {
        goto L_Instructions;
    }
    close;

// The other NPC
L_NoQuest:
    if (TUTORIAL)
        dispbottom l("I might want to ask an Yeti specialist about this. Maybe Celestia?");
    dispbottom l("Who's Mercury? Maybe I'm missing something? Where could he have went?");
    CINDY_PLAYER_STRUCK=true;
    @yetiagro=@yetiagro+1;
    if (@yetiagro > 5) goto L_Hit;
    if (@yetiagro > 3) goto L_Warning;
    if (@yetiagro > 1) goto L_Disrupt;
    goto L_Walking;

L_Walking:
    mesn;
    mesq l("Grr, where's Mercury... He was supposed to keep watch over this spot... It was meant to be my free time!");
    next;
    mesn;
    mesq l("And you, @@... You better get walking. Soon.", get_race());
    if (TUTORIAL)
        mesc l("WARNING: Angela Quest cannot be finished without finishing Mercury sidequest first."), 1;
        if (!.@n) {
            mesc l("(...This probably could have been a great hint... if I knew who Mercury in first place %%L)");
            mesc l("I suggest we ignore the hint and ask %s about it instead.", b("Celestia"));
        }
    close;

L_Disrupt:
    npctalk3 l("Grrr... Why are @@ on this cave?! Where did Mercury went after all?!", get_race());
    end;

L_Warning:
    npctalk3 l("Stupid @@, get out of this cave before I lose my patience! Mercury... Show up already!", get_race());
    end;

L_Hit:
    npctalk3 l("DIE, SCUM!");
    @yetiagro=0;
    percentheal -90, -100;
    close;

OnInit:
    .sex=G_OTHER;
    .distance=20;
    end;
}






/////////////////////////////////////////////////////// Random Lookout Yetis
021-1,144,203,0	script	Yeti#0211Guard	NPC_YETI,{
    dispbottom l("I better don't bother this Yeti, before it kills me.");
    @yetiagro=@yetiagro+1;
    if (@yetiagro > 5) goto L_Hit;
    if (@yetiagro > 3) goto L_Warning;
    if (@yetiagro > 1) goto L_Disrupt;
    goto L_Walking;

L_Walking:
    mesn;
    mesq l("You, @@... You better get walking. Soon.", get_race());
    close;

L_Disrupt:
    mesn;
    mesq l("Grrr... Why are @@ on this cave?! Begone, before I lose my patience!", get_race());
    close;

L_Warning:
    mesn;
    mesq l("Stupid @@, get out of this cave before I lose my patience!", get_race());
    close;

L_Hit:
    mesn;
    mesq l("DIE, SCUM!");
    percentheal -90, -100;
    @yetiagro=0;
    close;

OnInit:
    .sex=G_OTHER;
    .distance=20;
    end;
}




//021-1,25,298,0	duplicate(Yeti#0211Guard)	Yeti#0211G2	NPC_YETI