// Variables used: nibble 0 of QUEST_SouthTulimshar
001-1.gat,35,43,0|script|Bernard|117
{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
set @state, ((QUEST_SouthTulimshar & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
if(@state >= 4) goto L_Done2;
if(@state == 3) goto L_Progress2;
if(@state == 2) goto L_Done1;
if(@state == 1) goto L_Progress;
set @TEMP, rand(2);
if(@TEMP == 1) goto L_Opening1;
goto L_Opening0;
L_Opening0:
mes "[Bernard]";
mes "\"Tulimshar is crawling with maggots. Hey, I need a favor, could you help me a bit?\"";
next;
goto L_Ask;
L_Opening1:
mes "[Bernard]";
mes "\"The taste of maggots in soup is... unforgettable, they taste simply divine! Would you help me kill some?\"";
next;
goto L_Ask;
L_Ask:
menu
"Yes.", L_Yes,
"No.", L_Close;
L_Yes:
set @TEMP, rand(2);
if(@TEMP == 1) goto L_Req1;
goto L_Req0;
L_Req0:
mes "[Bernard]";
mes "\"Great! I need a Roasted Maggot for my soup.\"";
next;
goto L_Set;
L_Req1:
mes "[Bernard]";
mes "\"Bring me a Roasted Maggot. I'll give you something if you do.\"";
next;
goto L_Set;
L_Set:
set @state, 1;
callsub S_Update_Var;
mes "[Bernard]";
mes "\"Please bring it to me!\"";
goto L_Close;
L_Progress:
if (countitem("RoastedMaggot") < 1) goto L_NotEnough;
mes "[Bernard]";
mes "\"Oooh, perfect! It's perfect!";
mes "You brought me my Roasted Maggot! Here, have some cake for your troubles.\"";
getinventorylist;
if (@inventorylist_count - (countitem("RoastedMaggot") == 1) > 99 - (countitem("CherryCake") == 0) ) goto L_TooMany;
delitem "RoastedMaggot", 1;
getexp 100, 0;
getitem "CherryCake", 5;
set @state, 2;
callsub S_Update_Var;
next;
mes "\"Now let's see...\"";
goto L_Close;
L_Progress2:
if (countitem("MaggotSlime") < 3) goto L_NotEnough1;
mes "[Bernard]";
mes "\"Nice! They're perfect, just perfect!";
mes "You brought me the 3 Maggot Slimes! Here, have some beer as reward.\"";
getinventorylist;
if ((@inventorylist_count - (countitem("MaggotSlime") == 3) > 99 - (countitem("Beer") == 0) )) goto L_TooMany;
delitem "MaggotSlime", 3;
getexp 100, 0;
getitem "Beer", 3;
set @state, 4;
callsub S_Update_Var;
goto L_Close;
L_NotEnough:
mes "[Bernard]";
mes "\"Oh, please hurry and bring me a Roasted Maggot. I'm yearning for maggot soup!\"";
goto L_Close;
L_NotEnough1:
mes "[Bernard]";
mes "\"Please do hurry and bring me 3 Maggot Slimes, so I can finish my soup!\"";
goto L_Close;
L_Done1:
mes "[Bernard]";
mes "\"Thank you so much!\"";
mes "\"But... something is missing to make the soup creamy.\"";
next;
mes "\"I need 3 Maggot Slimes for that.\"";
mes "\"Bring them to me, and I'll give you something nice.\"";
set @state, 3;
callsub S_Update_Var;
goto L_Close;
L_Done2:
mes "[Bernard]";
mes "\"I didn't mention it before, but I also put beer in my soup. I hope you like beer as much as I do, because, you see...\"";
next;
mes "\"Beer is life!\"";
goto L_Close;
L_Close:
set @TEMP, 0;
set @state, 0;
close;
L_TooMany:
next;
mes "[Bernard]";
mes "\"You don't have room for my reward. I'll wait until you do.\"";
goto L_Close;
S_Update_Var:
set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_0_MASK) | (@state << NIBBLE_0_SHIFT));
return;
}