From 99e6981142744c1853c3c44a1cd289426313a8a8 Mon Sep 17 00:00:00 2001
From: Jesusaves <cpntb1@ymail.com>
Date: Thu, 28 Apr 2022 15:48:11 -0300
Subject: Bandit Stage

---
 npc/034-2/_import.txt |   1 +
 npc/034-2/gemini.txt  | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 160 insertions(+)
 create mode 100644 npc/034-2/gemini.txt

(limited to 'npc/034-2')

diff --git a/npc/034-2/_import.txt b/npc/034-2/_import.txt
index 77d11a7b2..ae5722e5e 100644
--- a/npc/034-2/_import.txt
+++ b/npc/034-2/_import.txt
@@ -1,3 +1,4 @@
 // Map 034-2: Bandit Cave
 // This file is generated automatically. All manually added changes will be removed when running the Converter.
 "npc/034-2/_mobs.txt",
+"npc/034-2/gemini.txt",
diff --git a/npc/034-2/gemini.txt b/npc/034-2/gemini.txt
new file mode 100644
index 000000000..dff5c7668
--- /dev/null
+++ b/npc/034-2/gemini.txt
@@ -0,0 +1,159 @@
+// TMW2 scripts.
+// Authors:
+//    Jesusalva
+// Description:
+//    Gemini Sisters Quest - Bandit Den
+
+034-2,24,60,0	script	#GeminiBack1	NPC_HIDDEN,0,0,{
+    end;
+OnTouch:
+    if (instance_id() < 0 || getcharid(1) < 1) end;
+    GeminiCheck(6);
+    .@p=getcharid(1);
+    warp "val1@"+.@p, 169, 25;
+    end;
+}
+
+034-2,37,24,0	script	#GeminiExit3	NPC_HIDDEN,0,0,{
+    end;
+OnTouch:
+    if (instance_id() < 0 || getcharid(1) < 1) end;
+    GeminiCheck(7);
+    if ('STATUS < 8) {
+        dispbottom l("One of the bandits locked this door; We need to find the key!");
+        end;
+    }
+    .@p=getcharid(1);
+    warp "val3@"+.@p, 23, 51;
+    end;
+}
+
+// Ambush
+034-2,29,73,0	script	#GeminiDen1	NPC_HIDDEN,0,0,{
+    end;
+OnTouch:
+    if (instance_id() < 0 || getcharid(1) < 1) end;
+    GeminiCheck(6);
+    // TODO: areasc... stun ... etc.
+    .@c=getunits(BL_PC, .@mbs, false, getmap(), 23, 67, 32, 74);
+    for (.@i = 0; .@i < .@c; .@i++) {
+        sc_start(SC_STUN, 15000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@mbs[.@i]);
+        specialeffect(FX_CRITICAL, AREA, .@mbs[.@i]);
+    }
+    .@p=getcharid(1);
+    .@m$=getmap();
+    .@b1=monster(.@m$, 30, 70, "Bandit A", Bandit, 1);
+    .@b2=monster(.@m$, 32, 71, "Bandit B", RobinBandit, 1);
+    immortal(.@b1);
+    immortal(.@b2);
+    sc_start(SC_STUN, 12000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@b1);
+    sc_start(SC_STUN, 12000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@b2);
+    // Begin cutscene
+    sleep2(2000); // 13 s
+    unittalk(.@b1, "Did you think you could sneak in our den without a problem?");
+    sleep2(2000); // 11s
+    unittalk(.@b2, "Haha, we caught them, n00bs!");
+    sleep2(3000); // 8s
+    unittalk(.@b1, "Drop your weapons, and come with us!");
+    sleep2(3000); // 5s
+    unittalk(.@b2, "Ahaha, that was easy! Ok, knock them out!");
+    sleep2(3000); // 2s
+    areawarp(.@m$, 23, 67, 32, 74, .@m$, 30, 92, 33, 95);
+    unitwalk(.@b1, 37, 90);
+    unitwalk(.@b2, 37, 90);
+    sleep2(2000);
+    // Get them... wherever
+    unitwarp(.@b1, "034-2", 37, 90);
+    unitwarp(.@b2, "034-2", 37, 90);
+    unitkill(.@b1);
+    unitkill(.@b2);
+    areawarp(.@m$, 30, 92, 33, 95, .@m$, 57, 101, 66, 104);
+    // First ambush, set some stuff up
+    if ('STATUS == 6) {
+        'STATUS=7;
+
+        .@mob=monster("val2@"+.@p, 57, 104, strmobinfo(1, CopperSlime), CopperSlime, 1, "Valia::OnKey1");
+        setunitdata(.@mob, UDT_LEVEL, 1);
+        .@mob=monster("val2@"+.@p, 61, 104, strmobinfo(1, CopperSlime), CopperSlime, 1, "Valia::OnKey2");
+        setunitdata(.@mob, UDT_LEVEL, 1);
+        .@mob=monster("val2@"+.@p, 66, 104, strmobinfo(1, CopperSlime), CopperSlime, 1, "Valia::OnKey3");
+        setunitdata(.@mob, UDT_LEVEL, 1);
+
+        monster("val2@"+.@p, 47, 72, strmobinfo(1, BanditLord), BanditLord, 1, "Valia::OnLord");
+        monster("val2@"+.@p, 85, 106, strmobinfo(1, BanditLord), BanditLord, 1, "Valia::OnLord");
+        monster("val2@"+.@p, 58, 45, strmobinfo(1, BanditLord), BanditLord, 1, "Valia::OnLord");
+        monster("val2@"+.@p, 40, 42, strmobinfo(1, BanditLord), BanditLord, 1, "Valia::OnLord");
+
+        monster("val2@"+.@p, 47, 25, strmobinfo(1, RedSlimeMother), RedSlimeMother, 1);
+    }
+    end;
+}
+
+
+// Cell Doors
+034-2,58,100,0	script	Cell Door#G01	NPC_NO_SPRITE,{
+    if (instance_id() < 0 || getcharid(1) < 1) end;
+    GeminiCheck(7);
+    mes l("A complex lock seems to be posing a threat to you.");
+    mes l("But thanks to your %s skills, maybe you can pry this open.", thiefrank());
+    next;
+    .@s=LockPicking(3, 3, false);
+    // You broke free!
+    if (.@s) {
+        slide .x, 98;
+        closeclientdialog;
+        end;
+    }
+    @lockpicks=false;
+    mes l("What's this dark magic, the password has changed!");
+    close;
+OnInit:
+OnInstanceInit:
+    .distance=2;
+    end;
+}
+
+034-2,62,100,0	script	Cell Door#G02	NPC_NO_SPRITE,{
+    if (instance_id() < 0 || getcharid(1) < 1) end;
+    GeminiCheck(7);
+    mes l("A complex lock seems to be posing a threat to you.");
+    mes l("But thanks to your %s skills, maybe you can pry this open.", thiefrank());
+    next;
+    .@s=LockPicking(3, 3, false);
+    // You broke free!
+    if (.@s) {
+        slide .x, 98;
+        closeclientdialog;
+        end;
+    }
+    @lockpicks=false;
+    mes l("What's this dark magic, the password has changed!");
+    close;
+OnInit:
+OnInstanceInit:
+    .distance=2;
+    end;
+}
+
+034-2,64,100,0	script	Cell Door#G01	NPC_NO_SPRITE,{
+    if (instance_id() < 0 || getcharid(1) < 1) end;
+    GeminiCheck(7);
+    mes l("A complex lock seems to be posing a threat to you.");
+    mes l("But thanks to your %s skills, maybe you can pry this open.", thiefrank());
+    next;
+    .@s=LockPicking(3, 3, false);
+    // You broke free!
+    if (.@s) {
+        slide .x, 98;
+        closeclientdialog;
+        end;
+    }
+    @lockpicks=false;
+    mes l("What's this dark magic, the password has changed!");
+    close;
+OnInit:
+OnInstanceInit:
+    .distance=2;
+    end;
+}
+
-- 
cgit v1.2.3-70-g09d2