summaryrefslogblamecommitdiff
path: root/world/map/npc/048-2/helperMReed.txt
blob: e8ef9ab40d3d2000b1f3b6bc2b3ea987cc1f02ba (plain) (tree)































































































                                                                                                                                                                                                                                                             
// Part of Blue Sage quests
// author: Jenalya
// see bluesageConfig for detailed quest description
// Kullervo asks for Reed Bundles to create paper for repairing the books
// can give second hint about both Peetu and visitor in investigation subquest

048-2.gat,104,78,0|script|Kullervo|366,{

    set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
    set @reed_amount, 20;
    set @reed_exp, 10000;

    if (QUEST_BlueSage & $@Q_BlueSageMaterialReed) goto L_Done;

    mes "[Kullervo]";
    mes "\"Oh no! What should we do now?\"";
    menu
        "What's wrong?",-;
    mes "[Kullervo]";
    mes "\"We're nearly out of paper. The new books require so much material... And it's not easy to get Reed Bundles for creating new.\"";
    if (BaseLevel < $@Q_BlueSageMinimumLevel)
        goto L_Close;
    menu
        "I have some.",-,
        "I'll try to get some.",L_Close,
        "Too bad.",L_Investigate;
    if(countitem("ReedBundle") < @reed_amount)
        goto L_NoItem;
    delitem "ReedBundle", @reed_amount;
    getexp @reed_exp, 0;
    set QUEST_BlueSage, (QUEST_BlueSage | $@Q_BlueSageMaterialReed);
    mes "[Kullervo]";
    mes "\"Thank you! That's very generous of you.\"";
    goto L_Investigate;

L_Done:
    mes "[Kullervo]";
    mes "\"Very well, now I can create more paper.\"";
    goto L_Investigate;

L_NoItem:
    mes "[Kullervo]";
    mes "\"Oh, really? Ah, it's not enough. I need " + @reed_amount + " Reed Bundles.\"";
    goto L_Close;

L_Investigate:
    if ((@investigate == 3) || (@investigate == 4)) goto L_Ask_Visitor;
    if ((@investigate == 5) || (@investigate == 8)) goto L_Ask_Helper;
    if ((@investigate == 6) || (@investigate == 7) || (@investigate == 9) || (@investigate == 10)) goto L_Ask_Both;
    goto L_Close;

L_Ask_Visitor:
    menu
        "Can you tell me something about the visitor with the mask?",L_Visitor,
        "I need to leave.",L_Close;

L_Ask_Helper:
    menu
        "What's your impression about Peetu and how he does his work?",L_Helper,
        "See you later.",L_Close;

L_Ask_Both:
    menu
        "Can you tell me something about the visitor with the mask?",L_Visitor,
        "What's your impression about Peetu and how does he do his work?",L_Helper,
        "Bye.",L_Close;

L_Visitor:
    mes "[Kullervo]";
    mes "\"Oh, yes. There was such a guy, shortly before the accident I think. He sneaked into the workshop several times, sticking his nose into stuff that shouldn't be his business. We had to sent him back to the library part at least three times.\"";
    next;
    mes "\"Maybe he was confused, not sure. He talked very strangely.\"";
    if ((@investigate != 3) && (@investigate != 6) && (@investigate != 9))
        goto L_Close;
    set @investigate, @investigate + 1;
    callfunc "updateBlueSageInvestigate";
    goto L_Close;

L_Helper:
    mes "[Kullervo]";
    mes "\"Are you asking because people say it's his fault? Listen, I know Peetu since many years now, we started our service here about the same time. We share our room and became really close friends.";
    mes "And in all this years, I never experienced him messing up anything important. He's a perfectionist. He isn't satisfied with anything minor than the best possible result when doing his work.\"";
    next;
    mes "\"I don't understand what went wrong with that spell, it just has to have another cause than Peetu. I'm worried about him, he must feel very miserable. But I can't leave my duty here.\"";
    if ((@investigate != 5) && (@investigate != 6) && (@investigate != 7))
        goto L_Close;
    set @investigate, @investigate + 3;
    callfunc "updateBlueSageInvestigate";
    goto L_Close;

L_Close:
    set @investigate, 0;
    set @reed_amount, 0;
    set @reed_exp, 0;
    close;
}