summaryrefslogtreecommitdiff
path: root/world/map/npc/001-1/mikhail.txt
blob: 63f29353306f2971b894bfb9a1384fddd2005b10 (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
// Variables used: nibble 0 of QUEST_SouthTulimshar

001-1.gat,54,43,0|script|Mikhail|120,
{
    // This NPC previously used the variable TMW_Quest
    callfunc "ClearVarTMW_Quest";

    set @state, ((QUEST_SouthTulimshar & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);

    if (@state >= 6) goto L_Done;
    if (@state == 5) goto L_Progress;
    if (@state == 4) goto L_Start;
    goto L_Convince_Mikhail_First;

L_Convince_Mikhail_First:
    mes "[Mikhail]";
    mes "\"Hello...\"";
    mes "";
    mes "It seems that the boy would like to say more, but does not dare to open up to you. Maybe you should help someone else first, so that he sees your intentions are good.";
    goto L_Close;

L_Start:
    mes "[Mikhail]";
    mes "\"My grandma sent me to get five Maggot Slimes from the maggots in the desert, but they scare me so bad!\"";
    next;
    mes "\"You look like a nice person.  Would you go get them for me?\"";
    menu
        "Of course, I'll go get them for you.", L_accept,
        "I've got other things to do right now.", L_Close;

L_accept:
    mes "[Mikhail]";
    mes "\"Thank you so much!  I'll wait for you here.\"";
    set @state, 5;
    callsub S_Update_Var;
    close;

L_Progress:
    mes "[Mikhail]";
    mes "\"Did you bring me the five Maggot Slimes I need?\"";
    next;
    menu
        "Yes, here they are, kiddo!", L_try,
        "Not yet, but I'll be back soon.", L_Close;

L_try:
    if (countitem("MaggotSlime") >= 5)
        goto L_get;
    mes "[Mikhail]";
    mes "\"It doesn't look like you have them all...\"";
    goto L_Close;

L_get:
    delitem "MaggotSlime", 5;
    getexp 100, 0;
    set @state, 6;
    callsub S_Update_Var;
    mes "[Mikhail]";
    mes "\"Ooh!  Thank you so much!  I can get back to my grandma now!\"";
    goto L_Close;

L_Done:
    mes "[Mikhail]";
    mes "\"Thanks again for helping me get those Maggot Slimes!\"";
    goto L_Close;

L_Close:
    set @state, 0;
    close;

S_Update_Var:
    set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_0_MASK) | (@state << NIBBLE_0_SHIFT));
    return;
}