//================= 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)  Lupus
//= Copyright (C)  Kisuka
//=
//= 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/>.
//=========================================================================
//= iRO Halloween (2009)
//================= Description ===========================================
//= iRO Halloween (2009)
//= Quest for Weird Pumpkin Hat.
//= Exchange treats for buffs.
//= Summon event monsters in towns.
//================= Current Version =======================================
//= 1.1
//================= Additional Comments ===================================
//= You must enable the event items in item_db2.
//= You must enable the event mobs in mob_db2, mob_avail, and their skills
//= in mob_skill_db2.
//=========================================================================

//== Headgear Quest - Pumpkin Hat ==========================
prontera,152,192,5	script	Pumpkin Hat Researcher	4_M_05,{
	if(BaseLevel < 45) {
		mes "[Pumpkin Hat Researcher]";
		mes "Shoo, I don't need a child. Shoo! I don't talk to novices.";
		next;
		mes "[Pumpkin Hat Researcher]";
		mes "Go reach a level that can fight with stronger monsters and come back.";
		close;
	}
	mes "[Pumpkin Hat Researcher]";
	mes "Say do you like Pumpkin Pies?";
	next;
	mes "[Pumpkin Hat Researcher]";
	mes "I'm a Pumpkin Hat researcher, Why don't you listen to my story?";
	next;
	while(1) {
		switch(select("Listen to the story.", "Ask about Pumpkin Hat.", "Get a Pumpkin Hat.", "Stop the conversation.")) {
			case 1:
				mes "[Pumpkin Hat Researcher]";
				mes "I've been studying about an upgraded Pumpkin Hat.";
				mes "I have discovered that it is a very simple process.";
				next;
				mes "[Pumpkin Hat Researcher]";
				mes "The process is quite simple.";
				mes "If you bring me ^4a4aff20 Jack o' Pumpkin^000000 I can show you.";
				mes "Isn't that a tempting proposal?";
				next;
				break;
			case 2:
				mes "[Pumpkin Hat Researcher]";
				mes "This upgraded pumpkin hat is powerful stuff!";
				next;
				mes "[Pumpkin Hat Researcher]";
				mes "It can make a Pumpkin Pie that restores a large percentage of HP & SP using condensed energy to the person who wears it.";
				next;
				mes "[Pumpkin Hat Researcher]";
				mes "All you need is ^4a4aff20 Jack o' Pumpkin^000000s.";
				next;
				break;
			case 3:
				mes "[Pumpkin Hat Researcher]";
				mes "Do you want to get Pumpkin Pies? Okay, let me count the Jack o' Pumpkins you've brought.";
				next;
				if(countitem(Pumpkin_Head) < 20) {
					mes "[Pumpkin Hat Researcher]";
					mes "I need ^4a4aff20 Jack o' Pumpkin^000000.";
					mes "I'm not an alchemist or a wizard to create something from nothing.";
					next;
					mes "[Pumpkin Hat Researcher]";
					mes "Okay, go hunting monsters and come back.";
					mes "I'm going to stay here for a while so take your time.";
					next;
					break;
				}else{
					mes "[Pumpkin Hat Researcher]";
					mes "I hope this will be useful to you. Don't forget to wear it while fighting to get your Pumpkin Pies.";
					delitem Pumpkin_Head,20;	// Jack o' Pumpkin
					getitem Weird_Pumpkin_Hat,1;		// Weird Pumpkin Hat
					next;
					mes "[Pumpkin Hat Researcher]";
					mes "I guess that I should get back to my research.";
					close;
				}
			case 4:
				mes "[Pumpkin Hat Researcher]";
				mes "Bye, until we'll see each other again.";
				mes "I wish you well...";
				close;
		}
	}
}

//== Buffs - Trick or Treaters =============================
-	script	Trick or Treater::09Treats	4_M_KID1,2,2,{
OnTouch:
	hideoffnpc strnpcinfo(NPC_NAME_UNIQUE);
	initnpctimer;
	mes "[Trick or Treater]";
	mes "Hooray! hooray! Hooray!";
	mes "Trick or Treat?";
	next;
	if(select("Trick.", "Treat.") == 1) {
		mes "[Trick or Treater]";
		mes "!!!!";
		mes "Fine. I have no choice but to trick you back!";
		sc_start SC_STUN,5000,0;
		close;
	}
	mes "[Trick or Treater]";
	mes "Oh yay! What kind of treat do you have?";
	next;
	switch(select("Candy", "Candy Cane", "Well-baked Cookie", "Nothing")) {
		case 1:
			if(countitem(Candy) > 0) {
				mes "[Trick or Treater]";
				mes "Yay thank you!";
				mes "Here, take this for being so nice!";
				sc_start SC_FOOD_STR, 1800000, 5;
				sc_start SC_FOOD_INT, 1800000, 5;
				sc_start SC_FOOD_VIT, 1800000, 5;
				sc_start SC_FOOD_AGI, 1800000, 5;
				sc_start SC_FOOD_DEX, 1800000, 5;
				sc_start SC_FOOD_LUK, 1800000, 5;
				sc_start SC_FOOD_BASICAVOIDANCE, 1800000, 15;
				delitem Candy,1;	// Candy
				close;
			}else{
				mes "[Trick or Treater]";
				mes "At least a Candy, a Candy Cane or a Well-baked Cookie is all I ask for a treat.";
				mes "Fine. I have no choice but to trick you!";
				sc_start SC_STUN,5000,0;
				close;
			}
		case 2:
			if(countitem(Candy_Striper) > 0) {
				mes "[Trick or Treater]";
				mes "Yay thank you!";
				mes "Here, take this for being so nice!";
				sc_start SC_FOOD_STR, 1800000, 5;
				sc_start SC_FOOD_INT, 1800000, 5;
				sc_start SC_FOOD_VIT, 1800000, 5;
				sc_start SC_FOOD_AGI, 1800000, 5;
				sc_start SC_FOOD_DEX, 1800000, 5;
				sc_start SC_FOOD_LUK, 1800000, 5;
				sc_start SC_FOOD_BASICAVOIDANCE, 1800000, 15;
				delitem Candy_Striper,1;	// Candy Cane
				close;
			}else{
				mes "[Trick or Treater]";
				mes "At least a Candy, a Candy Cane or a Well-baked Cookie is all I ask for a treat.";
				mes "Fine. I have no choice but to trick you!";
				sc_start SC_STUN,5000,0;
				close;
			}
		case 3:
			if(countitem(Well_Baked_Cookie) > 0) {
				mes "[Trick or Treater]";
				mes "Yay thank you!";
				mes "Here, take this for being so nice!";
				sc_start SC_FOOD_STR, 1800000, 5;
				sc_start SC_FOOD_INT, 1800000, 5;
				sc_start SC_FOOD_VIT, 1800000, 5;
				sc_start SC_FOOD_AGI, 1800000, 5;
				sc_start SC_FOOD_DEX, 1800000, 5;
				sc_start SC_FOOD_LUK, 1800000, 5;
				sc_start SC_FOOD_BASICAVOIDANCE, 1800000, 15;
				delitem Well_Baked_Cookie,1;	// Well-baked Cookie
				close;
			}else{
				mes "[Trick or Treater]";
				mes "At least a Candy, a Candy Cane or a Well-baked Cookie is all I ask for a treat.";
				mes "Fine. I have no choice but to trick you!";
				sc_start SC_STUN,5000,0;
				close;
			}
		case 4:
			mes "[Trick or Treater]";
			mes "At least a Candy, a Candy Cane or a Well-baked Cookie is all I ask for a treat.";
			mes "Fine. I have no choice but to trick you!";
			sc_start SC_STUN,5000,0;
			close;
	}
OnInit:
	hideonnpc "Trick or Treater#iRO1";
	hideonnpc "Trick or Treater#iRO2";
	hideonnpc "Trick or Treater#iRO3";
	hideonnpc "Trick or Treater#iRO4";
	hideonnpc "Trick or Treater#iRO5";
	hideonnpc "Trick or Treater#iRO6";
	hideonnpc "Trick or Treater#iRO7";
	hideonnpc "Trick or Treater#iRO8";
	end;

OnEnableTreat:
	enablenpc strnpcinfo(NPC_NAME_UNIQUE);
	hideonnpc strnpcinfo(NPC_NAME_UNIQUE);
	end;

OnTimer15000:
	hideonnpc strnpcinfo(NPC_NAME_UNIQUE);
	disablenpc strnpcinfo(NPC_NAME_UNIQUE);
	end;

OnTimer300000:
	donpcevent strnpcinfo(NPC_NAME_UNIQUE)+"::OnEnableTreat";
	stopnpctimer;
	end;
}
prontera,151,173,5	duplicate(09Treats)	Trick or Treater#iRO1	4_M_KID1,2,2
prontera,270,350,5	duplicate(09Treats)	Trick or Treater#iRO2	4_M_KID1,2,2
prontera,234,310,5	duplicate(09Treats)	Trick or Treater#iRO3	4_M_KID1,2,2
prontera,156,321,5	duplicate(09Treats)	Trick or Treater#iRO4	4_M_KID1,2,2
prontera,156,283,5	duplicate(09Treats)	Trick or Treater#iRO5	4_M_KID1,2,2
prontera,142,214,5	duplicate(09Treats)	Trick or Treater#iRO6	4_M_KID1,2,2
prontera,134,125,5	duplicate(09Treats)	Trick or Treater#iRO7	4_M_KID1,2,2
prontera,220,72,5	duplicate(09Treats)	Trick or Treater#iRO8	4_M_KID1,2,2

//== Monster Summoning - Halloween Wizard ==================
-	script	Halloween Wizard#iRO09::09HallowWiz	4_DARKLORD,{
	mes "[Halloween Wizard]";
	mes "...";
	mes "Do you want to play a trick on someone?";
	next;
	while(1) {
		switch(select("What trick?", "Sure", "No.")) {
			case 1:
				mes "[Halloween Wizard]";
				mes "I can summon monsters in other parts of the world with just a few materials.";
				next;
				mes "[Halloween Wizard]";
				mes "Sounds interesting huh?";
				next;
				mes "[Halloween Wizard]";
				mes "If you bring me Fabric, Jack o' Pumpkins, Worn Fabric, or Crushed Pumpkins I can summon the monsters.";
				next;
				break;
			case 2:
				mes "[Halloween Wizard]";
				mes "Which town do you want to play a trick on?";
				next;
				getmapxy(.@mapname$, .@mapx, .@mapy, UNITTYPE_PC, strcharinfo(PC_NAME));
				if (.@mapname$ == "prontera") {
					switch(select("Geffen", "Payon", "Alberta", "Aldebaran")) {
						case 1:
							.@HallowTown = 3;
							break;
						case 2:
							.@HallowTown = 2;
							break;
						case 3:
							.@HallowTown = 4;
							break;
						case 4:
							.@HallowTown = 5;
							break;
					}
				}
				else if (.@mapname$ == "payon") {
					switch(select("Prontera", "Geffen", "Alberta", "Aldebaran")) {
						case 1:
							.@HallowTown = 1;
							break;
						case 2:
							.@HallowTown = 3;
							break;
						case 3:
							.@HallowTown = 4;
							break;
						case 4:
							.@HallowTown = 5;
							break;
					}
				}
				else if (.@mapname$ == "geffen") {
					switch(select("Prontera", "Payon", "Alberta", "Aldebaran")) {
						case 1:
							.@HallowTown = 1;
							break;
						case 2:
							.@HallowTown = 2;
							break;
						case 3:
							.@HallowTown = 4;
							break;
						case 4:
							.@HallowTown = 5;
							break;
					}
				}
				else if (.@mapname$ == "alberta") {
					switch(select("Prontera", "Geffen", "Payon", "Aldebaran")) {
						case 1:
							.@HallowTown = 1;
							break;
						case 2:
							.@HallowTown = 3;
							break;
						case 3:
							.@HallowTown = 2;
							break;
						case 4:
							.@HallowTown = 5;
							break;
					}
				}
				else if (.@mapname$ == "aldebaran") {
					switch(select("Prontera", "Geffen", "Payon", "Alberta")) {
						case 1:
							.@HallowTown = 1;
							break;
						case 2:
							.@HallowTown = 3;
							break;
						case 3:
							.@HallowTown = 2;
							break;
						case 4:
							.@HallowTown = 4;
							break;
					}
				}
				setarray .@HallowTowns$[1],"prontera","payon","geffen","alberta","aldebaran";
				mes "[Halloween Wizard]";
				mes "Ok then let's go to the next step.";
				next;
				mes "[Halloween Wizard]";
				mes "How many Fabrics or Jack o' Pumpkins do you want to use? Don't go over 100 because that is the max amount that I can use.";
				next;
				input .@input;
				if (.@input == 0) {
					mes "[Halloween Wizard]";
					mes "You have no definite idea.";
					mes "It's not a big deal.";
					mes "Let me know.";
					next;
					break;
				}
				else if (.@input > 100) {
					mes "[Halloween Wizard]";
					mes "I told you that it must be between 1 to 100!";
					mes "You didn't pay attention!";
					next;
					break;
				}
				else {
					.@fabric = countitem(Transparent_Cloth);
					.@jack = countitem(Pumpkin_Head);
					.@worn = countitem(Worn_Cloth_Piece);
					.@crushed = countitem(Pumpkin_Head_Crushed);
					.@whispers = 0;
					.@darklords = 0;

					.@total = .@fabric + .@jack + .@worn + .@crushed;

					if(.@total < .@input) {
						mes "[Halloween Wizard]";
						mes "Recount the number of items you have and tell me the total.";
						mes "Huhuhuhuhuhu...";
						next;
						break;
					}

					if(.@fabric > 0) {
						if(.@fabric >= .@input) {
							delitem 1059,.@input;
							.@whispers += .@input;
							.@input = 0;
						}
						else{
							delitem 1059,.@fabric;
							.@input -= .@fabric;
							.@whispers += .@fabric;
						}
					}
					if(.@worn > 0 && .@input != 0) {
						if(.@worn >= .@input) {
							delitem 6299,.@input;
							.@whispers += .@input;
							.@input = 0;
						}
						else{
							delitem 6299,.@worn;
							.@input -= .@worn;
							.@whispers += .@worn;
						}
					}
					if(.@jack > 0 && .@input != 0) {
						if(.@jack >= .@input) {
							delitem 1062,.@input;
							.@darklords += .@input;
							.@input = 0;
						}
						else{
							delitem 1062,.@jack;
							.@input -= .@jack;
							.@darklords += .@jack;
						}
					}
					if(.@crushed > 0 && .@input != 0) {
						if(.@crushed >= .@input) {
							delitem 6298,.@input;
							.@darklords += .@input;
							.@input = 0;
						}
						else{
							delitem 6298,.@crushed;
							.@input -= .@crushed;
							.@darklords += .@crushed;
						}
					}
					if (.@input > 0) {
						mes "Theres a problem.";
						close;
					}
					monster ""+.@HallowTowns$[.@HallowTown]+"",0,0,"Halloween Whisper",3014,.@whispers;
					monster ""+.@HallowTowns$[.@HallowTown]+"",0,0,"Halloween Dark Lord",3015,.@darklords;
					mes "[Halloween Wizard]";
					mes "Here's what you wanted.";
					mes "Imagine what the people must be thinking in the other villages?";
					mes "Muahahaha";
					close;
				}
			case 3:
				mes "[Halloween Wizard]";
				mes "If you change your mind, come back here...";
				mes "I'll stay here for a while...";
				mes "Kkkk...";
				close;
		}
	}
}
prontera,156,195,5	duplicate(09HallowWiz)	Halloween Wizard#1	4_DARKLORD
geffen,133,122,5	duplicate(09HallowWiz)	Halloween Wizard#2	4_DARKLORD
payon,156,196,5	duplicate(09HallowWiz)	Halloween Wizard#3	4_DARKLORD
alberta,96,57,5	duplicate(09HallowWiz)	Halloween Wizard#4	4_DARKLORD
aldebaran,146,122,5	duplicate(09HallowWiz)	Halloween Wizard#5	4_DARKLORD
