summaryrefslogtreecommitdiff
path: root/npc/halloween/2010/gak.txt
blob: e15ae464f29c4bfe0392b8592f7569718725f67f (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
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
010-1.gat,29,48,0        script        Gak        187,    {

        if (hween10 == 1) goto L_Knows_Gak;
        if (hween10 == 2) goto L_Gak_Has_Tongue;
        if (hween10 == 3) goto L_Bones_Check;
        if (hween10 == 4) goto L_Request_Sweets;
        if (hween10 == 5) goto L_Collecting_Sweets;

        mes "[Broken Skeleton]";
        set hween10, 1;
        mes "";
        mes "\"Gak... gak, gak! Gak gak gak gak!\"";
        close;

L_Knows_Gak:
        if (countitem("Tongue") > 0) goto L_Has_Tongue;
        mes "[Gak]";
        mes "";
        mes "\"Gak gak! Gak gak, gak gak gak!\"";
        close;

L_Has_Tongue:
        mes "[Gak]";
        mes "";
        mes "The skeleton notices a slimy, dead tongue you have with you, and eyes it eagerly.";
        next;
        mes "[Gak]";
        mes "";
        mes "At least, you assume he is eager. \"Gak gak gak! Gak gak gak gak GAK GAK!\"";
        next;
        menu
                "Give the tongue to him", L_Give_Tongue,
                "Taunt him by showing him the tongue, but not giving it", L_Give_Tongue_Die,
                "Walk away", -;
        close;

L_Give_Tongue:
        if (countitem("Tongue") < 1) goto L_Tongue_Gone_Die;
        delitem "Tongue", 1;
        set hween10, 2;
        mes "[Gak]";
        mes "";
        mes "The skeleton grabs the tongue from you and shoves it into his mouth. After stretching his jaw for some moments, he grins at you unpleasantly.";
        next;
        mes "[Gak]";
        mes "";
        mes "\"Ssso! What bringsss you here, mortal?\"";
        next;
        menu
                "I just chanced upon you here, and figured you could use a tongue.", L_Thanks,
                "The Hallowe'en event is FINALLY here, of course I'm going to play it.", L_Whut,
                "Nothing.", -;
        close;

L_Tongue_Gone_Die:
        mes "[Gak]";
        mes "";
        mes "He reaches out for the tongue, but then realises you don't have it. With an angry a look on his face as a skeleton can have, he slashes at you with his remaining arm.";
        goto L_Die;

L_Give_Tongue_Die:
        mes "[Gak]";
        mes "";
        mes "Angrily, the skeleton reaches out and claws you with his remaining arm.";
        if (countitem("Tongue") < 1) goto L_Die;
        next;
        delitem "Tongue", 1;
        mes "[Gak]";
        mes "";
        mes "As you fall, he takes the tongue from you anyway.";
        set hween10, 2;
        goto L_Die;

L_Die:
        close2;
        itemheal -Hp -1, 0;
        end;

L_Thanks:
        mes "[Gak]";
        mes "";
        mes "\"Well, that wasss mighty thoughtful of you, friend... I wonder if perhapsss you could do me another favour?\"";
        next;
        menu
                "Sure! Anything you want.", L_Sure,
                "I'll be right, thanks.", -;
        close;

L_Whut:
        mes "[Gak]";
        mes "";
        mes "\"What?\"";
        close;

L_Gak_Has_Tongue:
        mes "[Gak]";
        mes "";
        mes "\"Hello again, little friend. Could you posssibly do me another favour?\"";
        next;
        menu
                "I sure can, what is it?", L_Sure,
                "Uh, no thanks.", -;
        close;

L_Sure:
        mes "[Gak]";
        mes "";
        mes "\"It wasss nice if you to bring me thisss tongue, but asss you can sssee I still have a few things missing.\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"Maybe you could bring me a few bonesss so I could patch myssself up?\"";
        next;
        menu
                "I'm on it!", L_Bones,
                "Nah, that sounds a bit boring.", -;
        close;

L_Bones:
        set hween10, 3;
        mes "[Gak]";
        mes "";
        mes "\"Wonderful! I can't wait until I can properly walk around attacking thingsss again.\"";
        close;

L_Bones_Check:
        mes "[Gak]";
        mes "";
        mes "\"Hallo again. Have you brought me any bonesss?\"";
        next;
        setarray @menuitems$, "", "", "", "", "";
        set @c, 0;

        if (countitem("Bone") < 5) goto L_bones_four;
        set @menuitems$[@c], "Take five bones.";
        set @menuid[@c], 0;
        set @c, @c + 1;

L_bones_four:
        if (countitem("Bone") < 4) goto L_bones_three;
        set @menuitems$[@c], "Take four bones.";
        set @menuid[@c], 1;
        set @c, @c + 1;

L_bones_three:
        if (countitem("Bone") < 3) goto L_bones_two;
        set @menuitems$[@c], "Take three bones.";
        set @menuid[@c], 2;
        set @c, @c + 1;

L_bones_two:
        if (countitem("Bone") < 2) goto L_bones_one;
        set @menuitems$[@c], "Take two bones.";
        set @menuid[@c], 3;
        set @c, @c + 1;

L_bones_one:
        if (countitem("Bone") < 1) goto L_bones_menu;
        set @menuitems$[@c], "Take one bone.";
        set @menuid[@c], 4;
        set @c, @c + 1;

L_bones_menu:
        set @menuitems$[@c], "I don't have any bones.";
        set @menuid[@c], 5;
        set @c, @c + 1;
        menu
                @menuitems$[0], -,
                @menuitems$[1], -,
                @menuitems$[2], -,
                @menuitems$[3], -,
                @menuitems$[4], -,
                @menuitems$[5], -,
                @menuitems$[6], -;
        set @menu, @menu -1;
        if (@menu >= @c) close;
        if (@menuid[@menu] == 5) goto L_offer_no_items;
        mes "[Gak]";
        mes "";
        mes "Ssso many? Jussst what I needed. Let me sssee if they are sssuitable...";
        next;

        if (@menuid[@menu] == 0) set @bonecount, 5;
        if (@menuid[@menu] == 1) set @bonecount, 4;
        if (@menuid[@menu] == 2) set @bonecount, 3;
        if (@menuid[@menu] == 3) set @bonecount, 2;
        if (@menuid[@menu] == 4) set @bonecount, 1;
        if (countitem("Bone") < @bonecount) goto L_Not_Enough_Bones;

        delitem "Bone", @bonecount;
        set @bonecount, @bonecount + 1;
        set @hween10_givebones, 0;

// in a rush, raising and then lowering is the best thing I can think of to make the loop work properly.

L_Bone_Loop:
        set @bonecount, @bonecount - 1;
        if @bonecount < 1 goto L_Bones_Feedback;
        set @temp1, rand(@bonecount + 5);
        if @temp1 > @bonecount goto L_Bone_Loop;
        set @hween10_givebones, @hween10_givebones + 1;
        goto L_Bone_Loop;

L_Not_Enough_Bones:
        mes "[Gak]";
        mes "";
        mes "\"Hey... you don't have that many bonesss!\"";
        close;

L_offer_no_items:
        mes "[Gak]";
        mes "";
        mes "\"Sssucch a pity...\"";
        close;

L_Bones_Feedback:
        if (@hween10_givebones == 0) goto L_Bones_Feedback_None;
        mes "[Gak]";
        mes "";
        mes "\"Hmm... I think I can ussse " + @hween10_givebones + " of thessse bonesss.\"";
        next;
        set hween10_bonecount, hween10_bonecount + @hween10_givebones;
        if (hween10_bonecount > 7) goto L_Enough_Bones;
        mes "[Gak]";
        mes "";
        mes "\"But I ssstill need more! Pleassse bring them to me.\"";
        close;

L_Bones_Feedback_None:
        mes "[Gak]";
        mes "";
        mes "\"I can't ussse any of theesse boness. I need more!\"";
        close;

L_Enough_Bones:
        set hween10, 4;
        mes "[Gak]";
        mes "";
        mes "\"And that should be enough for my dark purposssesss.\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"Now... I wonder...\" He flicks his tongue around his dry and ancient teeth. \"I wonder if you could get me sssomething to eat?\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"All thisss hard work gathering bonesss hasss made me...\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"HUNGRY!\"";
        next;
        menu
                "Uh, what would you like to eat?", L_Request_Sweets,
                "This is a burial site, I'm sure there are plenty of worms around.", L_Worms,
                "Me too, actually. I gotta eat. Bye!", -;
        close;

L_Worms:
        mes "[Gak]";
        mes "";
        mes "\"True... but they are sssmall, and not asss sssweet asss what I'd like!\"";
        next;

L_Request_Sweets:
        mes "[Gak]";
        mes "";
        mes "\"Asss I'm sssure you know, it wasss Hallowe'en recently. I'll bet you had great time collecting sssweetsss with your friendsss, hm?\"";
        next;
        menu
                "The guy organising that was too lazy - it never happened.", L_Time_Management,
                "Well, what's it to you?", L_Leftover_Sweets,
                "You're creeping me out.", -;
        close;

L_Time_Management: 
        mes "[Gak]";
        mes "";
        mes "\"That'sss jussst too bad. People with poor time management shouldn't be put in charge of important thingsss like that.\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"But never mind. Even if you didn't get to go trick-or-treating, there will ssstill be plenty of dropped sssweets lying around.\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"People are ssso carelesss! To my benefit, of courssse. Ssso what do you sssay? Can you bring me asss many sssweetsss as you can find?\"";
        menu
                "I guess so.", L_Confirm_Sweethunting,
                "No, I'd rather eat 'em myself.", -;
        close;

L_Leftover_Sweets:
        mes "[Gak]";
        mes "";
        mes "\"Each year at Hallowe'en, all you little girlsss and boysss run about begging for candy. And each year, ssso much of it is dropped, and wasssted!\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"But I don't mind eating sssweetsss just becaussse they're a couple of weeksss old! Bring me lotsss, and you shall have a reward.\"";
        next;
        menu
                "Well, okay then.", L_Confirm_Sweethunting,
                "Wait, free sweets!? Why did no one tell me?", -;
        close;

L_Confirm_Sweethunting:
        set hween10, 5;
        mes "[Gak]";
        mes "";
        mes "\"My ssstomach groansss with anticipa - uh, well, my bonesss creak with anticipation. Tell all your little friendsss to bring my any sssweetsss they find, too: I really am VERY hungry!\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"Remember, though, and thisss isss important: the more sssweetsss YOU PERSSSONALLY bring me, the better YOUR reward will be!\"";
        close;

L_Collecting_Sweets:
        mes "[Gak]";
        mes "";
        mes "\"Ssso, do you have any sssweetsss for me?\"";
        next;
        setarray @menuitems$, "", "", "", "", "";
        set @c, 0;

        if (countitem("tondel") < 1) goto L_Sweets_Marshmallow;
        set @menuitems$[@c], "Tonori Delight.";
        set @menuid[@c], 0;
        set @c, @c + 1;

L_Sweets_Marshmallow:
        if (countitem("Marshmallow") < 1) goto L_Sweets_JellySkull;
        set @menuitems$[@c], "Marshmallow.";
        set @menuid[@c], 1;
        set @c, @c + 1;

L_Sweets_JellySkull:
        if (countitem("JellySkull") < 1) goto L_Sweets_CandyPumpkin;
        set @menuitems$[@c], "Jelly Skull.";
        set @menuid[@c], 2;
        set @c, @c + 1;

L_Sweets_CandyPumpkin:
        if (countitem("CandyPumpkin") < 1) goto L_Sweets_Menu;
        set @menuitems$[@c], "Candy Pumpkin.";
        set @menuid[@c], 3;
        set @c, @c + 1;

L_Sweets_Menu:
        set @menuitems$[@c], "I don't have any sweets.";
        set @menuid[@c], 4;
        set @c, @c + 1;
        menu
                @menuitems$[0], -,
                @menuitems$[1], -,
                @menuitems$[2], -,
                @menuitems$[3], -,
                @menuitems$[4], -,
                @menuitems$[5], -;
        set @menu, @menu -1;
        if (@menu >= @c) close;

        if (@menuid[@menu] == 0) set @giveitem$, "TonoriDelight";
        if (@menuid[@menu] == 1) set @giveitem$, "Marshmallow";
        if (@menuid[@menu] == 2) set @giveitem$, "JellySkull";
        if (@menuid[@menu] == 3) set @giveitem$, "CandyPumpkin";
        // We need something to handle what happens when we select that the character does not have any sweets
        if (@menuid[@menu] == 4) goto L_offer_no_items;

        mes "[Gak]";
        mes "";
        mes "\"How many of those do you have for me?\"";
        next;
        menu
                "Take all of them.", -,
                "One hundred of them.", -,
                "Fifty of them.", -,
                "Ten of them.", -,
                "Five of them.", -,
                "One of them.", -,
                "This many...", -;
        set @menu, @menu - 1;

        if (@menu == 0) set @givecounter, countitem(@giveitem$);
        if (@menu == 1) set @givecounter, 100;
        if (@menu == 2) set @givecounter, 50;
        if (@menu == 3) set @givecounter, 10;
        if (@menu == 4) set @givecounter, 5;
        if (@menu == 5) set @givecounter, 1;
        if (@menu == 6) input @givecounter;
        if (@menu > 6) close;
        if (countitem(@giveitem$) < @givecounter) goto L_Not_Enough_Sweeties;

        delitem @giveitem$, @givecounter;

        if (@giveitem$ == "TonoriDelight") set $hween10_tondel, $hween10_tondel + @givecounter;
        if (@giveitem$ == "Marshmallow") set $hween10_mmallow, $hween10_mmallow + @givecounter;
        if (@giveitem$ == "JellySkull") set $hween10_jelskul, $hween10_jelskul + @givecounter;
        if (@giveitem$ == "CandyPumpkin") set $hween10_canpump, $hween10_canpump + @givecounter;
        if (@giveitem$ == "TonoriDelight") set hween10_collect_tondel, hween10_collect_tondel + @givecounter;
        if (@giveitem$ == "Marshmallow") set hween10_collect_mmallow, hween10_collect_mmallow + @givecounter;
        if (@giveitem$ == "JellySkull") set hween10_collect_jelskul, hween10_collect_jelskul + @givecounter;
        if (@giveitem$ == "CandyPumpkin") set hween10_collect_canpump, hween10_collect_canpump + @givecounter;

        set hween10_collect, hween10_collect + @givecounter;

        mes "[Gak]";
        mes "";
        mes "\"Thank you for your generousss donation to my caussse. Ssso far, you and your friendsss have brought me " + $hween10_tondel + " Tonori Delightsss, " + $hween10_mmallow + " Marshmallowsss, " + $hween10_jelskul + " Jelly Ssskullsss, and " + $hween10_canpump + " Candy Pumpkinsss.\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"You persssonally have brought me " + hween10_collect + " sssweetsss.\"";
        next;
        mes "[Gak]";
        mes "";
        mes "\"But I ssstill need more! I'm ssstill HUNGRY!\"";
        close;

L_Not_Enough_Sweeties:
        mes "[Gak]";
        mes "";
        mes "\"Hey! Don't teassse me; you know very well that you don't have that many sssweetsss.\"";
        close;

}