summaryrefslogblamecommitdiff
path: root/world/map/npc/027-2/werewolf.txt
blob: 87d931734f4cf2c1c109d6a19285ca8aee3dcf91 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                     





                                                                                          

                                    



                                      
                         




                                                                         
                                                                                                                               






                                                                        
                         























                                                                                         
                         





                                            
                         

                                                                                             
                                                              


              
                         
                                                         



                                                                                
                         

                                           
                                                                                        
                                                          
             
                         
                                                   




                                        
                                              
       
                                          
                         







































                                                         
                         
















                                                       










                                                              
027-2.gat,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;

	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 < 80) 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;
	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.",-;
	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;
	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.\"";
	close;

L_Not_Enough:
	mes "[Wolfgang]";
	mes "\"Are you trying to kid me? I can count.\"";
	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.",-;
	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);
	close;

L_No_Money:
	mes "\"You need at least " + @money + " GP.\"";
	close;

L_Lost:
	mes "[Wolfgang]";
	mes "\"Fine! I won!";
	mes "You got " + @player + " with your cards.";
	mes "I had " + @croupier + ".\"";
	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;
	close;

L_Close:
	close;

S_Update_Mask:
        set QUEST_Graveyard_Inn,
        	(QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
                | (@state << @Graveyard_Inn_SHIFT);
        return;
}