summaryrefslogtreecommitdiff
path: root/npc/020-1
diff options
context:
space:
mode:
Diffstat (limited to 'npc/020-1')
-rw-r--r--npc/020-1/_import.txt1
-rw-r--r--npc/020-1/guards.txt141
2 files changed, 142 insertions, 0 deletions
diff --git a/npc/020-1/_import.txt b/npc/020-1/_import.txt
index 9dc8a5df6..ca7a3e6a9 100644
--- a/npc/020-1/_import.txt
+++ b/npc/020-1/_import.txt
@@ -2,6 +2,7 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/020-1/_mobs.txt",
"npc/020-1/_warps.txt",
+"npc/020-1/guards.txt",
"npc/020-1/mapflags.txt",
"npc/020-1/misc.txt",
"npc/020-1/serge.txt",
diff --git a/npc/020-1/guards.txt b/npc/020-1/guards.txt
new file mode 100644
index 000000000..15d8b2122
--- /dev/null
+++ b/npc/020-1/guards.txt
@@ -0,0 +1,141 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Protect Nivalis
+
+020-1,49,48,0 script Lieutenant Joshua NPC_PLAYER,{
+ // The Monster King guild have a special menu
+ if (strcharinfo(2) == "Monster King") goto L_MKControl;
+
+ if ($NIVALIS_LIBDATE) {
+ mesn;
+ mesq l("Nivalis was liberated @@ ago.", FuzzyTime($NIVALIS_LIBDATE));
+ close;
+ } else {
+ legiontalk; end;
+ }
+
+// Respawn monster from $@SIEGE_TMPMOBS memory
+OnRespawn:
+ getmapxy(.@m$,.@x,.@y,0);
+ siege_spawn(.@m$, any_of($@SIEGE_TMPMOBS), 1, .name$+"::OnRespawn");
+ if (rand(10000) <= $coinsrate+($@SIEGE_NIVAL*50))
+ makeitem StrangeCoin, 1, .@m$, .@x, .@y;
+ end;
+
+
+L_MKControl:
+ mesn;
+ mes "Oh noes! You've found the Nivalis control panel!";
+ next;
+ select
+ l("Abort"),
+ l("Initiate a siege");
+ mes "";
+ if (@menu == 2) {
+ doevent "Lieutenant Joshua::OnStartSiege";
+ closedialog;
+ }
+ close;
+
+
+OnMKSiege:
+ $@SIEGE_NIVAL=rand(1,10);
+OnStartSiege:
+ siege_setup("019-2");
+ kamibroadcast(col("WARNING! WARNING! Monster Army marching towards Nivalis!!",1));
+ siege_cast("019-2", .name$, 0, TP_NIVAL);
+ initnpctimer;
+ end;
+
+// Timers
+OnTimer35000:
+ siege_setup("020-1");
+ siege_cast("019-2", .name$, $@SIEGE_NIVAL, TP_NIVAL);
+ mapannounce("020-1", "##2Message to all Nivalis NPCs: Take shelter!", bc_map);
+ disablenpc "Serge";
+ disablenpc "Knox The Traveler";
+ disablenpc "Camilot";
+ disablenpc "Mede";
+ disablenpc "Gambler#020-4";
+ disablenpc "Gambling Xan";
+ disablenpc "Baktar";
+ disablenpc "Bracco";
+ disablenpc "Agostine";
+ end;
+
+OnTimer65000:
+ siege_cast("020-1", .name$, 0, TP_NIVAL);
+ siege_cast("019-2", .name$, $@SIEGE_NIVAL, TP_NIVAL);
+ disablenpc "Ben#NivBanker";
+ end;
+
+OnTimer96000:
+ siege_cast("020-1", .name$, $@SIEGE_NIVAL, TP_NIVAL);
+ end;
+
+OnTimer180000:
+ siege_boss("020-1", $@SIEGE_NIVAL);
+ siege_cast("020-1", .name$, $@SIEGE_NIVAL, TP_NIVAL);
+ end;
+
+// At certain moments, the difficulty rises
+OnTimer210000:
+OnTimer420000:
+OnTimer540000:
+ $@SIEGE_NIVAL+=1;
+// Spawn each 45s after timer 120, difficulty raisers exempt (same for boss)
+OnTimer120000:
+OnTimer165000:
+//Timer 180000: BOSS WAVE
+//OnTimer210000: difficulty raiser
+OnTimer255000:
+OnTimer300000:
+OnTimer345000:
+OnTimer390000:
+//Timer 420000: difficulty raiser
+OnTimer435000:
+OnTimer480000:
+OnTimer525000:
+//OnTimer540000: difficulty raiser
+OnTimer570000:
+ siege_cast("020-1", .name$, $@SIEGE_NIVAL, TP_NIVAL);
+ end;
+
+OnTimer600000:
+ mapannounce("020-1", "##1The Monster Army is getting tired of resistance!", bc_map);
+ siege_cast("020-1", .name$, $@SIEGE_NIVAL, TP_NIVAL);
+ end;
+
+OnTimer660000:
+ $@MK_SCENE=MK_NONE;
+ $@MK_AGGRO=$@MK_AGGRO/20;
+ mapannounce("020-1", "##1The Monster King army is preparing to withdraw!", bc_map);
+ end;
+
+OnTimer690000:
+ siege_revert("020-1");
+ siege_revert("019-2");
+ enablenpc("Mana Stone");
+ $@SIEGE_NIVAL=0;
+ announce(("Nivalis siege is over!"), bc_all);
+ enablenpc "Serge";
+ enablenpc "Knox The Traveler";
+ enablenpc "Camilot";
+ enablenpc "Mede";
+ enablenpc "Gambler#020-4";
+ enablenpc "Gambling Xan";
+ enablenpc "Baktar";
+ enablenpc "Bracco";
+ enablenpc "Agostine";
+ enablenpc "Ben#NivBanker";
+ stopnpctimer;
+ end;
+
+OnInit:
+ end;
+
+
+}
+