summaryrefslogtreecommitdiff
path: root/npc/020-7/elias.txt
blob: 162cb7b89223aab1931bc6c946dc47765f127151 (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
// TMW2 scripts.
// Authors:
//    Jesusalva
//    TMW Org.
// Description:
//    Controls access to Blue Sage Residence
//    Minimum level: 36 (implicit)
//    Minimum jblvl: 16 (implicit)

// 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,44,41,0	script	#BlueSageEntry	NPC_HIDDEN,1,1,{
OnTouch:
    .@q=getq(NivalisQuest_BlueSage);
    if (.@q < 2) {
        slide 42, 43;
        doevent "Elias::OnAccessDenied";
    }
    end;
}

// Here we start
020-7,40,41,0	script	Elias	NPC_BLUESAGEWORKER_MB,{
    function eliasWorry;
    function eliasQuestion;
    function eliasThankyou;
    function eliasConfirmed;
    mesn;
    mesq l("Hello, and welcome to Blue Sage's Residence, Library, and Nivalis Townhall.");
    .@q=getq(NivalisQuest_BlueSage);
    if (.@q >= 2)
        goto L_Main;
    next;
    mesn;
    mesq l("Due to a recent incident involving slimes, the building is closed to public visits.");
    .@qn=getq(General_Narrator);
    mes "";
    select
        l("That's sad to hear."),
        rif(.@qn == 10 && !.@q, l("I have a letter from Rakinorf.")),
        rif(.@q == 1, l("So? How was it?")),
        l("What happened?");
    mes "";
    switch (@menu) {
        case 2:
            mesn;
            mesq l("Oh, you must be from Hurnscald Household, then. Hand me the letter, I'll have it delivered.");
            next;
            mesn;
            mesq l("Please wait here a short while.");
            setq NivalisQuest_BlueSage, 1, 0, 0;
            break;
        case 3:
            mesn;
            mesq l("Yes, the Blue Sage will see you.");
            next;
            mesn;
            mesq l("Please don't mind the mess, there are slimes everywhere, thanks to Peetu.");
            next;
            mesn;
            mesq l("You may pass. The Sage is on the library waiting for you.");
            setq NivalisQuest_BlueSage, 2, 0, 0;
            break;
        case 4:
            mesn;
            mesq l("Slimes are on the loose. They have escaped, ate several books, and some are still in the building.");
            next;
            mesn;
            mesq l("Some are dangerous, too. Even if you look capable of fighting, the Blue Sage instructed me to prevent anyone from visiting until the mess is cleared.");
            break;
    }
    //goodbye;
    close;

L_Main:
    next;
    // .@q is preserved when you use goto
    switch (.@q) {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            eliasQuestion();
            break;
        case 6:
            eliasWorry();
            break;
        case 7:
        case 8:
            eliasConfirmed();
            break;
        case 9:
        case 10:
        case 11:
            eliasThankyou();
            break;
        default:
            mesn;
            mesq l("I heard you have been assisting the household staff. For that, I am thankful.");
            break;
    }
    close;

// Elias is worried with visitor and asks for insights
function eliasWorry {
    .@q2=getq2(NivalisQuest_BlueSage);
    if (.@q2 == BS_NPCALL) {
        setq1 NivalisQuest_BlueSage, 7;
        eliasConfirmed();
    }
    mesn;
    mesq l("After your questions I'm really getting worried about this guy with the mask. In retrospect it really seems suspicous.");
    next;
    mesn;
    mesq l("It might be a good idea to ask around if anyone else observed something odd connected to this person.");
    return;
}

// Suspections Confirmed, report back
function eliasConfirmed {
    mesn;
    mesq l("I heard your investigations reminded other people that they observed suspicious behaviour too.");
    next;
    mesn;
    mesq l("It's all my fault, I should've paid more attention! You should talk to Chief Oskari about this.");
    if (getq(NivalisQuest_BlueSage) == 7)
        setq1 NivalisQuest_BlueSage, 8;
    return;
}

// Waiting quest to end
function eliasThankyou {
    mesn;
    mesq l("Now that Chief Oskari knows about the sequence of events, the Sage will take care of it. It's really a shame how malicious people can be.");
    next;
    mesn;
    mesq l("Thanks a lot for your help revealing the truth.");
    return;
}

// Main question to Elias
function eliasQuestion {
    select
        l("Peetu thinks someone put Silk Cocoon along the ingredients."),
        l("Thanks, pal. I still got some matters to discuss with the Blue Sage if you excuse me.");
    mes "";
    if (@menu == 2) {
        mesn;
        mesq l("Yes, of course. We have good relations with Hurnscald Town, so you're welcome.");
        close;
    }
    mesn;
    mesq l("So, Peetu didn't check the ingredients before casting? That's... Well, I don't know.");
    next;
    mesn;
    mesq l("But that is unlikely, we have no reason to sabotage our own work! You saw the mess it caused. Everyone knew it was important.");
    next;
    mesn strcharinfo(0);
    mesq l("Hmm, it might be a hunch but... Can you tell me if there were any unusual visitors before the accident?");
    next;
    mesn;
    mesq l("Mh, let me think. There were quite a few visitors with different concerns, but that's usual at this time of the year.");
    next;
    mesn;
    mesq l("One of them was a bit odd, they were wearing a mask and had a strange way of talking. They said they came from Frostia, which is an elven town in the north. Elves are usually shy, so I thought it would have been rude to ask them to remove the mask.");
    next;
    mesn;
    mesq l("If I remember correctly they wanted to see the library. They looked like a man, but you never know.");
    next;
    mesn;
    mesc l("Elias gets a bit excited.");
    mesq l("Do you think he may have had something to do with the accident? We're a very hospitable house, so I didn't see a reason to deny him the entrance. I mean, his mask might have been a bit unusual, but hey, there could've been many reasons why someone would wear a mask, don't you think?");
    setq1 NivalisQuest_BlueSage, 6;
    next;
    eliasWorry();
    return;
}


OnAccessDenied:
    npctalk3 l("You can't go in there!");
    end;

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

}