summaryrefslogtreecommitdiff
path: root/world/map/npc/002-4/naem.txt
blob: 398ef514a2b553363982a3ad4e568dbfd920cb6a (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
// Variables used:
// - nibble 4 and 5 of QUEST_SouthTulimshar
// - in FLAGS, bits FLAG_GOT_NAEM_GLOVES and FLAG_OPENED_UNDERGROUND

002-4.gat,91,96,6|script|Naem|109,
{
    // This NPC previously used the variable TMW_Quest
    callfunc "ClearVarTMW_Quest";

    set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);

    if (FLAGS & FLAG_GOT_NAEM_GLOVES) goto L_Naem_Complete;
    if (FLAGS & FLAG_OPENED_UNDERGROUND) goto L_Naem_Gloves;
    if (@state == 22) goto L_Naem_Code;
    if (@state == 21) goto L_Naem_Lt;
    if (@state == 20) goto L_Naem_Memory;
    if ((@state > 17) && (@state < 19))
        goto L_Naem_Great;
    if (@state == 17) goto L_Naem_Waits_3;
    if (@state == 16) goto L_Naem_Help_3;
    if (@state == 15) goto L_Naem_Waits_2;
    if (@state == 14) goto L_Naem_Help_2;
    if (@state == 13) goto L_Naem_Waits_1;
    if (@state == 12) goto L_Naem_Help_1;
    if (@state == 10) goto L_Naem_Cool;
    if (@state == 9) goto L_Naem_Okay;

    mes "[Naem]";
    mes "\"I'm just mining away here.  Lots of work to do.\"";
    goto L_Close;

L_Naem_Okay:
    set @state, 10;
    callsub S_Update_Var;
    mes "[Naem]";
    mes "\"Oh, hello there.  Nickos wanted you to check on me? Yeah, you can tell him I'm okay.\"";
    goto L_Close;

L_Naem_Cool:
    mes "[Naem]";
    mes "\"Yeah, I'm cool.  Just mining away here.\"";
    goto L_Close;

L_Naem_Help_1:
    set @state, 13;
    callsub S_Update_Var;
    mes "[Naem]";
    mes "\"Oh, you are here to help move my bags?  Cool, I've got a few ready to go.  Go ahead and take this one!\"";
    next;
    mes "Naem hands you a bag of ore.";
    next;
    mes "[Naem]";
    mes "\"After you deliver that one to Nathan, come on back, I've got a couple more ready to go.\"";
    goto L_Close;

L_Naem_Waits_1:
    mes "[Naem]";
    mes "\"After you deliver that bag of ore to Nathan, come on back, I've got a couple more ready to go.\"";
    goto L_Close;

L_Naem_Help_2:
    set @state, 15;
    callsub S_Update_Var;
    mes "Naem gives you a bag of ore.";
    next;
    mes "[Naem]";
    mes "\"Just one more after this one and we'll be all caught up!\"";
    goto L_Close;

L_Naem_Waits_2:
    mes "[Naem]";
    mes "\"Just one more bag of ore after the one you got and we'll be all caught up!\"";
    goto L_Close;

L_Naem_Help_3:
    set @state, 17;
    callsub S_Update_Var;
    mes "[Naem]";
    mes "Hands a bag of ore to you.";
    next;
    mes "\"Last one!\"";
    goto L_Close;

L_Naem_Waits_3:
    mes "[Naem]";
    mes "\"You got my last sack already.  Just give it to Nathan and we'll have caught up.\"";
    goto L_Close;

L_Naem_Great:
    mes "[Naem]";
    mes "\"Hi ho!  It's off to work I go!  I work every day for meager pay, a miner's life for me...\"";
    goto L_Close;

L_Naem_Memory:
    mes "You see Naem grimacing in pain as you approach.";
    next;
    mes "[Naem]";
    mes "\"Oh, my head!  Some rocks fell on me and bonked me pretty good.  I'm still a little sore.\"";
    menu
        "Don't you have a key so I can go to the underground palace?", L_Naem_Palace_No,
        "You should be more careful.", L_Naem_Duh;

L_Naem_Duh:
    mes "[Naem]";
    mes "\"I guess I should...\"";
    goto L_Close;

L_Naem_Palace_No:
    set @state, 21;
    callsub S_Update_Var;
    mes "[Naem]";
    mes "\"Oh no!  I lost the key!  Don't worry though, talk to Lieutenant Dausen about getting the spare key.\"";
    goto L_Close;

L_Naem_Lt:
    mes "[Naem]";
    mes "\"I hurt my head pretty bad.  I also lost my key.  If you want to get into the underground palace, you'll have to talk to Lieutenant Dausen about getting the spare.\"";
    goto L_Close;

L_Naem_Code:
    mes "[Naem]";
    mes "\"Oh, you got the key.  That is good!  But my head still hurts...  All I remember about the code is you have to put the key into the key hole buttons around the mine in a certain order and turn them in a certain order and it will unlock the underground palace.  Sorry, that's all I have for you.  Good luck!\"";
    goto L_Close;

L_Naem_Gloves:
    getinventorylist;
    if (@inventorylist_count == 100)
        goto L_Naem_TooMany;
    set FLAGS, FLAGS | FLAG_GOT_NAEM_GLOVES;
    getitem "MinerGloves", 1;
    mes "[Naem]";
    mes "\"Hey, good job on getting that together!  Take these gloves, they might prove useful in the underground palace.\"";
    goto L_Close;

L_Naem_TooMany:
    mes "[Naem]";
    mes "\"You have too many items for me to give you a reward.\"";
    goto L_Close;

L_Naem_Complete:
    mes "[Naem]";
    mes "\"Yo-ho-ho, a miner's life for me!\"";
    goto L_Close;

L_Close:
    set @state, 0;
    close;

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