summaryrefslogblamecommitdiff
path: root/npc/halloween/2010/gak.txt
blob: f1ceaf2c5d1dc9f13a5196e98f3ae03e8d949a0b (plain) (tree)
1
                                                 



































































































































































































































































































































                                                                                                                                                                                                         
                                                                      



































































































                                                                                                                                                                                                                                                                                                       
010-1.gat,29,48,0	script	Gak	188,	{

        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("TonoriDelight") < 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;

}