summaryrefslogtreecommitdiff
path: root/npc/026-0/ctrl.c
diff options
context:
space:
mode:
Diffstat (limited to 'npc/026-0/ctrl.c')
-rw-r--r--npc/026-0/ctrl.c104
1 files changed, 104 insertions, 0 deletions
diff --git a/npc/026-0/ctrl.c b/npc/026-0/ctrl.c
new file mode 100644
index 000000000..74b2cb09f
--- /dev/null
+++ b/npc/026-0/ctrl.c
@@ -0,0 +1,104 @@
+// TMW2 scripts.
+// Author:
+// Jesusalva
+// Description:
+// The Impregnable Fortress Control Files
+// Quest: General_Fortress
+// (MaxFloor+1, internal, internal)
+
+026-0,64,20,0 script Impregnable#B0F NPC_HIDDEN,4,0,{
+ end;
+
+OnTouch:
+ if (getq(General_Fortress) > 1) goto L_Warp;
+ mesc l(".:: Impregnable Fortress, %sF ::.", "B0"), 3;
+ msObjective(getq(General_Fortress) == 2, l("* Solo \"The Yetifly\""));
+ msObjective($MK_TEMPVAR < MKIF_LV_B0F, l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B1F));
+ end;
+
+L_Warp:
+ // Not unlocked
+ if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B1F) {
+ mesc l("The gate is sealed shut."), 1;
+ mesc l("The monster army is still strong on this floor!"), 1;
+ mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B1F), 1;
+ close;
+ }
+ //warp "026-1", 32, 97;
+ dispbottom l("Coming Soon, in Moubootaur Legends!");
+ end;
+
+}
+
+026-0,40,52,0 script Impregnable#B0F_1 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ .@q=getq(General_Fortress);
+ .@q2=getq2(General_Fortress);
+ .@q3=getq3(General_Fortress);
+ if (.@q != 1) end;
+
+ .@n$=strnpcinfo(0, "_0");
+ explode(.@ni$, .@n$, "_");
+ .@id=atoi(.@ni$[1]);
+ if (.@id <= 0) Exception("Unparseable switch: "+.@n$, RB_DEFAULT|RB_ISFATAL);
+
+ if (!(.@q2 & .@id)) {
+ setq2 General_Fortress, .@q2 | .@id;
+ }
+ end;
+}
+
+026-0,45,48,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_2 NPC_HIDDEN,0,0
+026-0,90,42,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_4 NPC_HIDDEN,0,0
+026-0,83,55,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_8 NPC_HIDDEN,0,0
+026-0,82,64,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_16 NPC_HIDDEN,0,0
+026-0,65,58,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_32 NPC_HIDDEN,0,0
+026-0,64,60,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_64 NPC_HIDDEN,0,0
+026-0,43,76,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_128 NPC_HIDDEN,0,0
+026-0,46,77,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_256 NPC_HIDDEN,0,0
+026-0,70,87,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_512 NPC_HIDDEN,0,0
+026-0,84,84,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_1024 NPC_HIDDEN,0,0
+026-0,84,86,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_2048 NPC_HIDDEN,0,0
+026-0,85,86,0 duplicate(Impregnable#B0F_1) Impregnable#B0F_4096 NPC_HIDDEN,0,0
+
+
+026-0,99,41,0 script Impregnable#B0F_X NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ .@q=getq(General_Fortress);
+ .@q2=getq2(General_Fortress);
+ .@q3=getq3(General_Fortress);
+ if (.@q != 1) end;
+ if (.@q2 < 8191) end;
+
+ if (getareausers("026-0", 54, 39, 77, 53) > 0) end;
+ if (mobcount("026-0", "Impregnable#B0F_X::OnYetifly") > 0)
+ killmonster("026-0", "Impregnable#B0F_X::OnYetifly", false);
+
+ slide 72, 49;
+ monster("026-0", 57, 44, l("The Yetifly"), Yetifly, 1, "Impregnable#B0F_X::OnYetifly");
+ addtimer2(15000, "Impregnable#B0F_X::OnHeartbeat");
+ end;
+
+OnHeartbeat:
+ if (getmap() != "026-0") end;
+ if (ispcdead())
+ warp "025-1", 100, 83;
+ addtimer2(15000, "Impregnable#B0F_X::OnHeartbeat");
+ end;
+
+OnYetifly:
+ .@q=getq(General_Fortress);
+ .@q2=getq2(General_Fortress);
+ .@q3=getq3(General_Fortress);
+ if (.@q != 1) end;
+ if (.@q2 < 8191) end;
+
+ dispbottom b(l("You have defeated the Yetifly. Access to B1F granted."));
+ setq General_Fortress, 2, 0;
+ Zeny+=100000;
+ slide 98, 41;
+ end;
+}
+