// author: Jenalya
027-2,118,23,0|script|Wolfgang|305
{
set @Graveyard_Inn_MASK, NIBBLE_5_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_5_SHIFT;
set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);
set @ANIMALBONES_AMOUNT, 30;
set @ANIMALBONES_EXP, 40000;
set @money, 1000;
set @minLevel, 80;
if (@state > 1) goto L_Happy;
if (@state == 1) goto L_Bones;
mes "[Wolfgang]";
mes "\"What a nice place here, isn't it?\"";
next;
mes "\"Just the stuff they call 'food' in here is awful, bah.\"";
if (BaseLevel < @minLevel)
goto L_Close;
next;
mes "\"I like bones from big animals, the best would be with some raw flesh on it. But just the bones are fine too.\"";
next;
mes "\"Can you bring me " + @ANIMALBONES_AMOUNT + " of them?\"";
set @state, 1;
callsub S_Update_Mask;
goto L_Close;
L_Bones:
mes "[Wolfgang]";
mes "\"Do you have " + @ANIMALBONES_AMOUNT + " bones of an animal for me?\"";
next;
if ((countitem("Bone") > 0)
&& (countitem("AnimalBones") >= @ANIMALBONES_AMOUNT))
menu
"Yes, here they are.",L_Bring,
"What about this normal bone?",L_Human,
"Not yet.",L_Close;
if (countitem("Bone") > 0)
menu
"What about this normal bone?",L_Human,
"Not yet.",L_Close;
if (countitem("AnimalBones") >= @ANIMALBONES_AMOUNT)
menu
"Yes, here they are.",L_Bring,
"Not yet.",L_Close;
menu
"Not yet.",L_Close;
L_Bring:
if (countitem("AnimalBones") < @ANIMALBONES_AMOUNT)
goto L_Not_Enough;
delitem "AnimalBones", @ANIMALBONES_AMOUNT;
getexp @ANIMALBONES_EXP, 0;
mes "[Wolfgang]";
mes "\"Ah! Wonderful! Thank you.\"";
set @state, 2;
callsub S_Update_Mask;
goto L_Close;
L_Human:
mes "[Wolfgang]";
mes "\"What?! That's a humans bone! I don't eat humans. That brings only trouble.\"";
next;
mes "\"Besides, from that I heard, they taste bad.\"";
goto L_Close;
L_Not_Enough:
mes "[Wolfgang]";
mes "\"Are you trying to kid me? I can count.\"";
goto L_Close;
L_Happy:
mes "You see the werewolf happily crunching the bones you brought him.";
mes "[Wolfgang]";
mes "\"Delicious. Thanks again.\"";
next;
mes "\"By the way... would you be interested in a little round of blackjack?\"";
mes "He pulls a deck of cards out of his pocket.";
next;
mes "[Wolfgang]";
mes "\"You will need " + @money + " GP.\"";
menu
"Sure, why not?",L_Game,
"No, thanks.",L_Close;
//The game mechanics is copied from casino.txt
L_Game:
if (Zeny < @money)
goto L_No_Money;
mes "[Wolfgang]";
mes "\"Very nice. Let's start.\"";
mes "He shuffles the cards.";
next;
set Zeny, Zeny - @money;
set @croupier, rand(0, 4);
set @croupier, @croupier + 17;
set @player, rand(4, 21);
mes "\"You got " + @player + " with your cards.";
if (@player == 21)
goto L_End;
mes "Do you want another card?\"";
next;
menu
"Yes.", L_Another,
"No.", L_End;
L_Another:
set @tempace, rand(2, 11);
if (@tempace == 11)
goto L_Ace;
set @player, @player + @tempace;
if (@player > 21)
goto L_Lost;
if (@player == 21)
goto L_End;
mes "\"You got " + @player + " with your cards.";
mes "Do you want another card?\"";
next;
menu
"Yes", L_Another,
"No", L_End;
L_End:
if (@player <= @croupier)
goto L_Lost;
mes "\"You won! Hrm, here is your money.\"";
set Zeny, Zeny + (3 * @money);
goto L_Close;
L_No_Money:
mes "\"You need at least " + @money + " GP.\"";
goto L_Close;
L_Lost:
mes "[Wolfgang]";
mes "\"Fine! I won!";
mes "You got " + @player + " with your cards.";
mes "I had " + @croupier + ".\"";
goto L_Close;
L_Ace:
set @player, @player + 11;
if (@player > 21)
set @player, @player - 10;
if (@player > 21)
goto L_Lost;
if (@player == 21)
goto L_End;
mes "You got " + @player + " with your cards.";
mes "Do you want another card?";
next;
menu
"Yes", L_Another,
"No", L_End;
L_Close:
set @Graveyard_Inn_MASK, 0;
set @Graveyard_Inn_SHIFT, 0;
set @state, 0;
set @ANIMALBONES_AMOUNT, 0;
set @ANIMALBONES_EXP, 0;
set @money, 0;
set @minLevel, 0;
set @croupier, 0;
set @player, 0;
set @tempace, 0;
close;
S_Update_Mask:
set QUEST_Graveyard_Inn,
(QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
| (@state << @Graveyard_Inn_SHIFT);
return;
}