summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwushin <pasekei@gmail.com>2016-03-09 21:10:45 -0600
committermekolat <mekolat@users.noreply.github.com>2016-03-30 11:22:53 -0400
commitaee89bdbe04ad0aed06622052244bf6b7d3c1d23 (patch)
treece0b368cd6c6e2a92f9e0e8baaf7af0ab6f63a3d
parent778cd71d3933ac6172b09654fdf2b4b317d18398 (diff)
downloadserverdata-aee89bdbe04ad0aed06622052244bf6b7d3c1d23.tar.gz
serverdata-aee89bdbe04ad0aed06622052244bf6b7d3c1d23.tar.bz2
serverdata-aee89bdbe04ad0aed06622052244bf6b7d3c1d23.tar.xz
serverdata-aee89bdbe04ad0aed06622052244bf6b7d3c1d23.zip
Fix invocations
-rw-r--r--world/map/npc/001-1/ched.txt4
-rw-r--r--world/map/npc/001-2/pauline.txt10
-rw-r--r--world/map/npc/002-1/elanore.txt14
-rw-r--r--world/map/npc/006-1/spirit.txt4
-rw-r--r--world/map/npc/008-1/hinnak.txt2
-rw-r--r--world/map/npc/009-2/misc.txt2
-rw-r--r--world/map/npc/009-2/wyara.txt6
-rw-r--r--world/map/npc/009-3/sword.txt2
-rw-r--r--world/map/npc/011-1/auldsbel.txt20
-rw-r--r--world/map/npc/012-3/mana-seed.txt2
-rw-r--r--world/map/npc/013-1/sagatha.txt14
-rw-r--r--world/map/npc/013-2/wizard.txt2
-rw-r--r--world/map/npc/015-1/sword.txt6
-rw-r--r--world/map/npc/017-4/waric.txt12
-rw-r--r--world/map/npc/doc/magic23
-rw-r--r--world/map/npc/magic/level2-barrier.txt2
-rw-r--r--world/map/npc/magic/level2-summon-fluffies.txt2
-rw-r--r--world/map/npc/magic/level2-summon-mouboo.txt2
-rw-r--r--world/map/npc/magic/level2-summon-pinkie.txt2
-rw-r--r--world/map/npc/magic/level2-summon-spiky-mushroom.txt2
-rw-r--r--world/map/npc/magic/level2-summon-wickedmushroom.txt2
21 files changed, 79 insertions, 56 deletions
diff --git a/world/map/npc/001-1/ched.txt b/world/map/npc/001-1/ched.txt
index dee6cb77..eb82aba1 100644
--- a/world/map/npc/001-1/ched.txt
+++ b/world/map/npc/001-1/ched.txt
@@ -15,9 +15,9 @@ L_Next:
mes "[Ched]";
mes "\"Well, I don't remember what it's called... I took it out of 'Timbleweed's Advanced Transmutations,' but it seems awfully hard to cast.\"";
next;
- mes "\"If you want to try it, the invocation is '" + ("merge-concentration-potions") + ".' I just can't get the hang of it though.\"";
+ mes "\"If you want to try it, the invocation is '" + get(.invocation$, "merge-concentration-potions") + ".' I just can't get the hang of it though.\"";
next;
- mes "\"Maybe I should go back to practicing '" + ("detect-magic") + "' until I can cast it properly.\" %%6";
+ mes "\"Maybe I should go back to practicing '" + get(.invocation$, "detect-magic") + "' until I can cast it properly.\" %%6";
goto L_Done;
L_Done:
diff --git a/world/map/npc/001-2/pauline.txt b/world/map/npc/001-2/pauline.txt
index 93608a10..e69f8206 100644
--- a/world/map/npc/001-2/pauline.txt
+++ b/world/map/npc/001-2/pauline.txt
@@ -92,7 +92,7 @@ L_Spells:
L_Next1:
mes "[Pauline]";
mes "\"Well I could only read the invocations. So I don't exactly know what kind of ingredients you are going to need.\"";
- mes "\"The first one for the mouboo was " + ("summon-mouboo") + " and the one for the pinkie was " + ("summon-pinkie") +".\"";
+ mes "\"The first one for the mouboo was " + get(.invocation$, "summon-mouboo") + " and the one for the pinkie was " + get(.invocation$, "summon-pinkie") +".\"";
next;
mes "\"For the pinkie spell my suggestion is to try similar ingredients to the other Astral spells. Try a root and some item typical for pinkies.\"";
mes "\"The mouboo spell might be more complicated. From what I could translate, one of the spell components is crafted by magic.\"";
@@ -157,7 +157,7 @@ L_Next4:
goto L_DidNotWorkMouboo;
L_DidNotWorkMouboo:
- mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + ("summon-mouboo") + ".";
+ mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + get(.invocation$, "summon-mouboo") + ".";
mes "Nothing happens.";
mes "[Pauline]";
mes "\"It seems you did not tell me the correct ingredients. Come back when you find the correct ones.\"";
@@ -174,7 +174,7 @@ L_Pass2Mouboo:
goto L_DidNotWorkMouboo;
L_TrySpellMouboo:
- mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + ("summon-mouboo") + ".";
+ mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + get(.invocation$, "summon-mouboo") + ".";
monster "001-1", 55,68, "Good", 1028, 1;
mes "[Pauline]";
mes "\"It worked!\"";
@@ -220,7 +220,7 @@ L_Next5:
goto L_DidNotWorkPinkie;
L_DidNotWorkPinkie:
- mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + ("summon-pinkie") + ".";
+ mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + get(.invocation$, "summon-pinkie") + ".";
mes "Nothing happens.";
mes "[Pauline]";
mes "\"It seems you did not tell me the correct ingredients. Come back when you find the correct ones.\"";
@@ -237,7 +237,7 @@ L_Pass2Pinkie:
goto L_DidNotWorkPinkie;
L_TrySpellPinkie:
- mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + ("summon-pinkie") + ".";
+ mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + get(.invocation$, "summon-pinkie") + ".";
monster "001-1", 54,68, "Good", 1018, 1;
mes "[Pauline]";
mes "\"It worked!\"";
diff --git a/world/map/npc/002-1/elanore.txt b/world/map/npc/002-1/elanore.txt
index fbc8f3c0..e936447e 100644
--- a/world/map/npc/002-1/elanore.txt
+++ b/world/map/npc/002-1/elanore.txt
@@ -233,7 +233,7 @@ L_MakeSelf:
goto L_MakeSelf_yes;
L_MakeSelf_yes:
- mes "\"Oh, but of course! You are powerful enough to make your own lifestones, using the enchantment '" + ("enchant-lifestone") + "'. This will consume a bug leg or a maggot slime or one of each of the four healing herbs, though.\"";
+ mes "\"Oh, but of course! You are powerful enough to make your own lifestones, using the enchantment '" + get(.invocation$, "enchant-lifestone") + "'. This will consume a bug leg or a maggot slime or one of each of the four healing herbs, though.\"";
goto L_Close;
L_MakeSelf_no:
@@ -265,15 +265,15 @@ L_T_Initial:
next;
mes "[Elanore the Healer]";
mes "\"To heal someone, first locate the injury. As a beginner, you have to touch the wound; with practice, it will be enough to think about it. Hold the lifestone in one hand, touching the wound with the other.\"";
- mes "\"Then say, '" + ("lesser-heal") + "', followed by the name of the one you wish to heal.\"";
+ mes "\"Then say, '" + get(.invocation$, "lesser-heal") + "', followed by the name of the one you wish to heal.\"";
next;
mes "[Elanore the Healer]";
mes "\"You might want to write that down, actually. In fact, you might want to make sure to keep notes of all spells you hear, for you never know if you will hear them again!\"";
- mes "\"The invocation was '" + ("lesser-heal") + "'.\"";
+ mes "\"The invocation was '" + get(.invocation$, "lesser-heal") + "'.\"";
next;
mes "[Elanore the Healer]";
mes "\"This will only cure cuts and bruises, though, and it will take some time to take effect. It will be useless to mend broken bones or more severe injuries!\"";
- mes "\"To heal yourself, it's enough to just say '" + ("lesser-heal") + "' by itself.\"";
+ mes "\"To heal yourself, it's enough to just say '" + get(.invocation$, "lesser-heal") + "' by itself.\"";
next;
mes "[Elanore the Healer]";
mes "\"Let me give you a lifestone to get started with.\"";
@@ -344,7 +344,7 @@ L_T_ChkAdvToLOH:
mes "\"I will now teach you how to heal by laying on your hands. The technique is similar to the spell I taught you at the beginning, but this time you transfer your own health instead of drawing health from a lifestone.\"";
next;
mes "[Elanore the Healer]";
- mes "\"First, lay your hand on the person you wish to heal. You needn't touch the injury itself, though you have to touch the skin until you are a little more experienced. Then, medidate on the word '" + ("lay-on-hands") + "'\"";
+ mes "\"First, lay your hand on the person you wish to heal. You needn't touch the injury itself, though you have to touch the skin until you are a little more experienced. Then, medidate on the word '" + get(.invocation$, "lay-on-hands") + "'\"";
next;
mes "[Elanore the Healer]";
mes "\"This will let your own life force flow into the person you are healing. If you are badly injured yourself, you will not be able to do this.\"";
@@ -500,11 +500,11 @@ L_T_CurePosion:
next;
mes "[Elanore the Healer]";
mes "\"If you would like to cure someone who is poisoned, first rub a Gamboge leaf between your hands. Your hands must be covered in Gamboge liquid for this to work.\"";
- mes "\"Speak the invocation, `" + ("cure-poison") + "'.\"";
+ mes "\"Speak the invocation, `" + get(.invocation$, "cure-poison") + "'.\"";
mes "\"Next, you either touch the poisoned person with your hands, or speak their name. You have to be close for this to work, though.\"";
next;
mes "[Elanore the Healer]";
- mes "\"Once again, the invocation is `" + ("cure-poison") + "'.\"";
+ mes "\"Once again, the invocation is `" + get(.invocation$, "cure-poison") + "'.\"";
mes "\"Come back again soon; there is another spell I would like to teach you.\"";
next;
set @Q_status, @STATUS_LEARNED_CURE_POISON;
diff --git a/world/map/npc/006-1/spirit.txt b/world/map/npc/006-1/spirit.txt
index 9a839a81..68e1bbe7 100644
--- a/world/map/npc/006-1/spirit.txt
+++ b/world/map/npc/006-1/spirit.txt
@@ -178,7 +178,7 @@ L_Next5:
mes "\"Kekeke... excellent! Yes, here goes your first spell, the flying backpack! If you are overloaded, it will take the load off your shoulders.\"";
next;
mes "[Earth Spirit]";
- mes "\"Take a cocoon, living or dead, and suffuse it in magic. Whisper '" + ("flying-backpack") + "', and feel it float!\"";
+ mes "\"Take a cocoon, living or dead, and suffuse it in magic. Whisper '" + get(.invocation$, "flying-backpack") + "', and feel it float!\"";
goto L_Q_magic_finish;
L_Q_magic_3:
@@ -196,7 +196,7 @@ L_Next6:
mes "\"Yeees, good! This one is a protection spell, making your skin harder. You need a hard spike for it, though. Hold that spike in your hands, and focus on it.\"";
next;
mes "[Earth Spirit]";
- mes "\"Next, say '" + ("protect") + "', and feel your skin grow rigid! Very useful against stings and stabs and pokes and pricks and that sort of stuff.\"";
+ mes "\"Next, say '" + get(.invocation$, "protect") + "', and feel your skin grow rigid! Very useful against stings and stabs and pokes and pricks and that sort of stuff.\"";
goto L_Q_magic_finish;
L_Q_magic_4:
diff --git a/world/map/npc/008-1/hinnak.txt b/world/map/npc/008-1/hinnak.txt
index d3828d74..d16460c3 100644
--- a/world/map/npc/008-1/hinnak.txt
+++ b/world/map/npc/008-1/hinnak.txt
@@ -217,7 +217,7 @@ L_Sagatha_scary:
L_Sagatha_word:
mes "[Farmer Hinnak]";
- mes "\"Oh, I can't be sure... but something like '" + ("summon-maggots") + "', I think.\"";
+ mes "\"Oh, I can't be sure... but something like '" + get(.invocation$, "summon-maggots") + "', I think.\"";
goto L_Close;
L_NoBeer:
diff --git a/world/map/npc/009-2/misc.txt b/world/map/npc/009-2/misc.txt
index 139033ec..1c1d3897 100644
--- a/world/map/npc/009-2/misc.txt
+++ b/world/map/npc/009-2/misc.txt
@@ -39,7 +39,7 @@ L_magic:
mes "The page after that is once again hastily written, with many crossed out words and sections and side remarks such as 'it almost worked' or 'it worked fine yesterday.'";
next;
mes "[Bookshelf]";
- mes "The last word on that page is '" + ("make-iron-powder") + ",' and it's underlined twice with a comment next to it saying 'finally got it right.'";
+ mes "The last word on that page is '" + get(.invocation$, "make-iron-powder") + ",' and it's underlined twice with a comment next to it saying 'finally got it right.'";
next;
mes "[Bookshelf]";
mes "Unfortunately, you can't make out what the transmutation is for or even whether it requires any materials...";
diff --git a/world/map/npc/009-2/wyara.txt b/world/map/npc/009-2/wyara.txt
index d0bffbea..246d458a 100644
--- a/world/map/npc/009-2/wyara.txt
+++ b/world/map/npc/009-2/wyara.txt
@@ -242,7 +242,7 @@ L_M_spell:
L_M_spell3:
mes "[Wyara the Witch]";
- mes "\"Now that you know the basics of nature magic, here is one of my favourites: '" + ("rain") + "' will summon rain, whereever you are standing. It will consume a bottle of water, though.\"";
+ mes "\"Now that you know the basics of nature magic, here is one of my favourites: '" + get(.invocation$, "rain") + "' will summon rain, whereever you are standing. It will consume a bottle of water, though.\"";
if (getskilllv(SKILL_MAGIC) < 2)
mes "\"You are not powerful enough to use it yet, though; you will first have to absorb more magic from the mana seed.\"";
next;
@@ -250,14 +250,14 @@ L_M_spell3:
L_M_spell2:
mes "[Wyara the Witch]";
- mes "\"Here is another useful one: '" + ("detect-players") + "'. It will tell you the names of everyone nearby, but beware that there are ways to protect against it.\"";
+ mes "\"Here is another useful one: '" + get(.invocation$, "detect-players") + "'. It will tell you the names of everyone nearby, but beware that there are ways to protect against it.\"";
if (getskilllv(SKILL_MAGIC) < 2)
mes "\"Hmm. You aren't powerful enough for this one either yet, I think.\"";
next;
if (!(getpartnerid2()))
goto L_M_main;
mes "[Wyara the Witch]";
- mes "\"Married partners can find each other even more easily. Use the '" + ("sense-spouse") + "' spell instead.\"";
+ mes "\"Married partners can find each other even more easily. Use the '" + get(.invocation$, "sense-spouse") + "' spell instead.\"";
next;
goto L_M_main;
diff --git a/world/map/npc/009-3/sword.txt b/world/map/npc/009-3/sword.txt
index dbb177bc..1a427731 100644
--- a/world/map/npc/009-3/sword.txt
+++ b/world/map/npc/009-3/sword.txt
@@ -103,7 +103,7 @@ L_Next1:
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: '" + ("magic-blade") + "'\"";
+ mes "\"So be it, fellow warrior. Hear the incantation for the blade spell: '" + get(.invocation$, "magic-blade") + "'\"";
mes "\"Hold a knife, sharp or regular, when thou speakest it.\"";
set @Q_status, @STATUS_LEARNED_MAGICBLADE;
callsub S_update_var;
diff --git a/world/map/npc/011-1/auldsbel.txt b/world/map/npc/011-1/auldsbel.txt
index 4a57b75b..f4c328ce 100644
--- a/world/map/npc/011-1/auldsbel.txt
+++ b/world/map/npc/011-1/auldsbel.txt
@@ -236,7 +236,7 @@ L_Sul_t_s:
mes "\"Very well, then. You have been quite helpful with my experiments, after all. As you may have noticed, the spell takes a pile of volcanic ashes. Close your hands around it, then whisper the invocation.\"";
next;
mes "[Auldsbel the Wizard]";
- mes "\"That invocation is '" + ("make-sulphur") + "'.\"";
+ mes "\"That invocation is '" + get(.invocation$, "make-sulphur") + "'.\"";
next;
mes "[Auldsbel the Wizard]";
mes "\"You may find that you can transmute the powder more effectively after a while; that is perfectly natural.\"";
@@ -332,7 +332,7 @@ L_about_nature:
L_about_other_spells:
mes "[Auldsbel the Wizard]";
- mes "\"A few spells are not claimed by any particular school of magic. In practice, this means that anyone can cast them if they just have sufficient magical power. The most prominent example is the 'detect magic' spell, '" + ("detect-magic") + "'.\"";
+ mes "\"A few spells are not claimed by any particular school of magic. In practice, this means that anyone can cast them if they just have sufficient magical power. The most prominent example is the 'detect magic' spell, '" + get(.invocation$, "detect-magic") + "'.\"";
next;
goto L_a_s_minimenu;
@@ -984,10 +984,10 @@ L_learn_spell:
mes "\"This spell is a simple transmutation invocation. All it takes is a clean wooden log. Hold it in your hand, focus your powers, and say the magic invocation.\"";
next;
mes "[Auldsbel the Wizard]";
- mes "\"You can turn the log into a wooden figurine by imagining the creature whose shape you want in your head and saying `" + ("transmute-wood-to-figurine") + ",' followed by the last syllable of the name of the creature you want to shape it into.\"";
+ mes "\"You can turn the log into a wooden figurine by imagining the creature whose shape you want in your head and saying `" + get(.invocation$, "spell-transmute-wood") + ",' followed by the last syllable of the name of the creature you want to shape it into.\"";
next;
mes "[Auldsbel the Wizard]";
- mes "\"So `" + ("transmute-wood-to-figurine") + " lurk' for a Skytlurk figurine, for example. If you know what a Skytlurk is, I mean, otherwise you will have a hard time imagining it. You may want to try some others instead, though.\"";
+ mes "\"So `" + get(.invocation$, "spell-transmute-wood") + " lurk' for a Skytlurk figurine, for example. If you know what a Skytlurk is, I mean, otherwise you will have a hard time imagining it. You may want to try some others instead, though.\"";
next;
mes "[Auldsbel the Wizard]";
mes "\"Oh... and it has to be the old Tritan name. Most creatures nowadays have very different names, but some old Tritan names have survived. Just try some, until you find one that fits.\"";
@@ -1001,7 +1001,7 @@ L_learn_spell:
L_repeat_spell:
mes "[Auldsbel the Wizard]";
- mes "\"The invocation is `" + ("transmute-wood-to-figurine") + ",' followed by the last syllable of the name of the creature you want to shape the log into. So `" + ("transmute-wood-to-figurine") + " lurk' for a Skytlurk figurine.\"";
+ mes "\"The invocation is `" + get(.invocation$, "spell-transmute-wood") + ",' followed by the last syllable of the name of the creature you want to shape the log into. So `" + get(.invocation$, "spell-transmute-wood") + " lurk' for a Skytlurk figurine.\"";
next;
mes "[Auldsbel the Wizard]";
mes "\"But keep two things in mind: First, you must KNOW what the creature looks like – so a Skytlurk probably won't work – and second, you must use the old Tritan name of it. `Fluffy' and `Scorpion' are modern names, so those won't work, you should try some others.\"";
@@ -1092,7 +1092,7 @@ L_Next9:
mes "[1000 experience points]";
next;
mes "[Auldsbel the Wizard]";
- mes "\"Now, listen carefully: to make a short tank top out of three pieces of cloth, you must use the invocation '" + ("make-short-tanktop") + "'.\"";
+ mes "\"Now, listen carefully: to make a short tank top out of three pieces of cloth, you must use the invocation '" + get(.invocation$, "make-short-tanktop") + "'.\"";
next;
mes "[Auldsbel the Wizard]";
mes "\"But be careful; transmutations can go wrong, and that can injure you. When you have more overall spellcasting practice, come back to me.\"";
@@ -1131,7 +1131,7 @@ L_Next10:
mes "[1000 experience points]";
next;
mes "[Auldsbel the Wizard]";
- mes "\"The next spell I have will make a normal tank top out of four pieces of cloth. The invocation is '" + ("make-tanktop") + "', make sure to write this down.\"";
+ mes "\"The next spell I have will make a normal tank top out of four pieces of cloth. The invocation is '" + get(.invocation$, "make-tanktop") + "', make sure to write this down.\"";
next;
goto L_main_menu;
@@ -1161,7 +1161,7 @@ L_Next11:
mes "[1000 experience points]";
next;
mes "[Auldsbel the Wizard]";
- mes "\"To make a shirt, use the invocation '" + ("make-shirt") + "'. This will require five pieces of cloth.\"";
+ mes "\"To make a shirt, use the invocation '" + get(.invocation$, "make-shirt") + "'. This will require five pieces of cloth.\"";
next;
goto L_main_menu;
@@ -1191,7 +1191,7 @@ L_Next12:
mes "[1000 experience points]";
next;
mes "[Auldsbel the Wizard]";
- mes "\"This spell makes arrows out of a single wooden log. Its invocation is '" + ("make-arrows") + "'.\"";
+ mes "\"This spell makes arrows out of a single wooden log. Its invocation is '" + get(.invocation$, "make-arrows") + "'.\"";
next;
goto L_main_menu;
@@ -1205,7 +1205,7 @@ L_stu_3:
L_stu_3_repeat:
mes "[Auldsbel the Wizard]";
- mes "\"This one has the invocation `" + ("make-concentration-potion") + "'. Put two cobalt leaves and two pink flower petals into a bottle of water, hold it up, and speak that phrase.\"";
+ mes "\"This one has the invocation `" + get(.invocation$, "make-concentration-potion") + "'. Put two cobalt leaves and two pink flower petals into a bottle of water, hold it up, and speak that phrase.\"";
next;
mes "[Auldsbel the Wizard]";
mes "\"It is a tricky spell, but if it works out, you will transform the bottle into a concentration potion.\"";
diff --git a/world/map/npc/012-3/mana-seed.txt b/world/map/npc/012-3/mana-seed.txt
index 35d6ea52..c75125e4 100644
--- a/world/map/npc/012-3/mana-seed.txt
+++ b/world/map/npc/012-3/mana-seed.txt
@@ -37,7 +37,7 @@
"You may only be children, but you recognize that it is this man only who can save the world. As the walls rush towards you to crush your small group, you exchange a glance with your twin sister – there is no doubt what you must do...",
"The sacred place is surrounded by nothingness; were it not for your magic, you would have no hope of returning. The old and young man stands nearby; he has been waiting for you, for centuries. He has all the time in the world, after all...",
"Nothing remains behind. The underground castle is empty now, its chambers plundered, its throne destroyed. Shivering, you climb down the stairs, towards the wailing of the underworld that is waiting beneath...",
- "You feel soft, fluffy fur brushing against your skin and are filled with happiness. Somehow, the word `" + ("happy-curse") + "' comes to mind...";
+ "You feel soft, fluffy fur brushing against your skin and are filled with happiness. Somehow, the word `" + get(.invocation$, "happy-curse") + "' comes to mind...";
set @max_magic, 2;
diff --git a/world/map/npc/013-1/sagatha.txt b/world/map/npc/013-1/sagatha.txt
index 84336eef..fe7503a6 100644
--- a/world/map/npc/013-1/sagatha.txt
+++ b/world/map/npc/013-1/sagatha.txt
@@ -267,7 +267,7 @@ L_teach_N14:
mes "\"Some forest creatures sometimes overgrow their fur or hide. That makes them uncomfortable.\"";
next;
mes "[Sagatha the Witch]";
- mes "\"You can help them with shearing magic. Press your hands together and say '" + ("shear") + "'. Then touch them with your hands, and brush off any excess.\"";
+ mes "\"You can help them with shearing magic. Press your hands together and say '" + get(.invocation$, "shear") + "'. Then touch them with your hands, and brush off any excess.\"";
next;
mes "[Sagatha the Witch]";
mes "\"The spell is strong, so you only need to do this once. Be careful not to cut them. Some things they shed are useful. Often they will leave them to you as a thank-you.\"";
@@ -280,7 +280,7 @@ L_teach_N10:
mes "\"Next, a nature spell. Take a cocoon shell. Hold it in your hand. Feel its lightness.\"";
next;
mes "[Sagatha the Witch]";
- mes "\"Now whisper '" + ("flying-backpack") + "', and if your backpack was pressing on you you should no longer feel it now.\"";
+ mes "\"Now whisper '" + get(.invocation$, "flying-backpack") + "', and if your backpack was pressing on you you should no longer feel it now.\"";
goto L_practice;
L_teach_A10:
@@ -290,14 +290,14 @@ L_teach_A10:
mes "\"To protect against others' magic, take a small mushroom from a shady place. Mushrooms draw things out of the earth. Rub your mushroom into pieces between your hands.\"";
next;
mes "[Sagatha the Witch]";
- mes "\"Then say '" + ("barrier") + "' and let the mushroom's power take over.\"";
+ mes "\"Then say '" + get(.invocation$, "barrier") + "' and let the mushroom's power take over.\"";
goto L_practice;
L_teach_A11:
if (@mexp < 200)
goto L_teach_noexp;
mes "[Sagatha the Witch]";
- mes "\"If you must fight, call allies. You can call spiky mushrooms out of the ground with a mushroom spike and a root. Hold up the spike and call out to them: '" + ("summon-spiky-mushrooms") + "'. Then press the root to the ground.\"";
+ mes "\"If you must fight, call allies. You can call spiky mushrooms out of the ground with a mushroom spike and a root. Hold up the spike and call out to them: '" + get(.invocation$, "summon-spiky-mushrooms") + "'. Then press the root to the ground.\"";
next;
mes "[Sagatha the Witch]";
mes "\"Spiky mushrooms often grow too many spikes, so you can shear the spikes off of some.\"";
@@ -308,17 +308,17 @@ L_teach_A12:
if (@mexp < 220)
goto L_teach_noexp;
mes "[Sagatha the Witch]";
- mes "\"You can call fluffies, too. But for them you must call out '" + ("summon-fluffies") + "' instead, with white fluffy fur instead of a spike. And don't forget the root.\"";
+ mes "\"You can call fluffies, too. But for them you must call out '" + get(.invocation$, "summon-fluffies") + "' instead, with white fluffy fur instead of a spike. And don't forget the root.\"";
goto L_practice;
L_teach_N11:
if (@mexp < 250)
goto L_teach_noexp;
mes "[Sagatha the Witch]";
- mes "\"You can harden your skin with a hard spike. Hold it in your hands and speak '" + ("protect") + "', then draw its hardness into your skin.\"";
+ mes "\"You can harden your skin with a hard spike. Hold it in your hands and speak '" + get(.invocation$, "protect") + "', then draw its hardness into your skin.\"";
next;
mes "[Sagatha the Witch]";
- mes "\"Or call it into someone else's skin, by saying that someone's name right after the '" + ("protect") + "'.\"";
+ mes "\"Or call it into someone else's skin, by saying that someone's name right after the '" + get(.invocation$, "protect") + "'.\"";
goto L_practice;
L_teach_noexp:
diff --git a/world/map/npc/013-2/wizard.txt b/world/map/npc/013-2/wizard.txt
index cf8598b0..32a2a623 100644
--- a/world/map/npc/013-2/wizard.txt
+++ b/world/map/npc/013-2/wizard.txt
@@ -75,7 +75,7 @@ L_TeachSpell:
mes "\"This one may not seem too powerful, but it can be quite handy; it's the 'hide' spell. It will shield you from some forms of detection magic.\"";
next;
mes "[Old Wizard]";
- mes "\"Put a piece of cotton cloth on your head, and speak out '" + ("hide") + "', loudly and clearly. The protection lasts quite long, but you may have to renew it on occasion.\"";
+ mes "\"Put a piece of cotton cloth on your head, and speak out '" + get(.invocation$, "spell-hide") + "', loudly and clearly. The protection lasts quite long, but you may have to renew it on occasion.\"";
next;
mes "[Old Wizard]";
mes "\"You can also cast it on others, of course. Just speak their name after you pronounce the invocation.\"";
diff --git a/world/map/npc/015-1/sword.txt b/world/map/npc/015-1/sword.txt
index 90c56283..be23e23a 100644
--- a/world/map/npc/015-1/sword.txt
+++ b/world/map/npc/015-1/sword.txt
@@ -109,7 +109,7 @@ L_Initial_ok:
mes "\"Oh, my apologies – that was a little overly dramatic. But I do not get to talk to thy kin anymore all that often.\"";
next;
mes "[Mystic Sword]";
- mes "\"For the flare dart spell throw a handful of sulphur powder up into the air, and say, '" + ("flare-dart") + "'.\"";
+ mes "\"For the flare dart spell throw a handful of sulphur powder up into the air, and say, '" + get(.invocation$, "flare-dart") + "'.\"";
set @Q_status, @STATUS_LEARNED_FLAREDART;
callsub S_update_var;
next;
@@ -257,7 +257,7 @@ L_Next3:
callsub S_update_var;
next;
mes "[Mystic Sword]";
- mes "\"Speak '" + ("magic-knuckles") + "' and take a glass of beer and drink it, without ever taking it off thy lips. This will harden and enchant thy fists, turning them into powerful weapons.\"";
+ mes "\"Speak '" + get(.invocation$, "magic-knuckles") + "' and take a glass of beer and drink it, without ever taking it off thy lips. This will harden and enchant thy fists, turning them into powerful weapons.\"";
close;
L_L2_almost_done:
@@ -297,7 +297,7 @@ L_Next4:
callsub S_update_var;
next;
mes "[Mystic Sword]";
- mes "\"This powder thou shalst need to cast the lightning spell. Throw it up into the air and shout '" + ("lightning-strike") + "', and smite thine enemies with lightning.\"";
+ mes "\"This powder thou shalst need to cast the lightning spell. Throw it up into the air and shout '" + get(.invocation$, "lightning-strike") + "', and smite thine enemies with lightning.\"";
next;
goto L_Farewell;
diff --git a/world/map/npc/017-4/waric.txt b/world/map/npc/017-4/waric.txt
index 11f836b6..92674a00 100644
--- a/world/map/npc/017-4/waric.txt
+++ b/world/map/npc/017-4/waric.txt
@@ -234,7 +234,7 @@ L_Mushroom:
mes "\"Now that you are a student of mine, I will teach you some spells.\"";
next;
mes "\"We will start with an easy one. I will teach you how to summon a wicked mushroom.\"";
- mes "\"The spell consumes a Small Mushroom and a Dark Crystal. Shove the Dark Crystal into the Small Mushroom and yell " + ("summon-wickedmushroom") +".\"";
+ mes "\"The spell consumes a Small Mushroom and a Dark Crystal. Shove the Dark Crystal into the Small Mushroom and yell " + get(.invocation$, "summon-wickedmushroom") +".\"";
next;
mes "\"A wicked mushroom will appear to fight for you.\"";
set OrumQuest, 37;
@@ -254,7 +254,7 @@ L_Next4:
next;
mes "\"You have to use two roots for this spell. First you have to take one root and break off all the root hair. Shape it into a stick, if you will. Then put it on top of the other root and form an arrow-like structure.\"";
next;
- mes "\"Once this is done you have to throw it in the air and scream " + ("toxic-dart") + " and the two roots will turn into toxic darts, a projectile you can throw.\"";
+ mes "\"Once this is done you have to throw it in the air and scream " + get(.invocation$, "toxic-dart") + " and the two roots will turn into toxic darts, a projectile you can throw.\"";
next;
mes "\"If you want to learn more, come back later.\"";
set OrumQuest, 38;
@@ -312,7 +312,7 @@ L_SnakesSpell:
L_Next7:
mes "[Waric]";
- mes "\"I said " + ("summon-snakes") + ".\"";
+ mes "\"I said " + get(.invocation$, "summon-snakes") + ".\"";
mes "\"Have fun with those spells and use them to cause hate, anger and death.\"";
set OrumQuest, 41;
goto L_Close;
@@ -341,9 +341,9 @@ L_MoreMagic:
L_Next8:
mes "[Waric]";
mes "\"Yes, of course.\"";
- mes "\"To summon the snakes use " + ("summon-snakes") + ".\"";
- mes "\"Say " + ("toxic-dart") + " to make your roots into toxic darts.\"";
- mes "\"And the first spell, to summon wicked mushrooms, is " + ("summon-wickedmushroom") + ".\"";
+ mes "\"To summon the snakes use " + get(.invocation$, "summon-snakes") + ".\"";
+ mes "\"Say " + get(.invocation$, "toxic-dart") + " to make your roots into toxic darts.\"";
+ mes "\"And the first spell, to summon wicked mushrooms, is " + get(.invocation$, "summon-wickedmushroom") + ".\"";
next;
mes "\"Now leave. Spread chaos with the spells I have taught you!\"";
goto L_Close;
diff --git a/world/map/npc/doc/magic b/world/map/npc/doc/magic
new file mode 100644
index 00000000..8a2b84e1
--- /dev/null
+++ b/world/map/npc/doc/magic
@@ -0,0 +1,23 @@
+Nibble use:
+---------------
+== QUEST_MAGIC
+ N0, N1: Auldsbel
+ N2: druid tree quest, mouboo quest (shared)
+ N3: Sagatha unhappiness counter
+ N4, N5: Sagatha
+ N6, N7: Swords
+== QUEST_MAGIC2
+ N0: Evil Earth Spirit
+ N1: Elanore
+ N2: Wyara
+ N3: Elanore subquests (Cure Kadiya)
+ N4-N7: may be messy at this point
+
+The various magic scripts pack their status into these variables.
+Locally, they use `@Q_status' to maintain the state, and use a function
+`S_update_var' to update it. This is all re-using the same code, setting
+the `@Q_MASK' and `@Q_SHIFT' variables appropriately.
+
+ There are a few exceptions (such as the Kadiya quest) wherein
+a separate helper function sets a dedicated local variable, or some hackery
+in Auldsbel wherein we read stati directly, merely to enable certain options.
diff --git a/world/map/npc/magic/level2-barrier.txt b/world/map/npc/magic/level2-barrier.txt
index 3c7ef29f..d692bee1 100644
--- a/world/map/npc/magic/level2-barrier.txt
+++ b/world/map/npc/magic/level2-barrier.txt
@@ -1,4 +1,4 @@
--|script|magic-barrier|32767
+-|script|barrier|32767
{
if(call("magic_checks")) end; // << I wish we had functions that could return >>
if (Sp < 15) end;
diff --git a/world/map/npc/magic/level2-summon-fluffies.txt b/world/map/npc/magic/level2-summon-fluffies.txt
index 70e5121c..77f21fab 100644
--- a/world/map/npc/magic/level2-summon-fluffies.txt
+++ b/world/map/npc/magic/level2-summon-fluffies.txt
@@ -1,4 +1,4 @@
--|script|fluffies|32767
+-|script|summon-fluffies|32767
{
end;
diff --git a/world/map/npc/magic/level2-summon-mouboo.txt b/world/map/npc/magic/level2-summon-mouboo.txt
index f11f6608..13b51ae6 100644
--- a/world/map/npc/magic/level2-summon-mouboo.txt
+++ b/world/map/npc/magic/level2-summon-mouboo.txt
@@ -1,4 +1,4 @@
--|script|mouboos|32767
+-|script|summon-mouboo|32767
{
end;
diff --git a/world/map/npc/magic/level2-summon-pinkie.txt b/world/map/npc/magic/level2-summon-pinkie.txt
index 4e7ebf1a..a3949c78 100644
--- a/world/map/npc/magic/level2-summon-pinkie.txt
+++ b/world/map/npc/magic/level2-summon-pinkie.txt
@@ -1,4 +1,4 @@
--|script|pinkies|32767
+-|script|summon-pinkie|32767
{
end;
diff --git a/world/map/npc/magic/level2-summon-spiky-mushroom.txt b/world/map/npc/magic/level2-summon-spiky-mushroom.txt
index 59cc295d..b39c53ad 100644
--- a/world/map/npc/magic/level2-summon-spiky-mushroom.txt
+++ b/world/map/npc/magic/level2-summon-spiky-mushroom.txt
@@ -1,4 +1,4 @@
--|script|spikymushroom|32767
+-|script|summon-spiky-mushrooms|32767
{
end;
diff --git a/world/map/npc/magic/level2-summon-wickedmushroom.txt b/world/map/npc/magic/level2-summon-wickedmushroom.txt
index bd095144..46e608a6 100644
--- a/world/map/npc/magic/level2-summon-wickedmushroom.txt
+++ b/world/map/npc/magic/level2-summon-wickedmushroom.txt
@@ -1,4 +1,4 @@
--|script|wickedmushroom|32767
+-|script|summon-wickedmushroom|32767
{
end;