//===== eAthena Script =======================================
//= Juice Maker Quest
//===== By: ==================================================
//= kobra_k88
//===== Current Version: =====================================
//= 1.6
//===== Compatible With: =====================================
//= eAthena 7.15 +
//===== Description: =========================================
//= 
//===== Additional Comments: =================================
//= Fully working
//= 1.1 fixed input number check [Lupus]
//= 1.2 fixed misplaced Grape<->Carrot juices [Lupus]
//= 1.3 added a loopless menu 'as many as possible' [Lupus]
//= 1.3a Turned the juice making part of the Juicer npc into a
//= subfunc.  Changed fruit amount needed to 1.[kobra_k88]
//= Fixed exploits [Lupus]
//= 1.6 fixed typo (where did @ipnut came from?) [Lance]
//============================================================


// Morrison ------------------------------------------------
prt_in.gat,47,173,2	script	Morrison	97,{
	mes "[Little Morrison]";
	if(MEAT > 10) goto L_Candy;
	if(MARIANNE == 1) goto L_GoAway;

	mes "Wahhhhh!!! Wahh... NO more! NO more!";
	mes "I won't... eat anymore stupid ^0000ffFruit^000000 things!!";
	emotion e_sob;
	next;
	menu "Talk",M_Talk,"Cancel",M_End;

	M_Talk:
		if(countitem(517) > 0) goto L_Meat; //Meat

		mes "[Little Morrison]";
		mes "Arhhggg!! I'VE HAD ENOUGH!!! I can't eat anymore ^0000ffFruits^000000! They";
		mes "taste so SOUR..... I have to PEEL them before I can eat them.....";
		mes "they feel sticky and squishy...... it's really ANNOYING!!!!";
		emotion e_wah;
		next;
		mes "[LIttle Morrison]";
		mes "I just HATE FRUIT! I can't even get full off of the stuff.(~sigh~)";
		mes "Give me something more edible..... give me some...... ^ff0000MEAT^000000!!!";
		close;

		L_Meat:
		mes "[Little Morrison]";
		mes "...(sniff)....(sniff)(sniff).... Oh! Is that ^ff0000Meat^000000???";
		emotion e_ic;
		next;
		mes "[Little Morrison]";
		mes "Do you have some ^ff0000Meat^000000?!!!~(drools)~";
		mes "Umm... that yummy smell is making me SOOO HUNGRYYYY!!!l";
		emotion e_rice;
		next;
		mes "[Little Morrison]";
		mes "... Umm... excuse me..... could you give me some of that meat PLEEAASSSE?";
		emotion e_sob;
		next;
		menu "Give him some",sM_Give,"Ignore him",sM_Ignore;
		
		sM_Give:
			if(countitem(517) == 0) goto L_GoAway; //Meat
			delitem 517,1;	//Meat
			set MORRISON,1;
			set MEAT,MEAT + 1;
			mes "[Little Morrison]";
			mes "Whoah~!!! It's real Meat, Meat!";
			mes "Mmmm! It makes my mouth water.";
			mes "Oh thank you. Now I feel happy. Yum Yum...";
			emotion e_awsm;
			close;

		sM_Ignore:
			set MORRISON,2;
			mes "[Little Morrison]";
			mes "Boo...";
			mes "Boo... Fine... Alright, Alright~!!! Selfish meanie!";
			emotion e_bzz;
			close;
	M_End:
		mes "[Little Morrison]";
		mes "Wahhhh!!! No matter how hard I try, I just can't eat Vegetables";
		mes "or ^0000ffFruit^000000! They're plain disgusting!!";
		emotion e_sob;
		close;

L_GoAway:
	mes "Pffff... Leave me alone! You DON'T CARE about me! I'm gonna DIE";
	mes "because of these stupid Veggies and Fuits so MIND your own business!";
	emotion e_pif;
	close;

L_Candy:
	mes "Ah..I am full now. You don't have to feed me any more. I think I";
	mes "am gonna BURST if I keep eating more.";
	next;
	mes "[Little Morrison]";
	mes "And... um... Take this.";
	next;
	getitem 529,3;
	getitem 530,1;
	set MEAT,0;
	mes "[Little Morrison]";
	mes "It is from my secret stash of Candy that I hide from my Mom.  Since";
	mes "you gave me some Meat, I will give you some candy." ;
	close;

}

// Housewife Marianne ---------------------------------------------------
prt_in.gat,49,172,2	script	Housewife Marianne	53,{
	mes "[Housewife Marianne]";
	if(MORRISON == 1) goto L_GaveMeat;
	if(MORRISON == 2) goto L_Juice;

	mes "Morrison!! Please eat some fruit will ya? Fruit~!";
	mes "*Sob*~!! Like father like son...";
	emotion e_sob;
	next;
	menu "Talk",M_Talk,"Cancel",M_Cancel;
	close;	

	M_Talk:
		mes "[Housewife Marianne]";
		mes "(~Sigh~)...This is Morrison... My one and only son. He's going";
		mes "through some kinda faze and doesn't want to eat any ^0000ffFruits^000000 or";
		mes "vegetables.";
		emotion e_shy;
		next;
		mes "[Housewife Marianne]";
		mes "Look at his face..., it turns sour just hearing about ^0000ffFruit^000000...";
		next;
		mes "[Housewife Marianne]";
		mes "All he wants to eat is but ^ff0000Meat^000000... (sigh)...he needs";
		mes "^0000ffFruits^000000 and vegetables for a proper diet.";
		next;

	M_Cancel:
		mes "[Housewife Marianne]";
		mes "Morrison!! I will get mad at you if you keep doing this!";
		emotion e_bzz;
		close;
	
L_GaveMeat:
	set MORRISON,0;
	mes "Oh MY GOD!!... Oh lord...";
	emotion e_omg;
	next;
	mes "[Housewife Marianne]";
	mes "WHAT ARE YOU DOING!! HOW DARE YOU feed my son!! And ^ff0000MEAT^000000 of all things!!!";
	next;
	mes "[Housewife Marianne]";
	mes "Arrrgh~~!! Get Lost right now!!!!!!";
	emotion e_pif;
	close;

L_Juice:
	set MORRISON,0;
	set MARIANNE,1;
	mes "Thank you for not giving my son any meat.  I'm trying to feed him";
	mes "^0000ffFruits^000000 and vegetables, but this child doesn't want to eat";
	mes "anything except Meat...";
	next;
	mes "[Housewife Marianne]";
	mes "What if I could turn ^0000ffFruits^000000 into a ^0000ffJuice^000000... for example...Orange";
	mes "juice... Would my child like it?";
	emotion e_hmm;
	next;
	mes "[Housewife Marianne]";
	mes "Ah! Now I remember..There is a town where you can get a variety of";
	mes "^0000ffFruit^000000 turned into ^0000ffFruit Juices^000000.";
	emotion e_ic;
	next;
	mes "[Housewife Marianne]";
	mes "... Was is it...^ff0000Payon^000000...or ^ff0000Morroc^000000...?";
	emotion e_hmm;
	next;
	close;

}

// Juicer Marx Hansen ---------------------------------------------------------
payon_in03.gat,188,146,5	script	Juicer Marx Hansen	86,{
	mes "[Juicer Marx Hansen]";
	if(MARIANNE == 1) goto L_Juice;
	mes "Welcome to my shop. What brings you here?";
	next;
	menu "Conversation",-,"I am just looking around",M_End;
		
		mes "[Juicer Marx Hansen]";
		mes "In the earliest years of humanity, fruits were the only substanace availble for people to eat.";
		mes "Fruits were vital for survival and without them people faced certain death.";
		mes "During that time Mother Nature was worshiped for her generous offerering.";
		next;
		mes "[Juicer Marx Hansen]";
		mes "Nowadays food is plentifull and it comes in a variety of flavors and forms.";
		mes "With so many other things to eat, fruits aren't consumed as much as they used to be.";
		mes "This is especially true among kids who'd rather eat pizza and candy.";
		next;
		mes "[Juicer Marx Hansen]";
		mes "Because of this I wanted to find a way to make young people realize the importance of fuit.";
		mes "I found that when fruits were turned into juices, they became more digestive and even tasty enough for kids.";
		close;
	M_End:
		mes "[Juicer Marx Hansen]";
		mes "Ok then.";
		close;

//--------------
L_Juice:
//---------
	mes "Welcome to my shop. Are you here to process Fruits like everyone else?";
	next;
	menu "Yes, I am.",M_1a, "How do you make fruit juice?",M_1b, "Nope.",M_1End;
		
	M_1a:
		mes "[Juicer Marx Hansen]";
		mes "So what kind of fruit juice would you like to process?";
		next;
		menu "Apple Juice",sM_1a,"Banana Juice",sM_1b,"Grape Juice",sM_1c,"Carrot Juice",sM_1d,"None.",M_1End;

		sM_1a:
			callsub sF_Make, 512, "apples", 531;
			goto M_1a;
		sM_1b:
			callsub sF_Make, 513, "bananas", 532;
			goto M_1a;
		sM_1c:
			callsub sF_Make, 514, "grapes", 533;
			goto M_1a;
		sM_1d:
			callsub sF_Make, 515, "carrots", 534;
			goto M_1a;
	M_1b:
		mes "[Juicer Marx Hansen]";
		mes "# Fruit Juice Info #";
		mes "- ^FF3355Apple^000000 Juice - Apple x 1 ea, Empty Bottle x 1 ea, 3 zeny.";
		mes "- ^D5A500Banana^000000 Juice - Banana x 1 ea, Empty Bottle x 1 ea, 3 zeny.";
		mes "- ^FF8800Carrot^000000 Juice - Carrot x 1 ea, Empty Bottle x 1 ea, 3 zeny.";
		mes "- ^AA00AAGrape^000000 Juice - Grape x 1 ea, Empty Bottle x 1 ea, 3 zeny.";
		close;
	M_1End:
		mes "[Juicer Marx Hansen]";
		mes "Oh well... see you next time.";
		close;

// Subfunction for making juice
//----------------------------------
sF_Make:
	mes "[Juicer Marx Hansen]";
	mes "How many bottles would you like?";
	next;
	menu "I'll tell you.",M_Tell, "As many as possible",-, "I've changed my mind.",M_1End;

		set @amount,1000;		//max possible amount of Juice
		//calc max possible # juices
		if(Zeny/3 < @amount) set @amount, Zeny/3;
		if(countitem(getarg(0)) < @amount) set @amount, countitem(getarg(0));
		if(countitem(713) < @amount) set @amount, countitem(713);
		if(@amount > 0) goto L_Make;
		mes "[Juicer Marx Hansen]";
		mes "Doh! You don't have enough ingredients for a single bottle of juice.";
		emotion e_gasp;
		close;

	M_Tell:
		mes "[Juicer Marx Hansen]";
		mes "Very well then. Enter 0 if you don't want any. Also you cannot";
		mes "buy more than 1000 at a time.";
		next;
		input @amount;
		if(@amount < 1 || @amount > 1000) return;
		if(countitem(getarg(0)) < @amount) goto sL_NoFruits;
		if(countitem(713) <  @amount) goto sL_NoBottles;
		if(Zeny < @amount * 3) goto sL_NoZeny;

	L_Make:
		delitem getarg(0), @amount;	//del Fruit
		delitem 713, @amount;		//del Empty Bottle
		set Zeny, Zeny - @amount * 3;
		getitem getarg(2), @amount;	//get Juice
		mes "[Juicer Marx Hansen]";
		mes "Here you are. Take it.";
		close;

		sL_NoFruits:
			mes "[Juicer Marx Hansen]";
			mes "You don't have enough fruit.";
			mes "You need " +@amount+ " " +getarg(1)+ " to make that much juice.";
			next;
			return;
		sL_NoBottles:
			mes "[Juicer Marx Hansen]";
			mes "You don't have enough bottles.  You need "+@amount+" empty bottle(s) to make that many juice drinks.";
			next;
			return;
		sL_NoZeny:
			mes "[Juicer Marx Hansen]";
			mes "You don't have enough zeny.  You need " +(@amount*3)+ " zeny, to make that many juice drinks.";
			next;
			return;
}