// 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:
teleporthome();
die();
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;
}