summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/031-1_NivalisPort/_import.txt2
-rw-r--r--npc/031-1_NivalisPort/angelaOutside.txt135
-rw-r--r--npc/031-1_NivalisPort/house.txt18
-rw-r--r--npc/031-2_Angelas_House/_import.txt5
-rw-r--r--npc/031-2_Angelas_House/_mobs.txt7
-rw-r--r--npc/031-2_Angelas_House/_warps.txt3
-rw-r--r--npc/031-2_Angelas_House/angelaHouse.txt114
-rw-r--r--npc/031-2_Angelas_House/cindyHouse.txt64
-rw-r--r--npc/031-3_Cave/_import.txt1
-rw-r--r--npc/031-3_Cave/cindyCave.txt123
-rw-r--r--npc/_import.txt1
11 files changed, 473 insertions, 0 deletions
diff --git a/npc/031-1_NivalisPort/_import.txt b/npc/031-1_NivalisPort/_import.txt
index 09d29af7..b1e59215 100644
--- a/npc/031-1_NivalisPort/_import.txt
+++ b/npc/031-1_NivalisPort/_import.txt
@@ -2,3 +2,5 @@ map: 031-1.gat
npc: npc/031-1_NivalisPort/_mobs.txt
npc: npc/031-1_NivalisPort/_warps.txt
npc: npc/031-1_NivalisPort/frozenbeard.txt
+npc: npc/031-1_NivalisPort/angelaOutside.txt
+npc: npc/031-1_NivalisPort/house.txt
diff --git a/npc/031-1_NivalisPort/angelaOutside.txt b/npc/031-1_NivalisPort/angelaOutside.txt
new file mode 100644
index 00000000..3c10df46
--- /dev/null
+++ b/npc/031-1_NivalisPort/angelaOutside.txt
@@ -0,0 +1,135 @@
+// author: Jenalya
+// reviewed by:
+// state0: Angela is to upset to tell you anything, needs a concentration potion
+// state1: got the mission to save Cindy
+// state2 and state3: Cindy is saved Angela invites you to visit them for giving a reward
+// state greater than 3: Angela invites and asks you to bring present boxes
+
+//TODO: picture
+031-1.gat,79,24,0 script Angela 154, {
+
+ set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
+ set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
+
+ set @rescue_Cindy, ((QUEST_Nivalis_state & @Q_Nivalis_state_MASK) >> @Q_Nivalis_state_SHIFT);
+
+//TODO: remove DEBUG
+ mes "This menu is for debugging and will be removed";
+ menu
+ "normal", L_normal,
+ "reset quest", -;
+ set @rescue_Cindy, 0;
+ callsub S_Update_Mask;
+
+L_normal:
+//////////////////////////////////
+ if (@rescue_Cindy > 3) goto L_Please_Visit_Again;
+ if (@rescue_Cindy > 1) goto L_Please_Visit;
+ if (@rescue_Cindy == 1) goto L_Please_Help;
+
+ mes "[Angela]";
+ mes "\"Please, I need help! My little daugther!\"";
+ next;
+ mes "\"It's terrible, oh my dear child!\"";
+ next;
+
+ if (countitem("ConcentrationPotion") > 0) goto L_Menu_Potion;
+
+ menu
+ "\"Please calm down and tell me what happened.\"", L_Whining,
+ "Leave", -;
+ close;
+
+L_Whining:
+ mes "[Angela]";
+//TODO: add more whining, enough to make it annoying to read it all
+ mes "\"My poor little daugther, please! Oh no, oh no...\"";
+ next;
+ mes "\"We need to do something! My poor little Cindy! My cute little girl!\"";
+ next;
+ mes "\"It's so terrible, how could that happen? Please, I need help, it's so terrible.\"";
+ next;
+ mes "\"That awful filthy monsters - terrible!\"";
+ next;
+ mes "\"Oh Cindy, my little Cindy - oh no...\"";
+ next;
+ mes "\"Please help, we need to do something!\"";
+ next;
+ mes "\"It's so terrible, my poor cute little Cindy...\"";
+ next;
+ mes "\"Oh, when I think, what might happen to her right now!\"";
+ next;
+ mes "\"She is crying and sobbing.\"";
+ next;
+ mes "\"It seems, she is too upset to tell you anything helpful. If she would just calm down and concentrate a bit...\"";
+ close;
+
+L_Menu_Potion:
+ menu
+ "\"Please calm down and tell me what happened.\"", L_Whining,
+ "Give her a concentration potion.", L_Calm_Down,
+ "Leave", -;
+ close;
+
+L_Calm_Down:
+ if (countitem("ConcentrationPotion") == 0) goto L_No_Potion;
+ delitem "ConcentrationPotion", 1;
+ mes "She drinks the concentration potions and calm down.";
+ mes "[Angela]";
+ mes "\"Thank you, this was helpful.\"";
+ next;
+ mes "\"My daughter Cindy and me were on our way to Santa, to bring him some presents. Many people here in Nivalis are helping Santa with his business.\"";
+ next;
+ mes "\"When we passed the entrance of this cave, a pack of Yetis came out there. It's disturbing, usually, they are very shy.\"";
+ next;
+ mes "\"We tried to run away, but there were to many of them. They took my poor little Cindy and all the presents with them.\"";
+ next;
+ mes "\"Oh my poor little girl. I'm so worried - what might they do with her? Oh no!\"";
+ next;
+ mes "\"You look like an adventurer! Please, can you go in that cave and rescue my little Cindy? I beg you for help!\"";
+ set @rescue_Cindy, 1;
+ callsub S_Update_Mask;
+ close;
+
+L_No_Potion:
+ mes "You don't have a concentration potion.";
+ close;
+
+L_Please_Help:
+ mes "[Angela]";
+ mes "\"Please rescue my daughter!\"";
+ close;
+
+L_Please_Visit:
+ mes "[Angela]";
+ mes "\"Thank you so much for rescueing my beloved Cindy. Please come to visit us in our house at the beach.\"";
+ next;
+ mes "\"My husband is an adventurer like you, and I want to give you something he got on his travels to show my gratitude.\"";
+ close;
+
+L_Please_Visit_Again:
+ mes "[Angela]";
+ mes "\"Hello! You are welcome to visit us in our house at the beach everytime. Cindy loves to see you!\"";
+ next;
+ mes "\"If you have found any present boxes, the Yetis took away, please bring them to our house. Usually, the Yetis are very shy... their behavior is a bit odd.\"";
+ close;
+
+S_Update_Mask:
+ set QUEST_Nivalis_state,
+ (QUEST_Nivalis_state & ~(@Q_Nivalis_state_MASK))
+ | (@rescue_Cindy << @Q_Nivalis_state_SHIFT);
+ return;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/npc/031-1_NivalisPort/house.txt b/npc/031-1_NivalisPort/house.txt
new file mode 100644
index 00000000..c81185d3
--- /dev/null
+++ b/npc/031-1_NivalisPort/house.txt
@@ -0,0 +1,18 @@
+// here is based on the queststatus for the rescue Cindy quest, if the player can enter
+// player can enter, if Cindy is already saved and the player has been invited, quest status > 2
+// author: Jenalya
+
+031-1.gat,95,80,0 script #Door 127,1,1,{
+ set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
+ set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
+
+ set @rescue_Cindy, ((QUEST_Nivalis_state & @Q_Nivalis_state_MASK) >> @Q_Nivalis_state_SHIFT);
+
+ if (@rescue_Cindy > 2) goto L_Warp;
+ mes "The door is locked.";
+ close;
+
+L_Warp:
+ warp "031-2.gat", 23, 28;
+ end;
+}
diff --git a/npc/031-2_Angelas_House/_import.txt b/npc/031-2_Angelas_House/_import.txt
new file mode 100644
index 00000000..20c36fe2
--- /dev/null
+++ b/npc/031-2_Angelas_House/_import.txt
@@ -0,0 +1,5 @@
+map: 031-2.gat
+npc: npc/031-2_Angelas_House/_mobs.txt
+npc: npc/031-2_Angelas_House/_warps.txt
+npc: npc/031-2_Angelas_House/cindyHouse.txt
+npc: npc/031-2_Angelas_House/angelaHouse.txt
diff --git a/npc/031-2_Angelas_House/_mobs.txt b/npc/031-2_Angelas_House/_mobs.txt
new file mode 100644
index 00000000..fadd5d5c
--- /dev/null
+++ b/npc/031-2_Angelas_House/_mobs.txt
@@ -0,0 +1,7 @@
+// 031-2 Angela's House mobs
+
+
+
+031-2.gat,0,0,0 script Mob031-2 -1,{
+ end;
+}
diff --git a/npc/031-2_Angelas_House/_warps.txt b/npc/031-2_Angelas_House/_warps.txt
new file mode 100644
index 00000000..82dfa41c
--- /dev/null
+++ b/npc/031-2_Angelas_House/_warps.txt
@@ -0,0 +1,3 @@
+// 031-2 Angela's House warps
+
+031-2.gat,23,30 warp door -1,-1,031-1.gat,95,82
diff --git a/npc/031-2_Angelas_House/angelaHouse.txt b/npc/031-2_Angelas_House/angelaHouse.txt
new file mode 100644
index 00000000..93ea2228
--- /dev/null
+++ b/npc/031-2_Angelas_House/angelaHouse.txt
@@ -0,0 +1,114 @@
+// author: Jenalya
+// reviewed by:
+// state0, 1, 2: you shouldn't be able to come here
+// state3: it's your first visit, you can choose a reward
+// state4: you can do daily quests with white and yellow presents boxes
+//
+
+//TODO: picture
+031-2.gat,24,26,0 script Angela 154, {
+
+ set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
+ set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
+
+ set @rescue_Cindy, ((QUEST_Nivalis_state & @Q_Nivalis_state_MASK) >> @Q_Nivalis_state_SHIFT);
+
+ if (@rescue_Cindy == 4) goto L_Hello_Again;
+ if (@rescue_Cindy == 3) goto L_Reward;
+
+ mes "...";
+ close;
+
+L_Reward:
+ mes "[Angela]";
+ mes "\"Hello " + strcharinfo(0) + ", thank you again. I'm so glad, Cindy is back home safe.\"";
+ next;
+ mes "\"As I told you, my husband is an adventurer. He is at one of his travels, so he couldn't rescue Cindy himself.\"";
+ next;
+ mes "\"I want to give you one of his treasures. Beside of all the junk he brings, there are some very valuable things.\"";
+ next;
+ mes "\"This item is called the Rock Knife. When you wield it, you feel as robust as a rock.\"";
+
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_Full_Inv;
+
+ getitem "RockKnife", 1;
+
+ set @rescue_Cindy, 4;
+ callsub S_Update_Mask;
+
+ next;
+ mes "\"I hope, this will be useful for you.\"";
+ next;
+ mes "\"I's so glad, Cindy is save now. But there is still another problem. The Yetis took away all the white and yellow present boxes we wanted to bring to Santa!\"";
+ next;
+ mes "\"Usually, Yetis are very shy - I wonder why they do that. There is something strange going on.\"";
+ next;
+ mes "\"May I ask you for help again? I'll give you a small reward for every 3 boxes of one color you bring me.\"";
+ close;
+
+L_Full_Inv:
+ mes "\"Oh, it seems you carry so much stuff - I will keep it for you until you can take it.\"";
+ close;
+
+L_Hello_Again:
+ mes "[Angela]";
+ mes "\"Hello! Good to see you again. Please warm yourself.\"";
+ next;
+ menu
+ "I just wanted to say hello.",-,
+ "I have some yellow present boxes.",L_Yellow,
+ "I have some white present boxes.",L_White;
+ close;
+
+L_Yellow:
+ set @dq_level, 70;
+ set @dq_cost, 32;
+ set @dq_count, 3;
+ set @dq_name$, "YellowPresentBox";
+ set @dq_friendly_name$, "yellow present box";
+ set @dq_money, 5300;
+ set @dq_exp, 1300;
+
+ callfunc "DailyQuest";
+
+ next;
+
+ if (@dq_return ==4) mes "\"Santa will be glad to have them back.\"";
+ close;
+
+L_White:
+ set @dq_level, 80;
+ set @dq_cost, 64;
+ set @dq_count, 3;
+ set @dq_name$, "WhitePresentBox";
+ set @dq_friendly_name$, "white present box";
+ set @dq_money, 10800;
+ set @dq_exp, 2800;
+
+ callfunc "DailyQuest";
+
+ next;
+
+ if (@dq_return ==4) mes "\"You are a great help!\"";
+ close;
+
+S_Update_Mask:
+ set QUEST_Nivalis_state,
+ (QUEST_Nivalis_state & ~(@Q_Nivalis_state_MASK))
+ | (@rescue_Cindy << @Q_Nivalis_state_SHIFT);
+ return;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/npc/031-2_Angelas_House/cindyHouse.txt b/npc/031-2_Angelas_House/cindyHouse.txt
new file mode 100644
index 00000000..4dc6b595
--- /dev/null
+++ b/npc/031-2_Angelas_House/cindyHouse.txt
@@ -0,0 +1,64 @@
+// author: Jenalya
+// reviewed by:
+// state0,1,2: you shouldn't be able to reach this place
+// state3 and greater: Cindy is saved, she says one of some random phrases
+//
+
+//TODO: picture
+031-2.gat,22,25,0 script Cindy 114, {
+
+ set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
+ set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
+
+ set @rescue_Cindy, ((QUEST_Nivalis_state & @Q_Nivalis_state_MASK) >> @Q_Nivalis_state_SHIFT);
+
+ if (@rescue_Cindy > 2) goto L_Happy_Random;
+
+ mes "...";
+ close;
+
+L_Happy_Random:
+ getinventorylist;
+ set @candy, rand(50);
+ if (@inventorylist_count < 100 && @candy == 42) goto L_Candy;
+
+ setarray @quote_Cindy$, "Thank you so much for rescueing me!",
+ "My mother made really tasty cookies yesterday. But I already ate them all...",
+ "I want to go ice skating tomorrow. That will be fun!",
+ "I wonder, when Daddy will come home next time. He always brings exciting stuff!",
+ strcharinfo(0) + "! You're my hero!",
+ "My mother is so upset about the Yetis - they are very very shy usually. You have to be lucky to see one. I wonder, what's wrong with them.",
+ "When I'm a little older, I want to travel like you do and my father. I want to see every place on the world!",
+ "Did you ever meet Santa? He's very kind! He always gives me some candy, when we go to see him.",
+ strcharinfo(0) + ", you are sooo strong! Amazing! But my dad is strong too!";
+ set @random, rand(9);
+ set @quote$, "\"" + @quote_Cindy$[@random] + "\"";
+ mes "[Cindy]";
+ mes @quote$;
+ close;
+
+L_Candy:
+ mes "[Cindy]";
+ mes "\"Santa gave me some candy! Please, take that!\"";
+ getitem "Candy", 1;
+ close;
+
+S_Update_Mask:
+ set QUEST_Nivalis_state,
+ (QUEST_Nivalis_state & ~(@Q_Nivalis_state_MASK))
+ | (@rescue_Cindy << @Q_Nivalis_state_SHIFT);
+ return;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/npc/031-3_Cave/_import.txt b/npc/031-3_Cave/_import.txt
index d28ddba7..1f56c50d 100644
--- a/npc/031-3_Cave/_import.txt
+++ b/npc/031-3_Cave/_import.txt
@@ -2,3 +2,4 @@ map: 031-3.gat
npc: npc/031-3_Cave/_mobs.txt
npc: npc/031-3_Cave/_warps.txt
npc: npc/031-3_Cave/labyrinth.txt
+npc: npc/031-3_Cave/cindyCave.txt
diff --git a/npc/031-3_Cave/cindyCave.txt b/npc/031-3_Cave/cindyCave.txt
new file mode 100644
index 00000000..738868d6
--- /dev/null
+++ b/npc/031-3_Cave/cindyCave.txt
@@ -0,0 +1,123 @@
+// author: Jenalya
+// reviewed by:
+// state0: Cindy is totally scared and does nothing helpful
+// state1: you are able to open the cage
+// state2 and greater: Cindy is saved, she asks you to visit them
+//
+
+//TODO: picture
+031-3.gat,122,51,0 script Cindy 114, {
+ set @KEYS_AMOUNT, 10;
+
+ set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
+ set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
+
+ set @rescue_Cindy, ((QUEST_Nivalis_state & @Q_Nivalis_state_MASK) >> @Q_Nivalis_state_SHIFT);
+
+ if (Sex == 0) set @title$, "Misses";
+ if (Sex == 1) set @title$, "Mister";
+
+ if (@rescue_Cindy >= 3) goto L_Please_Visit;
+ if (@rescue_Cindy == 2) goto L_Reward;
+ if (@rescue_Cindy == 1) goto L_Please_Help;
+
+ mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage.";
+ next;
+ mes "You don't know, what to do.";
+ close;
+
+L_Please_Help:
+ mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage.";
+ next;
+ menu
+ "Hello Cindy, I'm here to save you.", - ;
+ mes "Cindy doesn't look so scared anymore.";
+ next;
+ mes "[Cindy]";
+ mes "\"Hello, dear " + @title$ + " adventurer. Did my mother send you?\"";
+ next;
+ mes "\"It's so cold in here! Can you please open the cage?\"";
+ next;
+ mes "\"But be careful, if the Yetis hear you, they will come!\"";
+ menu
+ "Try to open the cage", L_Try_Cage,
+ "Leave", -;
+ close;
+
+L_Try_Cage:
+ if (countitem("TreasureKey") < @KEYS_AMOUNT) goto L_Not_Enough_Keys;
+ delitem "TreasureKey", @KEYS_AMOUNT;
+ mes "As you try to open the door of the cage, there is a loudly squeaking noise.";
+ next;
+ mes "You get an uncomfortable feeling and Cindy starts to shiver.";
+ next;
+ mes "\"Oh no, the Yetis...\"";
+//TODO: start the battle and set state2 in case of success
+ mes "DEBUG: ADD YETIFIGHT HERE, QUEST VARIABLE INCREASED";
+ set @rescue_Cindy, 2;
+ callsub S_Update_Mask;
+ close;
+
+L_Reward:
+ mes "[Cindy]";
+ mes "\"You are a hero! All this strong monsters!\"";
+ next;
+ mes "\"I've found this thing in the cave - it looks valuable. I want you to have it.\"";
+ next;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_Full_Inv;
+
+ set @reward, rand(1);
+ if (@reward == 1) goto L_Wizard_Hat;
+ //TODO: set right, when quarterstaff is in item_db
+ //getitem "QuarterStaff", 1;
+ mes "DEBUG: GET ACORN INSTEAD OF QUARTERSTAFF";
+ getitem "acorn", 1;
+ goto L_Visit;
+
+L_Wizard_Hat:
+ //TODO: set right, when quarterstaff is in item_db
+ //getitem "WizardHat", 1;
+ mes "DEBUG: GET ACORN INSTEAD OF WIZARDHAT";
+ getitem "acorn", 1;
+
+L_Visit:
+ mes "\"Thank you so much, please come to my home. It's the house at the beach.\"";
+ next;
+ mes "\"I'm sure, my mother want to thank you as well.\"";
+ set @rescue_Cindy, 3;
+ callsub S_Update_Mask;
+ close;
+
+L_Please_Visit:
+ mes "[Cindy]";
+ mes "\"Thank you, thank you! You're a hero! Please come home with me to our house at the beach!\"";
+ close;
+
+L_Not_Enough_Keys:
+ mes "You don't have enough keys to open the cage.";
+ close;
+
+L_Full_Inv:
+ mes "\"Oh, it seems you carry so much stuff - I will keep it for you until you can take it.\"";
+ close;
+
+S_Update_Mask:
+ set QUEST_Nivalis_state,
+ (QUEST_Nivalis_state & ~(@Q_Nivalis_state_MASK))
+ | (@rescue_Cindy << @Q_Nivalis_state_SHIFT);
+ return;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/npc/_import.txt b/npc/_import.txt
index f94aa9cf..55141677 100644
--- a/npc/_import.txt
+++ b/npc/_import.txt
@@ -64,5 +64,6 @@ import: npc/029-1_Candor/_import.txt
import: npc/029-3_Fight_Cave/_import.txt
import: npc/030-1_Snow_field/_import.txt
import: npc/031-1_NivalisPort/_import.txt
+import: npc/031-2_Angelas_House/_import.txt
import: npc/031-3_Cave/_import.txt
import: npc/botcheck/_import.txt