summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/023-3-1/logic.txt74
1 files changed, 72 insertions, 2 deletions
diff --git a/npc/023-3-1/logic.txt b/npc/023-3-1/logic.txt
index 5b2858217..c1e4751a3 100644
--- a/npc/023-3-1/logic.txt
+++ b/npc/023-3-1/logic.txt
@@ -148,12 +148,79 @@ OnE06:
setpcblock(255, false);
unittalk(@ISBAMUTH, l("LET'S DANCE!"));
+ mapannounce(.@m$, "##2"+l("Victory Conditions: Survive!"), 0);
+ mapannounce(.@m$, "##1"+l("Defeat Conditions: Your death!"), 0);
addtimer(15000, .@n$+"::OnW01");
addtimer(60000, .@n$+"::OnW02");
addtimer(180000, .@n$+"::OnE07");
end;
+OnE07:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+
+ @SCOUT=monster(.@m$, 43, 29, l("Assassin"), HoodedNinja, 1, .@n$+"::OnMobDie");
+ sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, @SCOUT);
+
+ unitemote(@SCOUT, E_KITTY);
+ unitstop(@ISBAMUTH);
+
+ deltimer(.@n$+"::OnW01");
+ deltimer(.@n$+"::OnW02");
+ addtimer(1500, .@n$+"::OnE08");
+ end;
+
+OnE08:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+
+ unittalk(@ISBAMUTH, l("What's it, scout."));
+ unitwalk(@ISBAMUTH, 45, 34);
+
+ addtimer(1500, .@n$+"::OnE09");
+ end;
+
+OnE09:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+
+ unitemote(@SCOUT, E_THUMBUP);
+ unittalk(@ISBAMUTH, l("So, it is ready?"));
+
+ addtimer(1500, .@n$+"::OnE10");
+ end;
+
+OnE10:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+
+ unittalk(@ISBAMUTH, l("I hate to leave you now, @@, but I have more important things to do.", strcharinfo(0)));
+
+ addtimer(1500, .@n$+"::OnE11");
+ end;
+
+OnE11:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+
+ unittalk(@ISBAMUTH, l("Enjoy this world while it lasts. Heh. It's time to... detonate."));
+
+ addtimer(1500, .@n$+"::OnE12");
+ end;
+
+OnE12:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+
+ // A warp to non-instanced version to prevent death sprite from showing up.
+ unitwarp(@ISBAMUTH, "023-3-1", 45, 45);
+ unitkill(@ISBAMUTH);
+ @ISBAMUTH=0;
+ mapannounce(.@m$, "##2"+l("Victory Conditions: Defeat all enemies!"), 0);
+ mapannounce(.@m$, "##1"+l("Defeat Conditions: Your death!"), 0);
+ end;
+
// War events
OnW01:
.@m$=getmap();
@@ -178,9 +245,12 @@ OnW02:
addtimer(60000, .@n$+"::OnW02");
end;
-// Secret events
+// Secret events. Do not handle Isbamuth death as it should be impossible...
OnIsbamuthDefeat:
- dispbottom l("Are you crazy?");
+ Exception(l("Why do you bully me! - This is a bug: 02331.LOGIC.OID"))
+ deltimer(.@n$+"::OnW01");
+ deltimer(.@n$+"::OnW02");
+ getexp 0, 1000;
end;
// For mobcount() only