// TMW2 scripts.
// Author:
// Jesusalva
// Description:
// 023-3-1 The First Monster King's Throne Room Configuration File
023-3-1 mapflag zone MMO
023-3-1,45,27,0 script #Finish02331 NPC_HIDDEN,0,0,{
end;
OnTouch:
.@n=getq(General_Narrator);
.@q=getq(FrostiaQuest_Homunculus);
// Cheater Detected
if (.@n < 15) {
warp "Save", 0, 0;
percentheal -100, -100;
return false;
}
if (.@q < 3) { // TODO: mobcount()?
dispbottom l("The magic power outflowing in the room prevents you from leaving.");
end;
}
.@mapn$="023-3-2";
warp .@mapn$, any(39,40), 58;
end;
}
023-3-1,45,80,0 script #Exit02331 NPC_HIDDEN,1,0,{
end;
OnTouch:
.@n=getq(General_Narrator);
.@q=getq3(FrostiaQuest_Homunculus);
// Cheater Detected
if (.@n < 15) {
warp "Save", 0, 0;
percentheal -100, -100;
return false;
}
if (.@n == 15) {
dispbottom lg("I'm not a coward! I must press forward!");
end;
}
.@mapn$="001-7";
warp .@mapn$, 59, 45;
end;
}
// To the traps!
023-3-1,45,63,0 script #Ambush02331 NPC_HIDDEN,10,0,{
OnTouch:
.@q=getq3(FrostiaQuest_Homunculus);
if (!.@q) {
.@m$=getmap();
.@mobID1=monster(.@m$, 43, 55, l("Assassin"), HoodedNinja, 1);
.@mobID2=monster(.@m$, 48, 55, l("Assassin"), HoodedNinja, 1);
monster(.@m$, 43, 60, l("Assassin"), Assassin, 1);
monster(.@m$, 43, 65, l("Assassin"), Assassin, 1);
monster(.@m$, 48, 60, l("Assassin"), Assassin, 1);
monster(.@m$, 48, 65, l("Assassin"), Assassin, 1);
if (any(true,false))
unittalk(.@mobID1, l("Kill 'em!"));
else
unittalk(.@mobID2, l("Kill 'em!"));
setq3 FrostiaQuest_Homunculus, 1;
}
end;
}
// Main event core
023-3-1,45,52,0 script #Core02331 NPC_HIDDEN,10,0,{
OnTouch:
.@n$=instance_npcname(.name$);
.@q=getq3(FrostiaQuest_Homunculus);
if (.@q == 1) {
// Begin the event core
setq3 FrostiaQuest_Homunculus, 2;
addtimer(1100, .@n$+"::OnEvent01");
initnpctimer;
}
end;
OnEvent01:
.@m$=getmap();
.@n$=instance_npcname(.name$);
slide 45, 45;
@ISBAMUTH=monster(.@m$, 45, 34, l("Isbamuth"), Isbamuth, 1);
.@g1=monster(.@m$, 42, 37, l("Assassin"), HoodedNinja, 1);
.@g2=monster(.@m$, 48, 37, l("Assassin"), HoodedNinja, 1);
.@g3=monster(.@m$, 39, 40, l("Assassin"), Assassin, 1);
.@g4=monster(.@m$, 51, 40, l("Assassin"), Assassin, 1);
// Block everyone for cutscene (includes invencibility boost)
setpcblock(255, true);
sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, @ISBAMUTH);
sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@g1);
sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@g2);
sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@g3);
sc_start(SC_STUN, 4500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@g4);
unittalk(@ISBAMUTH, l("Seems like the rat have come after the cheese."));
addtimer(1500, .@n$+"::OnE02");
end;
OnE02:
.@m$=getmap();
.@n$=instance_npcname(.name$);
unittalk(@ISBAMUTH, l("HAHAHAHA! How foolish of you, didn't even bother trying to sneak in!"));
addtimer(1500, .@n$+"::OnE03");
end;
OnE03:
.@m$=getmap();
.@n$=instance_npcname(.name$);
unittalk(@ISBAMUTH, l("Remember my name: I am Isbamuth, and I've took the Throne which rightfully belongs to me."));
addtimer(1500, .@n$+"::OnE04");
end;
OnE04:
.@m$=getmap();
.@n$=instance_npcname(.name$);
unittalk(@ISBAMUTH, l("This throne is not from the Monster King... IT BELONGS ONLY TO ME!"));
addtimer(1500, .@n$+"::OnE05");
end;
OnE05:
.@m$=getmap();
.@n$=instance_npcname(.name$);
unittalk(@ISBAMUTH, l("Now, as you gave yourself the trouble of coming here..."));
addtimer(1500, .@n$+"::OnE06");
end;
OnE06:
.@m$=getmap();
.@n$=instance_npcname(.name$);
setpcblock(255, false);
unittalk(@ISBAMUTH, l("LET'S DANCE!"));
addtimer(15000, .@n$+"::OnW01");
end;
OnW01:
.@m$=getmap();
.@n$=instance_npcname(.name$);
unittalk(@ISBAMUTH, l("Be cursed, you fool!"));
sc_start(SC_CURSE, 12000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK);
addtimer(45000, .@n$+"::OnW01");
end;
OnTimer1000:
if (getmapusers(instance_mapname("023-3-1")))
initnpctimer;
// TODO: Cleanup
end;
}