summaryrefslogtreecommitdiff
path: root/npc/020-7-1/oskari.txt
blob: a6db90584e6e62e0673f427b60bf82f029e2afe6 (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
// TMW2 scripts.
// Authors:
//    Jesusalva
//    TMW Org.
// Description:
//    Helper boss
//
// NivalisQuest_BlueSage STRUCTURE
//  FIELD 1:
//      INVESTIGATION
//      1 - STBY OUTSIDE
//      2 - ACCESS GRANTED
//      3 - QUEST ASSIGNED BY PEETU - talk to Oskari (and others)
//      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,29,0	script	Oskari	NPC_BLUESAGEWORKER_FB,{
    function pIdle;

    function pPeetu; // Peetu sent you to them
    function pElias; // Elias sent you to them
    function pComplete;

    .@q=getq(NivalisQuest_BlueSage);
    switch (.@q) {
        case 2:
            pIdle();
            break;
        case 3:
            pPeetu();
            break;
        case 4:
        case 5:
        case 6:
        case 7:
            pIdle();
            mesc l("I probably should talk to everyone else, and assess better the situation, before bothering Oskari.");
            break;
        case 8:
            pElias();
            break;
        case 9:
            pIdle("Peetu"); // Skippers...
            break;
        case 10:
        case 11:
            pIdle();
            break;
        case 12:
            pComplete();
            break;
        default:
            warp "Save", 0, 0;
            percentheal -100, -100;
            end;
            break;
    }
    close;


// Here we begin
function pIdle {
    if (getarg(0, "") != "") {
        mesn;
        mesq l("What are you doing? Stop wasting my time and go talk to @@!", getarg(0, "##1##BBUGGY FLYING COW##b##0"));
        return;
    }
    mesn;
    mesq l("You have to excuse me, as you might have heard we're having some trouble at the moment and I, as Chief of Nikolai's household staff, have a lot to do.");
    return;
}

// Peetu Question
function pPeetu {
    mesn;
    mesq l("You have to excuse me, as you might have heard we're having some trouble at the moment and I, as Chief of Nikolai's household staff, have a lot to do.");
    next;
    select
        l("Ok, see you."),
        l("Peetu asked me to talk to you about his mishap.");
    mes "";
    if (@menu == 1)
        close;
    mesn;
    mesq l("So, what did he said?");
    next;
    mesn strcharinfo(0);
    mesq l("He is blaming himself and is afraid of losing his job.");
    next;
    mesn;
    mesq l("Well... Can't say I'm surprised. He is very perfectionist. Putting on himself the blame is something he would do.");
    next;
    mesn;
    mesq l("Well, all humans does mistakes... Wait, he is an elf. So, everyone commit mistakes. Anyway...");
    next;
    mesc l("@@ stops, and keep silent for a while, thinking, before continuing.", .name$);
    next;
    mesn;
    mesq l("You know, he is very experienced and reliable. He might look and act like a kid, but he is at least a century old.");
    next;
    mesn;
    mesq l("This whole situation is very disquieting, not to say suspicious. There might be something more to it that we're not seeing.");
    next;
    mesn;
    mesq l("It might be just my gut instinct, but... Would you be willing to talk with Peetu and the other helpers, investigating what actually happened?");
    next;
    mesn;
    mesq l("The whole team is very distressed, too. Could you take the opportunity to see if the team is putting the blame on Peetu? Thanks in advance.");
    next;
    mesn;
    mesq l("Please tell Peetu I do not plan in firing him, it should calm him down. And please carry out an investigation, don't disrupt my work until you're done.");
    setq1 NivalisQuest_BlueSage, 4;
    close;
}

// Elias Question
function pElias {
    mesn;
    mesq l("Have you talked to Peetu co-workers about their opinion yet?");
    next;

    // cannot advance otherwise
    .@q=getq3(NivalisQuest_BlueSage);
    if (.@q != BS_NPCALL) {
        mesn;
        mesq l("I need to know if someone is blaming him. It is important.");
        close;
    }
    select
        l("Not yet."),
        l("Yes, everyone thinks he is competent and Elias have a report of a masked man.");
    mes "";
    if (@menu == 1)
        close;

    mesn;
    mesq l("With a mask you say? This reminds me... wait a moment.");
    next;
    mes l("... .... ....");
    next;
    mesn;
    mesq l("Mh... yes. It makes sense. Listen. This is a secret, but it might have been.... @@.", b(l("Sabotage")));
    next;
    mesn;
    mesq l("I need a favor from you. Go talk to Peetu. Ask him to confirm if there was silk cocoon in the ingredients. Janika reported me that we've ran out of it two days ago.");
    setq1 NivalisQuest_BlueSage, 9;
    close;
}

// We're done.
function pComplete {
    mesn;
    mesq l("Thanks again for your investigations. It was a great help.");
    close;
}


OnTimer1000:
    domovestep;

OnInit:
    // Long Movement is difficult for Hercules Engine
    initpath "move", 122, 29,
             "dir", UP, 0,
             "wait", 15, 0,
             "dir", LEFT, 0,
             "move", 109, 29,
             "move", 79, 29,
             "move", 59, 29,
             "move", 56, 29,
             "wait", 3, 0,
             "dir", RIGHT, 0,
             "wait", 7, 0,
             "dir", LEFT, 0,
             "wait", 7, 0,
             "dir", DOWN, 0,
             "move", 55, 48,
             "wait", 3, 0,
             "dir", RIGHT, 0,
             "wait", 10, 0,
             "dir", DOWN, 0,
             "wait", 10, 0,
             "dir", LEFT, 0,
             "wait", 3, 0,
             "move", 26, 46,
             "dir", UP, 0,
             "wait", 4, 0,
             "dir", RIGHT, 0,
             "wait", 4, 0,
             "dir", DOWN, 0,
             "wait", 2, 0,
             "move", 26, 57,
             "wait", 2, 0,
             "move", 25, 77,
             "wait", 3, 0,
             "dir", RIGHT, 0,
             "wait", 10, 0,
             "move", 26, 57,
             "move", 26, 46,
             "move", 55, 48,
             "move", 56, 29,
             "wait", 3, 0,
             "dir", RIGHT, 0,
             "wait", 1, 0,
             "move", 59, 29,
             "move", 79, 29,
             "move", 109, 29;
            // And go back to Peetu, which is very far away, 'cause I'm lazy
    initialmove;
    initnpctimer;

    .sex=G_FEMALE;
    .distance=5;
    end;
}