summaryrefslogtreecommitdiff
path: root/world/map/npc/008-1/hinnak.txt
blob: d16460c3e97333805de04bf7b17a3788c6ce680c (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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
// This script file contains the npc scripts for the quest to obtain a scythe.
//
// Needed: 10 Pink Antenna
// Reward: Scythe
//
// Variables used: Nibble 1 of QUEST_Hurnscald (previously QUEST_Scythe_state)

008-1,101,30,0|script|Hinnak|142
{
    set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);

    if (@inspector == 10) goto L_NohMask;
    goto L_No_NohMask;

L_No_NohMask:
    set @state, ((QUEST_Hurnscald & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT);

    if (@state == 1) goto L_Exchange;
    if (@state == 2) goto L_ThanksAgain;
    if (getequipid(equip_head) == 751) goto L_Intro_Hat;

    mes "[Farmer Hinnak]";
    mes "\"Argh! I hate them! I @#$% hate them! I @#$% hate these @#$% pinkies!\"";
    next;
    menu
        "You need some anger control therapy.", L_Close,
        "Why do you hate them?", L_Reason;

L_Intro_Hat:
    mes "The farmer lunges at you with a farming implement.";
    next;
    heal -50, 0;
    menu
        "I'm out of here.", L_Close,
        "Whoa, what are you doing?", L_Intro_Hat_Explain;

L_Intro_Hat_Explain:
    mes "[Farmer Hinnak]";
    mes "\"Sorry, you look like a pinkie. They've been destroying my fields, and I guess I got a bit worked up.\"";
    next;
    goto L_Help;

L_Reason:
    mes "[Farmer Hinnak]";
    mes "\"These @#$% beasts are jumping around in my fields destroying all my harvest.";
    mes "But they are too fast. I can't catch them.\"";
    next;
    menu
        "Want me to help you?", L_Help,
        "Well, life ain't fair.", L_Close;

L_Help:
    mes "[Farmer Hinnak]";
    mes "\"Yes, you look quite fast. Maybe you can catch some of them. That will pay them a lesson.";
    mes "Slay some of them and bring me 10 of their antennae.\"";
    set @state, 1;
    callsub S_Update_Mask;
    next;
    menu
        "Sure, I'm on my way", L_Close,
        "How much is this worth to you?", L_Reward;

L_Reward:
    mes "[Farmer Hinnak]";
    mes "\"Well, I can't offer you much. But I got an old scythe laying around. Maybe you can use it as a weapon.\"";
    goto L_Close;

L_Exchange:
    if (getequipid(equip_head) != 751)
        goto L_Exchange_Start;
    mes "The farmer glares at your hat.";
    next;
    goto L_Exchange_Start;

L_Exchange_Start:
    mes "[Farmer Hinnak]";
    mes "\"Have you got the 10 antennae?\"";
    next;
    menu
        "Not yet, but I am working on it.", L_Close,
        "Sure, here they are!", L_Exchange_Exchange;

L_Exchange_Exchange:
    if (countitem("PinkAntenna") < 10)
        goto L_Exchange_Notenough;
    getinventorylist;
    if (@inventorylist_count == 100 && countitem("PinkAntenna") > 10)
        goto L_Exchange_TooMany;
    delitem "PinkAntenna", 10;
    getitem "Scythe", 1;
    set @state, 2;
    callsub S_Update_Mask;
    mes "[Farmer Hinnak]";
    mes "\"Thank you very much. I've got something for you. My old scythe. Maybe you can use it as a weapon. It is a bit cumbersome but its strikes are deadly.\"";
    goto L_Close;

L_Exchange_Notenough:
    mes "[Farmer Hinnak]";
    mes "\"It doesn't look like you do.\"";
    goto L_Close;

L_Exchange_TooMany:
    mes "[Farmer Hinnak]";
    mes "\"Looks like you don't have room for this. Come back later to receive your reward. Hold on to the antennea until then.\"";
    goto L_Close;

L_ThanksAgain:
    if (getequipid(equip_head) == 751)
        goto L_ThanksHat;
    mes "[Farmer Hinnak]";
    mes "\"Good to see you again, and thanks again for helping me with the pinkies!\"";
    next;
    goto L_ThanksMenu;

L_ThanksHat:
    mes "[Farmer Hinnak]";
    mes "\"That better be a trophy on your head.\"";
    menu
        "It is.", L_Next;

L_Next:
    mes "[Farmer Hinnak]";
    mes "\"Good then. Thanks for your help with the pinkies.\"";
    goto L_ThanksMenu;

L_ThanksMenu:
    menu
        "Sure, any time!", L_Next1,
        "Anything else you want me to do?", L_Next1,
        "You're welcome. Bye!", L_Bye;

L_Next1:
    mes "[Farmer Hinnak]";
    mes "\"Actually, it's been a long day. If it's no trouble, could you get me a beer?\"";
    next;
    menu
        "Here you are.", L_GiveBeer,
        "Sure, I'll go get one. Bye!", L_Bye,
        "You shouldn't drink while working!", L_Next2;

L_Next2:
    mes "[Farmer Hinnak]";
    mes "\"Well, I'm done for the day, and I'm quite old enough to decide when I can have a beer, thank you!\"";
    next;
    menu
        "Sorry... here you are.", L_GiveBeer,
        "I don't have any.", L_NoBeer;

L_GiveBeer:
    if (countitem("Beer") < 1)
        goto L_NoBeer;
    delitem "Beer", 1;
    mes "[Farmer Hinnak]";
    mes "Hinnak takes a sip.";
    mes "\"Aaah!  Nothing like a well-deserved beer after a long day of tending the crops!\"";
    mes "\"Thanks, that was very kind of you!\"";
    next;
    mes "[Farmer Hinnak]";
    mes "He takes another sip.";
    mes "\"Thanks!  You know, I had the strangest thing happen to me. I had this patch of ground that was really clumpy; lots of clay, you see.\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"Right over there.\"";
    mes "He points to a stretch of soft, raked ground.";
    mes "\"Looks much better now, doesn't it?  But how I got there is kind-a scary...\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"I'd been trying to break it up for a while, but that kind of work is a pain. So my wife said that I should go and see the witch, just in case she knows something.\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"And sure enough I ask the witch, and she has a look at it. 'Nothing I can do', she says, 'but I can ask a friend'.\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"So the next day another witch shows up. Gorgeous woman, but when she looked at me, the scares went scuttling down my spine....\"";
    mes "\"First thing she asked was if I'm a farmer. Said her friend had told her that I needed help.\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"I show her what the problem is, and she tells me to go inside and wait.\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"Hinnak drains his beer in one long sip, then hesitates.";
    next;
    mes "[Farmer Hinnak]";
    mes "\"So I go inside. I'm barely in when it starts raining outside, pouring cats and mouboos!\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"Not so weird, perhaps, except that it was been bright and sunny just a second before!  So I rush out, my wife telling me to leave the witch alone, and I see her standing there in the middle of the rain...\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"None of the raindrops touched her, as if they was afraid!\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"Then she yells out some gobbledygook word, and out of the ground there comes a swarm of maggots, crawling and digging and climbing over each other's backs...\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"And then she turns to me!  Seeing her stare, for a moment there I think that she'll turn me into a pinkie, for sure...\"";
    next;
    mes "[Farmer Hinnak]";
    mes "\"But all she says is, 'if you'd stayed inside, you wouldn't be wet now'.\"";
    next;
    menu
        "Hahaha!", L_Sagatha_hahaha,
        "Whoah, scary...", L_Sagatha_scary,
        "What was that gobbledygook word?", L_Sagatha_word,
        "I better go now.", L_Bye;

L_Sagatha_hahaha:
    mes "[Farmer Hinnak]";
    mes "\"Yeah, funny now... But you should've seen that stare!  Ah, well, never mind.\"";
    goto L_Close;

L_Sagatha_scary:
    mes "[Farmer Hinnak]";
    mes "\"Yeah, you could say that...\"";
    mes "He stares into his empty beer jug, as if wishing it weren't empty yet.";
    goto L_Close;

L_Sagatha_word:
    mes "[Farmer Hinnak]";
    mes "\"Oh, I can't be sure... but something like '" + get(.invocation$, "summon-maggots") + "', I think.\"";
    goto L_Close;

L_NoBeer:
    mes "[Farmer Hinnak]";
    mes "\"Ah... no beer?  Oh well.\"";
    goto L_Close;

L_Bye:
    mes "[Farmer Hinnak]";
    mes "\"Bye!\"";
    goto L_Close;

L_NohMask:
    menu
        "Did you see anyone in a mask come by here at night?", L_NohMask_Mask,
        "Did you see anyone with a large satchel come by here at night?", L_NohMask_Satchel,
        "Hello.", L_No_NohMask;

L_NohMask_Mask:
    mes "[Farmer Hinnak]";
    mes "\"No. It tends to be too dark to see a mask.\"";
    goto L_Close;

L_NohMask_Satchel:
    mes "[Farmer Hinnak]";
    mes "\"Yes, I saw someone with a large sack on their back go to the mining camp.\"";
    goto L_Close;

L_Close:
    set @state, 0;
    set @inspector, 0;
    close;

S_Update_Mask:
    set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_1_MASK)) | (@state << NIBBLE_1_SHIFT);
    return;
}