summaryrefslogtreecommitdiff
path: root/npc/020-7-1/peetu.txt
blob: d48bffea766d1595110191b97c570c6b20788c54 (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
// TMW2 scripts.
// Authors:
//    Jesusalva
//    TMW Org.
// Description:
//    Peetu
//
// 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 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;
            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*");
    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;
}