summaryrefslogtreecommitdiff
path: root/npc/014-2-2/gemini.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/014-2-2/gemini.txt')
-rw-r--r--npc/014-2-2/gemini.txt93
1 files changed, 93 insertions, 0 deletions
diff --git a/npc/014-2-2/gemini.txt b/npc/014-2-2/gemini.txt
new file mode 100644
index 000000000..898d12e9e
--- /dev/null
+++ b/npc/014-2-2/gemini.txt
@@ -0,0 +1,93 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Gemini Sisters Quest - Central Core
+
+034-1,0,0,0 script #Gemini NPC_HIDDEN,{
+ end;
+
+OnCoreInit:
+ debugmes "CORE INIT, Inst = %d", instance_id();
+ .@p = getcharid(1);
+ instance_attach($@VALIA_INST[.@p]);
+ debugmes "Attached to %d", $@VALIA_INST[.@p];
+ debugmes "New Inst = %d", instance_id();
+ @mystatus = 0;
+ sleep2(200);
+ if (!'STATUS)
+ 'STATUS = 1;
+ // FALLTHROUGH
+OnCore:
+ if (!compare(getmap(), "val")) end;
+ .@p = getcharid(1);
+ instance_attach($@VALIA_INST[.@p]);
+ // Always true on first interaction
+ // This handles new stages for person
+ if (@mystatus != 'STATUS) {
+ switch ('STATUS) {
+ case 1: // Quest initiated
+ @mystatus = 1;
+ // Spawn monsters
+ areamonster("val1@"+.@p, 20, 20, 60, 60, strmobinfo(1, GreenSlime), GreenSlime, (BaseLevel/15), "Valia::OnGSlime");
+ areamonster("val1@"+.@p, 20, 20, 70, 60, strmobinfo(1, LogHead), LogHead, (BaseLevel/15), "Valia::OnLHead");
+ areamonster("val1@"+.@p, 20, 20, 70, 60, strmobinfo(1, ForestMushroom), ForestMushroom, (BaseLevel/12), "Valia::OnFShroom");
+ areamonster("val1@"+.@p, 20, 20, 70, 60, strmobinfo(1, RedMushroom), RedMushroom, 1+(BaseLevel/30), "Valia::OnRShroom");
+ break;
+ case 2: // Looking for a runestone
+ break;
+ case 3: // Runestone was found
+ getexp 8132, 657;
+ break;
+ case 4: // Desert unlocked, but no clue on what to do
+ dispbottom l("You hear a noise from distance.");
+ // Spawn monsters
+ areamonster("val1@"+.@p, 100, 20, 170, 60, strmobinfo(1, CaveSnake), CaveSnake, 2, "Valia::OnCSnake");
+ areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, MagicGoblin), MagicGoblin, 1, "Valia::OnMGoblin");
+ // These refuse to respawn but are numerous
+ // Thus far, the quest is still easy. But soon it won't be.
+ areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, MountainSnake), MountainSnake, 1+(BaseLevel/24));
+ areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, DarkLizard), DarkLizard, 1+(BaseLevel/20));
+ areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, WickedMushroom), WickedMushroom, 1+(BaseLevel/32));
+ areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, EliteDuck), EliteDuck, 1);
+ break;
+ case 6: // Passage Open
+ if (countitem(SealedSoul))
+ delitem SealedSoul, countitem(SealedSoul);
+ dispbottom l("You hear waterfall opening in distance.");
+ // FALLTHROUGH
+ case 5: // JackO shows up
+ getexp 32000, 1400;
+ break;
+ case 7: // Ambushed & Captured
+ @lockpicks=false;
+ // Prision Area
+ .@m=any(Bandit, RobinBandit, SleepingBandit);
+ areamonster("val2@"+.@p, 52, 93, 70, 98, strmobinfo(1, .@m), .@m, 1);
+ .@m=any(Bandit, RobinBandit, SleepingBandit);
+ areamonster("val2@"+.@p, 52, 93, 70, 98, strmobinfo(1, .@m), .@m, 1);
+ // Ante-chamber
+ areamonster("val2@"+.@p, 69, 96, 85, 107, strmobinfo(1, Bandit), Bandit, 1);
+ .@m=any(Bandit, RobinBandit, SleepingBandit, RobinBandit);
+ areamonster("val2@"+.@p, 69, 96, 85, 107, strmobinfo(1, .@m), .@m, 1);
+ // Reception & Lord Desk
+ areamonster("val2@"+.@p, 50, 30, 80, 75, strmobinfo(1, Bandit), Bandit, (BaseLevel/15));
+ areamonster("val2@"+.@p, 50, 30, 80, 75, strmobinfo(1, RobinBandit), RobinBandit, (BaseLevel/25));
+ // Whole Map
+ areamonster("val2@"+.@p, 20, 24, 78, 72, strmobinfo(1, Archant), Archant, (BaseLevel/8));
+ // Great Hall
+ areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, RobinBandit), RobinBandit, (BaseLevel/22));
+ areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, Assassin), Assassin, (BaseLevel/20));
+ areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, Bandit), Bandit, (BaseLevel/18));
+ areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, HoodedNinja), HoodedNinja, 1);
+ break;
+ case 8: // Key retrieved
+ getexp 128000, 2000;
+ break;
+ }
+ }
+ addtimer(5000, "#Gemini::OnCore");
+ end;
+}
+
+