summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/constants.conf10
-rw-r--r--npc/020-7-1/core.txt21
-rw-r--r--npc/020-7-1/pagemakers.txt111
-rw-r--r--npc/020-7-1/sage.txt4
-rw-r--r--npc/020-7/elias.txt6
5 files changed, 145 insertions, 7 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 2d89b0f25..b9e8928c6 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -4302,6 +4302,16 @@ constants_db: {
RB_GLOBALANNOUNCE: 64
RB_DEFAULT: 19 // dispbottom + debugmes + pleasereport
+ comment__: "Blue Sage Constants"
+ // Q - Quest / Investigation Quest
+ BS_QVISITOR: 1
+ BS_QHELPER: 2
+ // PM - Page Maker
+ BS_PMINK: 1
+ BS_PMBINDING: 2
+ BS_PMPAGE: 4
+ BS_PMGLUE: 8
+
comment__: "Being actions"
ACTION_STAND: 0
ACTION_MOVE: 1
diff --git a/npc/020-7-1/core.txt b/npc/020-7-1/core.txt
index 8fbb318d2..c27c06b5c 100644
--- a/npc/020-7-1/core.txt
+++ b/npc/020-7-1/core.txt
@@ -1 +1,22 @@
// Core functions
+
+// Some setup is required
+
+// BSQuestion(quest state)
+function script BSQuestion {
+ switch (getarg(0)) {
+ case 3:
+ case 4:
+ return BS_QVISITOR;
+ case 5:
+ case 8:
+ return BS_QHELPER;
+ case 6:
+ case 7:
+ case 9:
+ case 10:
+ return BS_QVISITOR | BS_QHELPER;
+ }
+ return 0;
+}
+
diff --git a/npc/020-7-1/pagemakers.txt b/npc/020-7-1/pagemakers.txt
index 24ccee558..790f37b29 100644
--- a/npc/020-7-1/pagemakers.txt
+++ b/npc/020-7-1/pagemakers.txt
@@ -6,10 +6,115 @@
// Workers which produces pages
// helperM*
+// NivalisQuest_BlueSage STRUCTURE
+// FIELD 1:
+// INVESTIGATION
+// FIELD 2:
+// BOOK MAKING QUEST
+// 1 - Illustrations delivered (BS_PMINK)
+// 2 - Bindings delivered (BS_PMBINDING)
+// 4 - Pages delivered (BS_PMPAGE)
+// 8 - Glue delivered (BS_PMGLUE)
+// =15: All items delivered
+// FIELD 3:
+// SLIME HUNTING QUEST
+
020-7-1,34,56,0 script Eevert NPC_BLUESAGEWORKER_MA,{
- npctalk3 l("I make illustrations with ink/powders.");
- goodbye;
- end;
+ .@q1=getq(NivalisQuest_BlueSage);
+ .@q2=getq2(NivalisQuest_BlueSage);
+ if (.@q2 & BS_PMINK)
+ goto L_Done;
+ mesn;
+ mesq l("Mh. I wonder how I'm expected to perform my task with this meager equipment. The new books will look pathetic.");
+L_Main:
+ next;
+ select
+ l("What is your problem?"),
+ rif(BSQuestion(.@q1) & BS_QVISITOR, l("Can you tell me anything about the visitor with the mask?") ),
+ rif(BSQuestion(.@q1) & BS_QHELPER, l("What's your opinion of Peetu and how he does his work?") ),
+ l("Not my problem.");
+ mes "";
+ switch (@menu) {
+ case 2:
+ mesn;
+ mesq l("A visitor? I don't really pay attention to visitors, unless it's someone notable.");
+ goto L_Main;
+ case 3:
+ mesn;
+ mesq l("Ah, Peetu. I really appreciate his sense for high quality work. The requirements to become a helper of a sage are already high, but Peetu is outstanding. He has a talent for magic and combined with his diligence, it's quite remarkable.");
+ next;
+ mesn;
+ mesq l("That's why I'm really confused about this situation, since he was the one performing the sealing of the slimes. I wonder what went wrong.");
+ if (is_between(4, 7, .@q))
+ setq1 NivalisQuest_BlueSage, .@q + 3;
+ goto L_Main;
+ case 4:
+ close;
+ }
+ mesn;
+ mesq l("I'm doing the covers and illustrations for the new books we create from the pieces of the old ones.");
+ next;
+ mesn;
+ mesq l("But due to all of the chaos from when the slimes escaped, most of the phials of colored ink were broken. How am I supposed to do the illustrations without color?");
+ next;
+ mesn;
+ mesq l("I could make ink myself, but I am lacking some material...");
+ next;
+ mes l("@@/@@ @@", countitem(CobaltHerb), 50, getitemlink(CobaltHerb));
+ mes l("@@/@@ @@", countitem(GambogeHerb), 50, getitemlink(GambogeHerb));
+ mes l("@@/@@ @@", countitem(AlizarinHerb), 50, getitemlink(AlizarinHerb));
+ mes l("@@/@@ @@", countitem(ArtichokeHerb), 50, getitemlink(ArtichokeHerb));
+ mes l("@@/@@ @@", countitem(MauveHerb), 50, getitemlink(MauveHerb));
+ mes l("@@/@@ @@", countitem(MaggotSlime), 10, getitemlink(MaggotSlime));
+ mes l("@@/@@ @@", countitem(DuckFeather), 1, getitemlink(DuckFeather));
+ next;
+ mesn;
+ mesq l("Hehe... Some material... %%5");
+ next;
+ select
+ l("Uh... Yeah, that's not funny."),
+ l("Worry not, I have them with me.");
+ mes "";
+ if (@menu == 1) {
+ mesn;
+ mesq l("I agree with you. Most of these materials can't even be found on Nivalis.");
+ next;
+ mesn;
+ mesq l("I guess I'll need to try to work with whatever ink is left until the supplies arrive next month...");
+ close;
+ }
+ if (countitem(CobaltHerb) < 50 ||
+ countitem(GambogeHerb) < 50 ||
+ countitem(AlizarinHerb) < 50 ||
+ countitem(ArtichokeHerb) < 50 ||
+ countitem(MauveHerb) < 50 ||
+ countitem(MaggotSlime) < 10 ||
+ countitem(DuckFeater) < 1) {
+ mesn;
+ mesq l("Do you know how to count, maggot? %%5");
+ next;
+ mesn;
+ mesq l("You should be ASHAMED of yourself, you liar.");
+ close;
+ }
+ delitem CobaltHerb, 50;
+ delitem GambogeHerb, 50;
+ delitem AlizarinHerb, 50;
+ delitem ArtichokeHerb, 50;
+ delitem MauveHerb, 50;
+ delitem MaggotSlime, 10;
+ delitem DuckFeater, 1;
+ setq2 NivalisQuest_BlueSage, .@q2|BS_PMINK;
+ getexp 3535, 215; // 20% from references, rounded up. It's part of main story.
+ // is present. REMEMBER THIS IS A LEVEL 36/16 QUEST, REGARDLESS IF EVERYONE DECIDES
+ // TO DO IT AT LEVEL 40. Exp reward will not change. Values rounded up.
+ // Besides, it gives Job Experience, which is not common.
+ close;
+
+L_Done:
+ mesn;
+ mesq l("Thanks for your help with the inks! Now I'll be able to fulfill my tasks adequately. Some of these books were really valuable, and it's important to recreate them as good as possible.");
+ close;
OnInit:
.sex=G_MALE;
diff --git a/npc/020-7-1/sage.txt b/npc/020-7-1/sage.txt
index cb31d51b5..96340d02b 100644
--- a/npc/020-7-1/sage.txt
+++ b/npc/020-7-1/sage.txt
@@ -3,9 +3,7 @@
// Jesusalva
// TMW Org.
// Description:
-// Blue Sage (and officers)
-
-// Peetu: Move to 020-7 (so, not on this file)
+// Blue Sage
// Oskari: Need to be placed somewhere here (on this file, variant B)
diff --git a/npc/020-7/elias.txt b/npc/020-7/elias.txt
index 725f7353e..914ec6b57 100644
--- a/npc/020-7/elias.txt
+++ b/npc/020-7/elias.txt
@@ -5,12 +5,16 @@
// Description:
// Controls access to Blue Sage Residence
// Minimum level: 36 (implicit)
+// Minimum jblvl: 16 (implicit)
// NivalisQuest_BlueSage STRUCTURE
// FIELD 1:
// INVESTIGATION
// 1 - ACCESS GRANTED
-// 2~10 - FOLLOW LOGIC
+// 2~11 - FOLLOW LOGIC
+// 12 - COMPLETE
+// 13 - STDBY OUTSIDE
+// 14 - STDBY INSIDE
// FIELD 2:
// BOOK MAKING QUEST
// FIELD 3: