summaryrefslogblamecommitdiff
path: root/npc/019-1/well.txt
blob: 1e6dc3a6fd158308c031f1ff11ad162a055596e5 (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                                   


                                                                                  







                                                         




                                                                        




                                               




















                                                             

          



                                
                        




                                        






                                                                                                            
                                                     



                                                                              
                  

















































                                                                                                                                






                   
// TMW2/LOF Script.
// Author:
//    Jesusalva
// Description:
//  Better to skip this quest. It is too poor and would require more work,
//  eg. rope and something to make the player take part on it... Probably?
//  TODO: We could also throw random stuff (dig script), and use makeitem() to
//  make it pop at Terranite Cave, near the lake, suggesting that's where the water
//  comes from.
//  TODO: Yeti related to Angela quest. Ever-cicle logic - sep 11st.
//        Friendly, safe because water on Terranite Cave is too cold, but aware of
//        Terranite.

019-1,110,101,0	script	Well#Nivalis	NPC_SWORDS_SIGN,{
    mesc l("ERROR, missing sprite: Snowland.Well"), 1;
    mesc l("Blame Saulc"), 1;
    mesc "-------------------------------------", 1;

    // Begin here
    .@q=getq(NivalisQuest_Well);
    mesn l("The Self-Serving Ice Well!");
    mesc l("Hello, my name is Mahid, and this well belongs to me!");
    mesc l("You are allowed to fill your bottles, but BE SURE TO PAY!");
    mesc l("Otherwise, ##BYOU'LL DIE.##b Have a nice day!");
    next;
    if (.@q == 1) {
        mesn l("???");
        mesq l("Hey, is somebody over there?");
        mes "";
    }

    menu
        l("Fill Water Bottles"), L_Bottle,
        rif(.@q == 2, l("Jump inside!")), L_Reckless,
        rif(.@q == 1, l("Steal bucket!")), L_Bucket,
        rif(.@q != 1, l("Throw something inside!")), L_Throw,
        l("Leave."), -;
    close;

// Fill a water bottle
L_Bottle:
    mes "";
    mesc l("Temporaly out of order."), 1;
    close;

// Jump to Terranite Cave (requires 55 vitality minimum)
L_Reckless:
    closedialog;
    warp "015-6", 363, 109;
    percentheal -155+readparam(bVit), 0;
    dispbottom l("Ouch! That was kinda reckless!");
    close;

// Easter Egg
L_Bucket:
    mes "";
    percentheal -rand(10,20), 0;
    mesn strcharinfo(0);
    mesq l("Ouch, the bucket BITE me!");
    close;

// Main Quest
L_Throw:
        mes "##B" + l("Drag and drop an item from your inventory.") + "##b";

        .@id = requestitem();

        // If ID is invalid, there's not enough items, it is bound = Cannot bury
        if (.@id < 1 || countitem(.@id) < 1 || checkbound(.@id) || !getiteminfo(.@id, ITEMINFO_MAXCHANCE)) {
            if (checkbound(.@id))
                mesc l("You cannot drop this item!");
            else if (!getiteminfo(.@id, ITEMINFO_MAXCHANCE))
                mesc l("This item is too precious, you cannot part with it!");
            else
                mesc l("You give up.");
            close;
        }
        // Delete item and spawn it at Terranite Cave (an Angry Yellow Slime might steal it)
        delitem .@id, 1;
        makeitem .@id, 1, "015-6", any(362,363), any(110, 112, 114);
        // Now we check if quest must start
        if (!.@q)
            goto L_Quest;
    close;

// Quest Node
L_Quest:
    mesn l("???");
    if (getiteminfo(.@id, ITEMINFO_WEIGHT) > 1000)
        mesq l("Ouch! That's heavy!");
    else if (getiteminfo(.@id, ITEMINFO_TYPE) == IT_HEALING)
        mesq l("Mhm, this looks healthy.");
    else if (getiteminfo(.@id, ITEMINFO_TYPE) == IT_AMMO)
        mesq l("This is useless for me!");
    else
        mesq l("Who is throwing stuff at me?!");
    next;
    select
        l("Who are you?"),
        l("How did you get down there?"),
        l("Do you need help?"),
        menuaction(l("Leave."));
    mes "";
    mesn;
    switch (@menu) {
        case 1: mesq l("I'll talk about who I am after leaving the well."); break;
        case 2: mesq l("I don't remember. I guess somebody threw me here!"); break;
        case 3: mesq l("I certainly can't get out on my own."); break;
        default: mesq l("..Anyone there?"); close; break;
    }
    next;
    do {
        select
            l("I'll call someone to aid you."),
            l("Is it too deep?"),
            l("Couldn't you climb the rope?"),
            menuaction(l("Leave."));
        mes "";
        mesn;
        switch (@menu) {
            case 1: mesq l("Please do, my friend."); setq NivalisQuest_Well, 1; break;
            case 2: mesq l("It's over a hundred meters in depth. There is some land here, but I'm afraid of Terranite."); break;
            case 3: mesq l("I'm not crazy, the bucket is vicious and the rope won't withstand my weight."); break;
            default: mesq l("..Anyone there?"); close; break;
        }
    } while (@menu != 1);
    close;

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