// 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);
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]";
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 calms 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;
}
031-1.gat,80,25,0 script Debug 154, {
//TODO: remove DEBUG
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);
mes "This menu is for debugging and will be removed";
menu
"close", L_close,
"reset quest", -,
"skip yeti battle", yeti,
"magic", magic;
set @rescue_Cindy, 0;
callsub S_Update_Mask;
mes "quest variable is now " + @rescue_Cindy;
close;
yeti:
set @rescue_Cindy, 2;
callsub S_Update_Mask;
mes "quest variable is now " + @rescue_Cindy;
close;
L_close:
close;
magic:
// Set up SkillUp function general magic
set @SUP_id, SKILL_MAGIC;
set @SUP_name$, "Magic";
set @SUP_xp, 5000;
set @SUP_lvl, 2;
callfunc "SkillUp";
// Set up SkillUp function war magic
set @SUP_id, SKILL_MAGIC_WAR;
set @SUP_name$, "War Magic";
set @SUP_xp, 5000;
set @SUP_lvl, 2;
callfunc "SkillUp";
// Set up SkillUp function life magic
set @SUP_id, SKILL_MAGIC_LIFE;
set @SUP_name$, "Life Magic";
set @SUP_xp, 5000;
set @SUP_lvl, 2;
callfunc "SkillUp";
// Set up SkillUp function life magic
set @SUP_id, SKILL_MAGIC_NATURE;
set @SUP_name$, "Nature Magic";
set @SUP_xp, 5000;
set @SUP_lvl, 2;
callfunc "SkillUp";
mes "Lightning invocation: " + getspellinvocation("lightning-strike");
mes "Flare-dart invocation: " + getspellinvocation("flare-dart");
mes "Lesser-heal invocation: " + getspellinvocation("lesser-heal");
mes "Lay-on-hands invocation: " + getspellinvocation("lay-on-hands");
mes "protect: " + getspellinvocation("protect");
close;
S_Update_Mask:
set QUEST_Nivalis_state,
(QUEST_Nivalis_state & ~(@Q_Nivalis_state_MASK))
| (@rescue_Cindy << @Q_Nivalis_state_SHIFT);
return;
}