summaryrefslogtreecommitdiff
path: root/npc/020-7-1/peetu.txt
blob: 35f207b7c18d9e5a02d0706ec8eb076055016399 (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
// TMW2 scripts.
// Authors:
//    Jesusalva
//    TMW Org.
// Description:
//    Peetu, gifted since birth, only 1 NPC each 100 are born mages
//
// NivalisQuest_BlueSage STRUCTURE
//  FIELD 1:
//      INVESTIGATION
//      1 - STBY OUTSIDE
//      2 - ACCESS GRANTED - But Peetu is crying too much
//      3 - Peetu was calmed down, go talk to Oskari about him
//      4 - Oskari is OK with peetu, but wanna hear from others. He also sends you
//          to ask what Peetu happened
//      5 - Adultered ingredients seems the cause, report to Elias
//      6 - Elias is now worried about a visitor. Ask people about and report.
//      7 - If everyone found the visitor, confirm Elias the worries
//      8 - Elias sent you to Oskari to inform the issue. Blue Sage probably knew all along.
//      will not advance unless everyone thinks Peetu is good.
//      9 - Oskari accepts the cause. Tells to report Peetu that it probably was
//          a saboutage, to check if the Silk Cocoon really was there.
//      10 - Peetu confirmed the saboutage. Report to Blue Sage.
//      11 - Blue Sage accepted the evidence, and explains about other sages issues.
//          It's not known who or what is behind this. He excuses for making you waste
//          your time. He asks you to return to him later, as he needs to write letters.
//      12 - QUEST COMPLETE - You collected your reward
//          Also picked up a letter for Frostia Mayor, about the incident (Main Story).
//  FIELD 2:
//      Bitwise (BS_QVISITOR)
//  FIELD 3:
//      Bitwise (BS_QHELPER)

020-7-1,122,27,2	script	Peetu	NPC_BLUESAGEWORKER_MA,{
    function pWaiting;

    function pIntro;
    function pContinue;
    function pReflection;
    function pInvestigation;
    function pComplete;

    .@q=getq(NivalisQuest_BlueSage);
    .@q2=getq2(NivalisQuest_BlueSage);
    .@q3=getq3(NivalisQuest_BlueSage);

    if (.@q <= 4)
        npctalk3 any(l("*sob sob*"), l("*crying*"));

    switch (.@q) {
        case 2:
            pIntro();
            break;
        case 3:
            pWaiting("Oskari");
            break;
        case 4:
            pReflection();
            break;
        case 5:
        case 6:
        case 7:
        case 8:
            pWaiting("Oskari");
            break;
        case 9:
            pInvestigation();
            break;
        case 10:
        case 11:
            pWaiting("Blue Sage");
            break;
        case 12:
            pComplete();
            break;
        default:
            warp "Save", 0, 0;
            percentheal -100, -100;
            end;
            break;
    }
    close;

// Here we begin
function pWaiting {
    .@name$=getarg(0, "##1##BBUG, REPORT ME: THE FLYING COW##0##b");
    mesn;
    mesc l("*sniff sniff*");
    mesq l("I'm waiting for @@ feedback... Please go talk to them! %%S", .@name$);
    close;
}

// Peetu is too upset with failing (yeah, he is that kind of perfectionist here).
// We should find a way to calm him down.
function pIntro {
    .@q=getq(NivalisQuest_BlueSage);
    .@q2=getq2(NivalisQuest_BlueSage);
    .@q3=getq3(NivalisQuest_BlueSage);
    mesn;
    mesc l("*sniff sniff*");
    next;
    select
        l("Hello Peetu."),
        rif(.@q2 >= 1, l("[Give him some salty Sea Drops?]")),
        rif(.@q2 >= 2, l("[Give him some tasty Chocolate Bar?]")),
        rif(.@q2 >= 3, l("[Give him a Mouboo Figurine to play with?]")),
        rif(.@q2 >= 4, l("[Slap his hands to surprise him and get his attention?]")),
        rif(.@q2 >= 5, l("SHUT UP PEETU, I'M ALREADY TIRED OF LISTENING YOUR CRIES!")),
        rif(.@q2 >= 5, l("I give up. You're hopeless.")),
        rif(.@q2 >= 5, l("Have you cried enough?")),
        rif(.@q2 >= 5, l("[Pat his shoulder and say everything will be fine.]")),
        rif(.@q2, l("Hi Peetu, are you calmer now?"));
    mes "";
    switch (@menu) {
        case 1:
            if (.@q2 < 1)
                setq2 NivalisQuest_BlueSage, 1;
        case 2:
            if (!countitem(SeaDrops)) {
                mesc l("You don't have @@.", getitemlink(SeaDrops));
            }
            if (.@q2 < 2)
                setq2 NivalisQuest_BlueSage, 2;
            break;
        case 3:
            if (!countitem(ChocolateBar)) {
                mesc l("You don't have @@.", getitemlink(ChocolateBar));
            }
            if (.@q2 < 3)
                setq2 NivalisQuest_BlueSage, 3;
            break;
        case 4:
            if (!countitem(MoubooFigurine)) {
                mesc l("You don't have @@.", getitemlink(MoubooFigurine));
            }
            if (.@q2 < 4)
                setq2 NivalisQuest_BlueSage, 4;
            break;
        case 5:
            mesn;
            mesq l("AH!");
            next;
            mesc l("You seem to have gotten Peetu's attention for a while.");
            next;
            if (.@q2 < 5)
                setq2 NivalisQuest_BlueSage, 5;
            break;
        case 9:
            pContinue();
            break;
    }
    mesn;
    mes l("WAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHH");
    mesc l("@@ burst in tears.", .name$);
    next;
    mesn strcharinfo(0);
    mesc l("I probably should look in a way of calming him down.");
    close;
}

// He is calmer now
function pContinue {
    mesn;
    mesc l("*sniff sniff*");
    next;
    select
        l("What have happened? Why are you crying?"),
        l("Maybe I can help to ease your pain?"),
        l("Don't cry any further. I am here to help."),
        l("Please tell me calmly what happened so I can help.");
    mes "";
    mesn;
    mesq l("It's *sniff* It's all my fault... *sniff*");
    next;
    mesn;
    mesc l("*sniff* *sniff*");
    mesq l("It was my job to seal the slimes away for the night, but I somehow messed it up!");
    next;
    mesn;
    mesc l("*tears weeling up*");
    mesq l("And now I'm going to lose my job and I'll have to leave here and no other sage would give me a new appointment and I don't know what else to do!");
    next;
    mesc l("@@ latches onto you and starts sobbing on your shoulder.", .name$);
    select
        l("[Try to console him]"),
        l("[Shake him and tell him to pull himself together]"),
        l("[Push him away from you and leave]");
    mes "";
    if (@menu == 3) {
        setq2 NivalisQuest_BlueSage, 4;
        close;
    }
    mesc l("@@ calms a bit.", .name$);
    next;
    mesn;
    mesq l("Uh. You're probably right. I'm very sorry. I'm just... You know, I wanted to become a scholar of the sages, studying and... Oh, how could I mess that up? Did you see the library? It caused so much damage! What else should they do other than kick me out?");
    next;
    mesn;
    mesq l("I would kick me out myself! I'm such a failure! A complete disaster! %%V");
    next;
    select
        l("Maybe you should talk to your chief about that?"),
        l("It doesn't make much sense to draw overhasty conclusions."),
        l("Do you have a clue about what went wrong?");
    mes "";
    mesn;
    mesq l("Well ... but ... I mean ... I don't know ... ");
    next;
    mesn;
    mesq l("Would you ... uhm ... would you talk to Chief Oskari for me? And ask him what he plans to do about me? I... I just don't feel capable of doing that myself right now. I'll try to pull myself together in the meanwhile.");
    setq NivalisQuest_BlueSage, 3, 0;
    close;
}

// Report that Oskari is not planning to fire him (yet), and is trying to understand
// what went wrong so it do not repeat.
function pReflection {
    .@q=getq(NivalisQuest_BlueSage);
    .@q2=getq2(NivalisQuest_BlueSage);
    .@q3=getq3(NivalisQuest_BlueSage);
    mesn;
    mesc l("*sniff sniff*");
    mesq l("I'm waiting for ##1##BBUG, REPORT ME: PEETU IS WAITING THE FLYING COW##0##b feedback... Please go talk to them! %%S", .@name$);
    close;
}

// Peetu hurries back to check what happened. Wait 3 minutes in the library.
// He'll then say that in fact there was silk cocoon
function pInvestigation {
    .@q=getq(NivalisQuest_BlueSage);
    .@q2=getq2(NivalisQuest_BlueSage);
    .@q3=getq3(NivalisQuest_BlueSage);
    mesn;
    mesc l("*sniff sniff*");
    mesq l("I'm waiting for ##1##BBUG, REPORT ME: PEETU IS WAITING THE FLYING COW##0##b feedback... Please go talk to them! %%S", .@name$);
    close;
}

// The crime was "solved"
function pComplete {
    mesn;
    mesq l("Oh, hey, welcome back, @@! Many thanks for helping me!", strcharinfo(0));
    next;
    mesn;
    .@subject$=any(l("town finances"), l("house finances"), l("town damage by monsters"), l("library damage"), l("supply report"), l("magic book"), l("town overview"));
    mesq l("I'm currently going over some of the household paperwork. Right now I'm inspecting the @@. The work never stops!", .@subject$);
    close;
}

OnInit:
    .sex=G_MALE;
    .distance=5;
    npcsit;
    end;
}