summaryrefslogtreecommitdiff
path: root/world/map/npc/009-3
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/009-3')
-rw-r--r--world/map/npc/009-3/_import.txt7
-rw-r--r--world/map/npc/009-3/_mobs.txt8
-rw-r--r--world/map/npc/009-3/_warps.txt7
-rw-r--r--world/map/npc/009-3/monsters.txt26
-rw-r--r--world/map/npc/009-3/sword.txt185
5 files changed, 233 insertions, 0 deletions
diff --git a/world/map/npc/009-3/_import.txt b/world/map/npc/009-3/_import.txt
new file mode 100644
index 00000000..12bf619c
--- /dev/null
+++ b/world/map/npc/009-3/_import.txt
@@ -0,0 +1,7 @@
+// Map 009-3: Cave beneath Hurnscald
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 009-3.gat
+npc: npc/009-3/_mobs.txt
+npc: npc/009-3/_warps.txt
+npc: npc/009-3/monsters.txt
+npc: npc/009-3/sword.txt
diff --git a/world/map/npc/009-3/_mobs.txt b/world/map/npc/009-3/_mobs.txt
new file mode 100644
index 00000000..b1cc7bc4
--- /dev/null
+++ b/world/map/npc/009-3/_mobs.txt
@@ -0,0 +1,8 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Cave beneath Hurnscald mobs
+
+
+
+009-3.gat,0,0,0 script Mob009-3 -1,{
+ end;
+}
diff --git a/world/map/npc/009-3/_warps.txt b/world/map/npc/009-3/_warps.txt
new file mode 100644
index 00000000..57adbca9
--- /dev/null
+++ b/world/map/npc/009-3/_warps.txt
@@ -0,0 +1,7 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Cave beneath Hurnscald warps
+
+009-3.gat,173,20 warp CaveExitToInn -1,-1,009-2.gat,147,88
+009-3.gat,20,56 warp ToLakeCave -1,-1,011-4.gat,129,88
+009-3.gat,157,30 warp toCave -1,-1,018-3.gat,179,178
+009-3.gat,117,19 warp toCave -1,-1,013-3.gat,160,101
diff --git a/world/map/npc/009-3/monsters.txt b/world/map/npc/009-3/monsters.txt
new file mode 100644
index 00000000..b69bb3a1
--- /dev/null
+++ b/world/map/npc/009-3/monsters.txt
@@ -0,0 +1,26 @@
+// Map: 009-3
+// This is the cave beneath Hurnscald.
+//
+
+009-3.gat,0,0,0,0 monster YellowSlime 1007,20,0,0,Mob35::OnYellowSlime
+009-3.gat,0,0,0,0 monster RedSlime 1008,35,0,0,Mob35::OnRedSlime
+009-3.gat,0,0,0,0 monster BlackScorpion 1009,25,0,0,Mob35::OnBlackScorpion
+
+009-3.gat,0,0,0 script Mob35 -1,{
+OnYellowSlime:
+ set @mobID, 1007;
+ callfunc "MobPoints";
+ break;
+
+OnRedSlime:
+ set @mobID, 1008;
+ callfunc "MobPoints";
+ break;
+
+OnBlackScorpion:
+ set @mobID, 1009;
+ callfunc "MobPoints";
+ break;
+
+ end;
+}
diff --git a/world/map/npc/009-3/sword.txt b/world/map/npc/009-3/sword.txt
new file mode 100644
index 00000000..fbb47433
--- /dev/null
+++ b/world/map/npc/009-3/sword.txt
@@ -0,0 +1,185 @@
+009-3.gat,26,100,0 script #MysticSword#_M 127,{
+ if (getskilllv(SKILL_MAGIC))
+ goto L_message;
+ close;
+
+L_message:
+ set @Q_MASK, NIBBLE_6_MASK;
+ set @Q_SHIFT, NIBBLE_6_SHIFT;
+ set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT;
+
+ // Set up SkillUp function
+ set @SUP_id, SKILL_MAGIC_WAR;
+ set @SUP_name$, "War Magic";
+
+ set @STATUS_INITIAL, 0;
+ set @STATUS_LEARNED_FLAREDART, 1;
+ set @STATUS_LEARNED_MAGICBLADE, 2;
+ set @STATUS_LEVEL2, 3;
+ set @STATUS_W11, 4;
+ set @STATUS_W12, 5;
+ set @STATUS_W11_12, 6;
+ set @STATUS_L2_ALLSPELLS, 7;
+
+ if (@Q_status == @STATUS_INITIAL) goto L_Initial;
+ if (@Q_status == @STATUS_LEARNED_FLAREDART) goto L_PostFlareDart;
+ if (@Q_status == @STATUS_LEARNED_MAGICBLADE) goto L_PostFlareDart_teach2;
+ if (@Q_status == @STATUS_LEVEL2) goto L_L2_W11;
+ if (@Q_status == @STATUS_W12) goto L_L2_W11;
+ if (@Q_status == @STATUS_W11) goto L_L2_almost_done;
+ if (@Q_status == @STATUS_W11_12) goto L_L2_almost_done;
+
+ mes "[Magic Sword]";
+ mes "\"Come back when thou art stronger.\"";
+ close;
+
+L_Initial:
+ mes "[Magic Sword]";
+ mes "As you look at the sword, you suddenly hear a voice in your head!";
+ mes "\"Welcome to my prison, mortal!\"";
+ next;
+
+ mes "[Magic Sword]";
+ mes "Well, either you are going mad, or that sword in the stone is talking to you.";
+ next;
+
+ mes "[Magic Sword]";
+ mes "Or, well, both.";
+ next;
+
+ mes "[Magic Sword]";
+ mes "The deep basso voice continues.";
+ mes "\"I know not what brought thee hither, but I kindly ask that thou leavest me alone in my sorrow.\"";
+ next;
+
+ menu
+ "Leave", L_Close,
+ "Sorry.", -,
+ "Who or what are you?", -,
+ "What sorrow?", -,
+ "Can I help?", -,
+ "Can you teach me magic?", -;
+
+ mes "[Magic Sword]";
+ mes "There is no answer.";
+ close;
+
+L_PostFlareDart:
+ mes "[Magic Sword]";
+ mes "As you look at the sword, you hear a deep voice resounding in your head.";
+ mes "\"Welcome, mortal!\"";
+ next;
+
+ menu
+ "Hi! How are you?", L_PostFlareDart_hi,
+ "Can you teach me magic?", L_PostFlareDart_teach,
+ "Your sister sent me.", L_PostFlareDart_sister,
+ "Bye!", -;
+ close;
+
+L_PostFlareDart_hi:
+ mes "[Magic Sword]";
+ mes "\"Mortal... I have seen pain and death beyond thine reckoning! Mock me not with thine idle questions!\"";
+ close;
+
+L_PostFlareDart_sister:
+ mes "[Magic Sword]";
+ mes "\"My sister...? Alas! I remember now; abandoned she was, just as I; buried in stone, never to be wielded again.\"";
+ mes "\"Wherefore did she send thee?\"";
+ next;
+
+ menu "She asked me to ask you to teach me a spell.", -;
+
+L_PostFlareDart_teach:
+ mes "[Magic Sword]";
+ mes "\"Beware, mortal... the only spells I can teach thee are those of the school of war. Dark and dreary spells, that lot! Pain and misery is all they bring...\"";
+ next;
+
+ mes "[Magic Sword]";
+ mes "The sword's voice is growing apprehensive.";
+ mes "\"Once a spell has been learned, it cannot be taken back, no more than a death can be undone. So be careful, mortal... dost thou truly wish to know the secrets of thus destructive power?\"";
+ next;
+
+ menu
+ "Yes.", -,
+ "No.", L_Close;
+
+ mes "[Magic Sword]";
+ mes "\"So thou art bound to the path of War, as am I, as is my sister...\"";
+ next;
+
+ mes "[Magic Sword]";
+ mes "\"So be it, fellow warrior. Hear the incantation for the blade spell: '" + getspellinvocation("magic-blade") + "'\"";
+ mes "\"Hold a knife, sharp or regular, when thou speakest it.\"";
+ set @Q_status, @STATUS_LEARNED_MAGICBLADE;
+ callsub S_update_var;
+ next;
+
+ mes "[Magic Sword]";
+ mes "\"But beware... the path of war that thou hast embarked upon is one from which few return. May luck be on thy side...\"";
+ close;
+
+L_PostFlareDart_teach2:
+ mes "[Magic Sword]";
+ mes "\"Seek out my sister, and leave me alone in my sorrows.\"";
+ next;
+
+L_Close:
+ close;
+
+L_L2_W11:
+ mes "[Magic Sword]";
+ mes "\"Thou hast returned. That must mean that thy wish to learn the magic of war is still alive?\"";
+ next;
+ menu
+ "No, I just wanted to say `hi'.", L_sayhi,
+ "Yes, teach me more!", -;
+
+ mes "[Magic Sword]";
+ mes "\"If that is thou wishest, I shall not stop thee. But do not expect to find merriment down this road.\"";
+ mes "\"I must ask that thou sacrificest five thousand monster points for this, however.\"";
+ menu
+ "No, I don't want that.", L_farewell,
+ "Very well.", -;
+
+ if (Mobpt < 5000) goto L_lacking_mobpoints;
+
+ mes "[Magic Sword]";
+ mes "\"So be it, then.\"";
+ mes "[1000 experience points]";
+ set Mobpt, Mobpt - 5000;
+ getexp 1000, 0;
+ set @Q_status, @Q_status + 1;
+ callsub S_update_var;
+ next;
+
+ mes "[Magic Sword]";
+ mes "\"The spell I shall teach thee is the hail of arrows spell. It will make arrows fall down from the heavens unto thy enemies.\"";
+ next;
+
+ mes "[Magic Sword]";
+ mes "\"Take twenty arrows, sprinkle sulphur powder over them, and then speak '" + getspellinvocation("arrow-hail") + "'. Throw them high up in the air, and watch the hail unfold before thy feet.\"";
+ close;
+
+
+L_L2_almost_done:
+ mes "[Magic Sword]";
+ mes "\"Return to my sister now. I expect that she shall teach thee one more spell.\"";
+ close;
+
+L_lacking_mobpoints:
+ mes "[Magic Sword]";
+ mes "\"Thou lackest the monster points needed to prove thy worthiness. I shall not reveal more to thee until thou hast slain more monsters.\"";
+ close;
+
+L_sayhi:
+ mes "[Magic Sword]";
+ mes "\"Please leave me in peace.\"";
+ close;
+
+S_update_var:
+ set QUEST_MAGIC,
+ (QUEST_MAGIC & ~(@Q_MASK)
+ | (@Q_status << @Q_SHIFT));
+ return;
+}