summaryrefslogblamecommitdiff
path: root/npc/012-7/celestia.txt
blob: 8b524838d7fc793cdbe2ee8790a2fb54c95585bc (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11










                                                                                
                                                   






















































































































































































                                                                                                                                                                                                           

           



                    
// TMW2 Scripts
// Author:
//   gumi (TMW Org. Team)
//   Jesusalva
// Description:
//   Celestia Yeti King's quest. Designed so if you're with 4 players, all 4 can
//   summon the Yeti King, helping you while doing the quest by themselves.

// TODO: OnPCDieEvent must reset quest


012-7,35,49,0	script	Celestia	NPC_ELF_F,{
    .@q1=getq(HurnscaldQuest_Celestia);
    .@q2=getq(HurnscaldQuest_TeaParty);
    mesn;
    mesq lg("Hello, darling. I was thinking in doing a tea party.");
    next;
    mesn strcharinfo(0);
    menu
        l("Sorry, I'm more of a coffee person."), L_Coffee,
        l("What an amazing crown you have! How do I get it?!"), L_Crown,
        rif(.@q2 == 0 && BaseLevel > 30, l("Tea party! I want to participate.")), L_TeaQuest,
        rif(.@q2 == 1, l("I have some sweeties for the Tea Party!")), L_TeaCheck,
        rif(.@q2 >= 2, l("Tea party! I want to participate.")), L_TeaParty,
        rif(.@q1 == 0, l("How do you have time for tea parties?!")), L_MainQuest,
        rif(.@q1 == 99, l("I want to try again.")), L_MainQuest;

L_Coffee:
    mes "";
    mesn;
    mesq l("Hmpf! Coffee is an heresy!");
    // Except I love coffee ~ Jesusalva
    close;

L_Crown:
    mes "";
    mesn;
    mesq l("Ooh, this nice shiny thing? It was an event.");
    next;
    mesn;
    mesq l("Saulc is rich, you know. He challenged a group of thirty NPCs to defeat him, whoever won would get this crown.");
    next;
    mesn;
    mesq l("Well, Andrei Sakar said it was a waste a time, and the other NPCs started fighting against themselves, so I won.");
    next;
    mesn;
    if (BaseLevel < 90)
        mesq l("...Besides, I have this nice @@ with me. I'm not low-level like you.", getitemlink(BansheeBow));
    else
        mesq l("...Besides, I have this nice @@ with me. It's a reliable bow.", getitemlink(BansheeBow));
    close;

L_MainQuest:
    if (is_admin())
        setq HurnscaldQuest_Celestia, 1;
    mesn;
    mes col("TODO, please report this error to Jesusalva.", 1);
    close;

L_TeaQuest:
    mes "";
    mesn;
    mesq l("Well, the reason why I'm not doing it already is because, you see, I lack cookies.");
    //next;
    //mesn;
    //mesq l("And anyone who hanged out on #evol-dev knows that, well... Cookies are life!");
    next;
    mesn;
    mesq l("But I can still make it without cookies, as long that you bring me some other sweeties.");
    next;
    mesn l("Item List");
    mes l("@@/20 @@", countitem(Acorn), getitemlink(Acorn));
    mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo));
    mes l("@@/20 @@", countitem(ChocolateBar), getitemlink(ChocolateBar));
    mes l("@@/15 @@", countitem(Candy), getitemlink(Candy));
    mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake));
    mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake));
    mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan));
    mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit));
    /* We can't ask for THAT many!
    mes l("@@/20 @@", countitem(ApanaCake), getitemlink(ApanaCake));
    mes l("@@/20 @@", countitem(Lollipop), getitemlink(Lollipop));
    mes l("@@/20 @@", countitem(Mashmallow), getitemlink(Mashmallow));
    mes l("@@/20 @@", countitem(TonoriDelight), getitemlink(TonoriDelight));
    mes l("@@/20 @@", countitem(EasterEgg), getitemlink(EasterEgg));
    mes l("@@/20 @@", countitem(ChocolateBunny), getitemlink(ChocolateBunny));
    mes l("@@/20 @@", countitem(FrozenYetiTear), getitemlink(FrozenYetiTear));
    mes l("@@/20 @@", countitem(DeliciousCookie), getitemlink(DeliciousCookie));
    */
    setq HurnscaldQuest_TeaParty, 1;
    close;

L_TeaCheck:
    mesn l("Item List");
    mes l("@@/20 @@", countitem(Acorn), getitemlink(Acorn));
    mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo));
    mes l("@@/20 @@", countitem(ChocolateBar), getitemlink(ChocolateBar));
    mes l("@@/15 @@", countitem(Candy), getitemlink(Candy));
    mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake));
    mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake));
    mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan));
    mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit));
    next;
    select
        l("I will be back shortly."),
        l("I have all.");

    if (@menu == 1) {
        closedialog;
        goodbye;
        close;
    }
    if (countitem(Acorn) < 20 ||
        countitem(ChocolateMouboo) < 20 ||
        countitem(ChocolateBar) < 20 ||
        countitem(Candy) < 15 ||
        countitem(OrangeCupcake) < 15 ||
        countitem(CherryCake) < 10 ||
        countitem(GingerBreadMan) < 5 ||
        countitem(ChocolateBiscuit) < 2)
            goto L_Lying;

    delitem Acorn, 20;
    delitem ChocolateMouboo, 20;
    delitem ChocolateBar, 20;
    delitem Candy, 15;
    delitem OrangeCupcake, 15;
    delitem CherryCake, 10;
    delitem GingerBreadMan, 5;
    delitem ChocolateBiscuit, 2;

    getexp rand(12000, 13000), 0;
    setq HurnscaldQuest_TeaParty, 2;

    mes "";
    mesn;
    mesq l("Many thanks! I'll arrange the table.");
    close;

L_Lying:
    mesn;
    mesq l("Wha- How dare you, to lie to me!");
    // She'll try to drain all your MP. If you're not MP Full, you'll die. And will have EXP penalty, of course.
    if (Sp == MaxSp)
        percentheal 0, -100;
    else
        percentheal -100, 0;
    close;

// begin: Gumi Script
L_TeaParty:
    mes "";
    mesn;
    mesq l("Wonderful, I am happy to have you over. Lets get things started with some puerh tea.");
    next;
    mes col("Celestia hands you a cup filled with some type of tea that is unlike anything you have seen before.", 9);
    mes col("It has a very dark color and an unusual aroma reminiscent of a moist forest.", 9);
    next;
    mes col("For a moment you wonder if Celestia might have gotten confused and tossed in a handful of forest dirt into the teapot.", 9);
    mes col("You ponder whether or not it would be wise to drink it.", 9);
    menu
        l("Uh are you sure this is fit to drink?"), L_QuestionTea,
        l("(Drink the tea, hoping for the best)"), L_DrinkTea;

L_DrinkTea:
    // This is easily exploitable on purpose: It's mostly to protect against flood.
    if (@tmp_teatime < gettimetick(2)) {
        percentheal 0, 15;
        @tmp_teatime=gettimetick(2)+140;
    }
    mes col("To your pleasant surprise the tea is actually quite good.", 9);
    next;
    mes col("Despite its initial dubious fragrance, the tea comes off as very smooth and mellow with a bit of natural sweetness and a touch of an earthy forest like flavour, but in a very good way.", 9);
    next;
    mes col("Clearly an exotic tea, with a refined flavor fit for a refined woman such as Celestia.", 9);
    close;

L_QuestionTea:
    mesq l("Yes, did you really think I was some kind of monster that would try to poison you in my own house?");
    mes l("##a(it would be way too messy anyway)##0");
    next;
    mes col("Celestia then picks up the cup of tea and drinks it in front of you to demonstrate that it is not only harmless but also quite delectable.", 9);
    close;
// end: Gumi Script


OnInit:
    .@npcId = getnpcid(0, .name$);
    setunitdata(.@npcId, UDT_HEADTOP, ValentineDress);
    setunitdata(.@npcId, UDT_HEADMIDDLE, MurdererCrown);
    setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
    setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots
    setunitdata(.@npcId, UDT_HAIRSTYLE, 19);
    setunitdata(.@npcId, UDT_HAIRCOLOR, 10);

    npcsit;

    .sex = G_FEMALE;
    .distance = 5;

}