//================= Hercules Script =======================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2012-2015  Hercules Dev Team
//= Copyright (C)  Kisuka
//= Copyright (C)  L0ne_W0lf
//= Copyright (C)  Lupus
//= Copyright (C)  DZeroX
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Old Pharmacist
//================= Description ===========================================
//= Trade in items for potions.
//================= Current Version =======================================
//= 1.4
//=========================================================================

alberta_in,16,28,4	script	Pharmacist	1_M_PUBMASTER,{
	if (checkweight(Knife,1) == 0) {
		mes "- Wait a moment! -";
		mes "- Currently you're carrying -";
		mes "- too many items with you. -";
		mes "- Please come back later -";
		mes "- after you put some items into kafra storage. -";
		close;
	}
	mes "[Old Pharmacist]";
	mes "Ummmm...";
	mes "What brings you here...?";
	switch(select("Make Potion", "Talk.", "Mixing Information", "Cancel")) {
	case 1:
		next;
		if (MaxWeight - Weight < 5000) {
			mes "[Old Pharmacist]";
			mes "Why are you carrying these so many!";
			mes "Don't be greedy, carry only as much you need!";
			next;
			mes "[Old Pharmacist]";
			mes "You are too heavy to receive potions from me...";
			mes "Go store some items in your storage first!";
			close;
		} else {
			mes "[Old Pharmacist]";
			mes "You have all the stuff ready, right? Which one would you like?";
			switch(select("Red Potion.", "Orange Potion.", "Yellow Potion.", "White Potion.", "Blue Potion.", "Green Potion.", "Actually, I don't want anything.")) {
			case 1:
				callsub L_Making,507,3,501;
			case 2:
				next;
				mes "[Old Pharmacist]";
				if (countitem(Red_Herb) < countitem(Empty_Bottle)) {
					.@max = countitem(Red_Herb);
				}
				else if (countitem(Yellow_Herb) < countitem(Empty_Bottle)) {
					.@max = countitem(Yellow_Herb);
				}
				else {
					.@max = countitem(Empty_Bottle);
				}
				if ((countitem(Red_Herb) < 1) || (countitem(Yellow_Herb) < 1) || (countitem(Empty_Bottle) == 0)) {
					mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
					mes "Get lost!";
					close;
				}
				if (Zeny < 3) {
					mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
					mes "Get lost!";
					close;
				}
				mes "How many?";
				switch(select("Make as many as I can.", "I want to choose an amount.", "Actually, I don't want anything.")) {
				case 1:
					next;
					if ((countitem(Red_Herb) < .@max) || (countitem(Yellow_Herb) < .@max) || (countitem(Empty_Bottle) < .@max) || (Zeny < .@max*3)) {
						mes "[Old Pharmacist]";
						mes "You rascal! You don't even have all the materials and you want me to make you potions?!";
						close;
					}
					Zeny -= (.@max*5);
					delitem Red_Herb,.@max;
					delitem Yellow_Herb,.@max;
					delitem Empty_Bottle,.@max;
					getitem Orange_Potion,.@max;
					break;
				case 2:
					next;
					mes "[Old Pharmacist]";
					mes "Then pick a number below 100. If you don't want any, just enter '0'. With the materials you have, you can make about "+.@max+" potions.";
					input .@amount,0,101;
					if (.@amount == 0) {
						next;
						mes "[Old Pharmacist]";
						mes "Make up your mind, will you?!";
						close;
					}
					if (.@amount > 100) {
						next;
						mes "[Old Pharmacist]";
						mes "Are you deaf? I said less than 100!";
						close;
					}
					if ((countitem(Red_Herb) < .@amount) || (countitem(Yellow_Herb) < .@amount) || (countitem(Empty_Bottle) < .@amount) || (Zeny < .@amount*3)) {
						next;
						mes "[Old Pharmacist]";
						mes "You rascal! You don't even have all the materials and you want me to make you potions?!";
						close;
					}
					next;
					Zeny -= (.@amount*5);
					delitem Red_Herb,.@amount;
					delitem Yellow_Herb,.@amount;
					delitem Empty_Bottle,.@amount;
					getitem Orange_Potion,.@amount;
					break;
				case 3:
					next;
					mes "[Old Pharmacist]";
					mes "What?!";
					mes "Grrr...";
					mes "Bleh!";
					mes "Get lost!";
					close;
				}
				mes "[Old Pharmacist]";
				mes "Here you go. It's all done so you can take it. But remember! Abusing medicine is not good.";
				close;
			case 3:
				callsub L_Making,508,10,503;
			case 4:
				callsub L_Making,509,20,504;
			case 5:
				callsub L_Making,510,30,505;
			case 6:
				callsub L_Making,511,3,506;
			case 7:
				mes "[Old Pharmacist]";
				mes "What?!";
				mes "Grrr...";
				mes "Bleh!";
				mes "Get lost!";
				close;
			}
		}
	case 2:
		mes "[Old Pharmacist]";
		mes "With medicine, you can increase a person's ability to regenerate. But, they're only good up to a point. *Sigh* I'm starting to think of the days when I was young. I must be getting old.";
		next;
		mes "[Old Pharmacist]";
		mes "Anyways, a potion is merely a potion. Nothing more and nothing less.";
		close;
	case 3:
		mes "[Old Pharmacist]";
		mes "Hrrrmm...";
		mes "You young ones can be quite annoying. But, since you asked, I'll explain.";
		next;
		mes "[Old Pharmacist]";
		mes "Herbs work well by themselves, but if you use my special techniques and skills to make potions out of them, the effect is much much greater.";
		next;
		mes "[Old Pharmacist]";
		mes "If you ask eagerly and politely, I will make them for you. But, not for free... Don't worry though, I only charge a small fee, so it's not that expensive.";
		next;
		mes "[Old Pharmacist]";
		mes "Red Potion - ^0098E52 Red Herbs, 1 Empty Bottle, 2 zeny fee.^000000";
		mes "Orange Potion - ^0098E51 Red Herb, 1 Yellow Herb, 1 Empty Bottle, 5 zeny fee.^000000";
		mes "Yellow Potion - ^0098E52 Yellow Herbs, 1 Empty Bottle, 10 zeny.^000000";
		next;
		mes "[Old Pharmacist]";
		mes "White Potion - ^0098E52 White Herbs, 1 Empty Bottle, 20 zeny fee.^000000";
		mes "Blue Potion - ^0098E52 Blue Herbs, 1 Empty Bottle, 30 zeny fee.^000000";
		mes "Green Potion - ^0098E52 Green Herbs, 1 Empty Bottle, 3 zeny fee.^000000";
		close;
	case 4:
		mes "[Old Pharmacist]";
		mes "What a boring person. If you have something to say, why don't you say it?!";
		close;
	}

// Arguments:
// - 0: Herb required.
// - 1: Zeny cost.
// - 2: Potion given.
L_Making:
	next;
	mes "[Old Pharmacist]";
	if ((countitem(getarg(0))/2) < countitem(Empty_Bottle)) {
		.@max = countitem(getarg(0))/2;
	} else {
		.@max = countitem(Empty_Bottle);
	}
	if ((countitem(getarg(0)) < 2) || (countitem(Empty_Bottle) == 0)) {
		mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
		mes "Get lost!";
		close;
	}
	if (Zeny < 3) {
		mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
		mes "Get lost!";
		close;
	}
	mes "How many?";
	switch(select("Make as many as I can.", "I want to choose an amount.", "Actually, I don't want anything.")) {
	case 1:
		next;
		if ((countitem(getarg(0)) < .@max*2) || (countitem(Empty_Bottle) < .@max) || (Zeny < .@max*getarg(1))) {
			mes "[Old Pharmacist]";
			mes "You rascal! You don't even have all the materials and you want me to make you potions?!";
			close;
		}
		Zeny -= (.@max*getarg(1));
		delitem getarg(0),.@max*2;
		delitem Empty_Bottle,.@max;
		getitem getarg(2),.@max;
		break;
	case 2:
		next;
		mes "[Old Pharmacist]";
		mes "Then pick a number below 100. If you don't want any, just enter '0'. With the materials you have, you can make about "+.@max+" potions.";
		input .@amount;
		next;
		if (.@amount == 0) {
			mes "[Old Pharmacist]";
			mes "Make up your mind, will you?!";
			close;
		}
		if (.@amount > 100) {
			mes "[Old Pharmacist]";
			mes "Are you deaf? I said less than 100!";
			close;
		}
		if ((countitem(getarg(0)) < .@amount*2) || (countitem(Empty_Bottle) < .@amount) || (Zeny < .@amount*getarg(1))) {
			mes "[Old Pharmacist]";
			mes "You rascal! You don't even have all the materials and you want me to make you potions?!";
			close;
		}
		Zeny -= (.@amount*getarg(1));
		delitem getarg(0),.@amount*2;
		delitem Empty_Bottle,.@amount;
		getitem getarg(2),.@amount;
		break;
	case 3:
		next;
		mes "[Old Pharmacist]";
		mes "What?!";
		mes "Grrr...";
		mes "Bleh!";
		mes "Get lost!";
		close;
	}
	mes "[Old Pharmacist]";
	mes "Here you go. It's all done so you can take it. But remember! Abusing medicine is not good.";
	close;
}
