// TMW2/LOF Script.
// Author:
// Jesusalva
// Description:
// Inspector Quest core
// Main logical loop, takes no argument
function script inspectorQuest {
.@npc$ = strnpcinfo(0);
if ($@GM_OVERRIDE) debugmes .@npc$;
// TODO: Rather than using .@q == 1
// Check with compare(getmap(), "017") && .@q == 1
// Then with compare(getmap(), "012") && .@q == 2
// Then with compare(getmap(), "009") && .@q == 3
// ...So on, for each stage
.@q = getq(LoFQuest_Inspector);
if (.@q != 1) return;
select
l("Talk normally."),
l("Ask about the robberies.");
if (@menu == 1) {
clear;
return;
}
/*
// NPC List (24+6 = 30 NPCs)
///////////////////////////////
Royal Fairy
Equip collector
Erik
Homunculus dispatcher
Kenton
Public affairs officer
Guard#lof-{1:6}
Six guards in the land of fire
Elen The Traveler
Traveler shop & lore
Milocat
Barber
Pydisgner#spoints
Legacy LoF account converter, sitting at main square
Paxel
Prsm's son
Pet Detective
Ace Ventura does feed a lot of pets...
Chef#dimond
The chef, and likely the principal victim
Dimond
Dimond's Cove owner
Phil
Trumpet at Dimond Cove Troupe
Jerry
...the drummer
Robert
...Harpist
Shannon
Cart rent, likely the CEO of a transport company
Basil
Quartermaster at Dimond's Cove
Gambler#017-3
Gambler at Dimond's Cove
Doug
Just a guest at Dimond's Cove
Lora Tay
Seamstress at Dimond's Cove
Nico Goethe
Card player, guest at Dimond's Cove
Jenny
Worker? Thief? at Dimond's Cove
Zack
Same as Jenny
Pihro
One of the administrators of LoF. Makes ammo
Pyndragon
One of the administrators of LoF. Makes rare equip
Axzell the Alchemist
LoF alchemist
*/
mes "";
.@THIEF_DESCRIPTION = 1; // Know how thief looked alike
.@CHEESE_TYPES = 2; // Know which kind of cheese was stolen
.@TIME_OF_THEFT = 4; // Know the time the theft happened
.@VICTIM_CHEF = 8; // Talked to Dimond Cove chef
.@VICTIM_LAB = 16; // Alchemist explained about cheese thieves
.@UNDERGROUND_PASS = 32; // Know the route used in Dimond
.@RAT_RULEOUT = 64; // Ruled out the possibility of rats
.@PORTAL_USE = 128; // Concluded the Portal was used by thief
.@TROUPE_DISGUISE = 256; // Learned about thief run-in with musics (no noise)
.@SCRATCH_EVIDENCE = 512; // Learned about the scratch marks left by thief
// Each NPC sets exactly ONE piece of evidence to true, or none
// Some NPCs require some pieces to already be set in advance
// Technically, Dimond Chef can set two pieces - one on first talk, 2nd locked
// Some NPCs set the same piece of evidence - you don't need to talk to all
if (.@npc$ == "Doug") {
mesn;
mesq l("I know nothing about the robberies, sorry.");
next;
mesn;
mesq l("Besides, this room is too dark, so I wouldn't be able to see anything.");
} else if (.@npc$ == "Royal Fairy") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Erik") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Kenton") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (compare(.@npc$, "Guard")) {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Elen The Traveler") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Milocat") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Pydisgner#spoints") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Paxel") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Pet Detective") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Chef#dimond") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Dimond") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Phil") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Jerry") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Robert") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Shannon") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Basil") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Gambler#017-3") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Lora Tay") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Nico Goethe") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Jenny") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Zack") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Pihro") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Pyndragon") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else if (.@npc$ == "Axzell the Alchemist") {
// FIXME
mesn;
mesq l("I know nothing about the robberies, sorry.");
} else {
Exception(sprintf("Oops, unhandled NPC at investigation (typo)! %s was not found on stage %d <= report this!", .@npc$, .@q), RB_SPEECH|RB_PLEASEREPORT);
}
close;
}