//===== rAthena Script =======================================
//= Eden Group Quests - Mission [91 - 99]
//===== By: ==================================================
//= Chilly
//===== Current Version: =====================================
//= 1.3
//===== Compatible With: =====================================
//= rAthena Project
//===== Description: =========================================
//= Repetable Quests for Players between Baselevel 91 - 99.
//===== Additional Comments: =================================
//= 1.0 First Version. [Chilly]
//= 1.1 Some little improvements here and there. [Masao]
//= 1.2 Optimized. [Euphy]
//= 1.3 Updated to match the official script. [Euphy]
//============================================================

moc_para01,48,177,3	script	91-99 Mission Board	857,{
	if (countitem(6219) < 1) {
		mes "Wait a minute!";
		mes "-You need to have an-";
		mes "-^4d4dff'Eden Group Mark'^000000-";
		mes "-to receive these missions.-";
		next;
		switch(select("Just walk away.:^0000FFEden Group^000000 missions?:How can I be a member of the ^0000FFEden Group^000000?")) {
		case 1:
			close;
		case 2:
			mes "::The Eden Group Missions";
			mes "::are basically missions";
			mes "::requested by";
			mes "::people from all around the kingdom.";
			mes "::We just categorize them.";
			next;
			mes "::In the Eden Group,";
			mes "::we sorted out the missions";
			mes "::according to the level of difficulty.";
			mes "::According to this level,";
			mes "::you can find";
			mes "::missions that";
			mes "::suit you.";
			next;
			mes "::When you are done,";
			mes "::you can come back";
			mes "::to the mission board.";
			next;
			mes "::Then you will be";
			mes "::rewarded!!";
			mes "::Simple, isn't it!!";
			mes "::No commission required!!";
			close;
		case 3:
			mes "::You can become a member";
			mes "::of the Eden Group";
			mes "::to ^0000FFLaime Evenor^000000,";
			mes "::who is waiting on the 1st floor.";
			next;
			mes "::If you become a member,";
			mes "::you will get an";
			mes "::\"^006400Eden Group Mark^000000\".";
			mes "::Then you will be able";
			mes "::to see the mission board.";
			close;
		}
	}
	if (BaseLevel < 91 || BaseLevel > 99) {
		// Quest IDs: 4181-4196
		// Quest cooldown IDs: 4212-4227
		setarray .@names$[0],
			"Solider","Freezer","Heater",
			"Injustice","Rybio","Dark Priest",
			"Stapo","Roween","Siroma",
			"Shinobi","Evil Nymph",
			"Deviruchi","Mineral","Kaho","Neraid","Disguise";
		setarray .@exp[0],
			90000,94000,114000,
			96000,96000,146000,
			96000,102000,110000,
			102000,108000,
			110000,138000,118000,96000,134000;
		mes "You must be within level 91-99 to accept these missions.";
		for(set .@quest,4181; .@quest<=4196; set .@quest,.@quest+1) {
			set .@hunting, checkquest(.@quest,HUNTING);
			if (.@hunting == 0 || .@hunting == 1) {
				next;
				mes ":: You cannot proceed in";
				mes ":: ^0000FF"+.@names$[.@quest-4181]+" Hunting^000000.";
				mes ":: The registration to the mission";
				mes ":: is cancelled.";
				erasequest .@quest;
				close;
			} else if (.@hunting == 2) {
				next;
				mes ":: You added information";
				mes ":: about the mission";
				mes ":: ^0000FF"+.@names$[.@quest-4181]+" Hunting^000000";
				mes ":: on the mission board.";
				mes ":: You've got a";
				mes ":: salutary experience.";
				erasequest .@quest;
				getexp .@exp[.@quest-4181],0;
				close;
			}
		}
		close;
	}
	mes "[91-99 Mission Board]";
	mes "There are several requests on this board.";
	next;
	switch(select("^8B4513Turtle Island^000000:^8B4513Glast Heim^000000:^8B4513Rachel / Veins^000000:^8B4513Expansion Cities^000000:^8B4513Other regions^000000")) {
	case 1:
		mes "^8B4513Turtle Island^000000.";
		mes "Which monster will you hunt or have you finished hunting?";
		next;
		switch(select("^0000FFSolider^000000:^0000FFFreezer^000000:^0000FFHeater^000000")) {
			case 1: callsub L_Quest,4181,"Solider",90000,"솔리더카드","There is a monster that only can be found on ^8B4513Turtle Island^000000.";
			case 2: callsub L_Quest,4182,"Freezer",94000,"프리저카드","There is a monster that only can be found on ^8B4513Turtle Island^000000.";
			case 3: callsub L_Quest,4183,"Heater",114000,"히터카드","There is a monster that only can be found on ^8B4513Turtle Island^000000.";
		}
	case 2:
		mes "^8B4513Glast Heim^000000.";
		mes "Which monster will you hunt or have you finished hunting?";
		next;
		switch(select("^0000FFInjustice^000000:^0000FFRybio^000000:^0000FFDark Priest^000000")) {
			case 1: callsub L_Quest,4184,"Injustice",96000,"인저스티스카드","There is a monster only found in ^8B4513Glast Heim prison^000000.";
			case 2: callsub L_Quest,4185,"Rybio",96000,"리비오카드","There is a monster only found in ^8B4513Glast Heim prison^000000.";
			case 3: callsub L_Quest,4186,"Dark Priest",146000,"다크프리스트카드","There is a monster only found in ^8B4513Glast Heim prison^000000.";
		}
	case 3:
		mes "^8B4513Rachel / Veins^000000.";
		mes "Which monster will you hunt or have you finished hunting?";
		next;
		switch(select("^0000FFStapo^000000:^0000FFRoween^000000:^0000FFSiroma^000000")) {
			case 1: callsub L_Quest,4187,"Stapo",96000,"스태포카드","There is a monster only found in ^8B4513Veins^000000.";
			case 2: callsub L_Quest,4188,"Roween",102000,"로우윈카드","There is a monster only found in ^8B4513Rachel^000000.";
			case 3: callsub L_Quest,4189,"Siroma",110000,"시로마카드","There is a monster only found in ^8B4513Ice Dungeon^000000.";
		}
	case 4:
		mes "^8B4513Expansion Cities^000000.";
		mes "Which monster will you hunt or have you finished hunting?";
		next;
		switch(select("^0000FFShinobi^000000:^0000FFEvil Nymph^000000")) {
			case 1: callsub L_Quest,4190,"Shinobi",102000,"시노비카드","There is a monster only found in ^8B4513Amatsu Dungeon^000000.";
			case 2: callsub L_Quest,4191,"Evil Nymph",108000,"요선녀카드","There is a monster only found in ^8B4513Kunlun Dungeon^000000.";
		}
	case 5:
		mes "Other Regions.";
		mes "Which monster will you hunt or have you finished hunting?";
		next;
		switch(select("^0000FFDeviruchi^000000:^0000FFMineral^000000:^0000FFKaho^000000:^0000FFNeraid^000000:^0000FFDisguise^000000")) {
			case 1: callsub L_Quest,4192,"Deviruchi",110000,"데비루치카드","There is a monster only found in ^8B4513Geffen Dungeon^000000.";
			case 2: callsub L_Quest,4193,"Mineral",138000,"미네랄","There is a monster only found in ^8B4513Einbech Dungeon^000000.";
			case 3: callsub L_Quest,4194,"Kaho",118000,"카호카드","There is a monster found in ^8B4513Nogg Road Magma 1^000000.";
			case 4: callsub L_Quest,4195,"Neraid",96000,"네레이드카드","There is a monster only found in ^8B4513Comodo Dungeon^000000.";
			case 5: callsub L_Quest,4196,"Disguise",134000,"디스가이즈카드","There is a monster only found in ^8B4513Nifflheim^000000.";
		}
	}
	end;

//callsub L_Quest,<quest ID>,"<monster name>",<reward EXP>,"<cutin image>","<description>"{,"s"};
L_Quest:
	set .@quest1, getarg(0);
	set .@quest2, .@quest1+31;
	set .@playtime, checkquest(.@quest2,PLAYTIME);
	if (.@playtime == 0 || .@playtime == 1) {
		mes "[91-99 Mission Board]";
		mes "You need to wait 3 hours before you can take this mission again.";
		close;
	}
	set .@hunting, checkquest(.@quest1,HUNTING);
	if (.@hunting == 0 || .@hunting == 1) {
		mes "[91-99 Mission Board]";
		mes "Have you finished hunting all 30 "+getarg(1)+getarg(5,"")+" yet?";
		close;
	} else if (.@hunting == 2) {
		mes "[91-99 Mission Board]";
		mes "You have completed the hunting.";
		mes "Please accept this reward as a compensation.";
		erasequest .@quest1;
		if (.@playtime > -1) erasequest .@quest2;
		setquest .@quest2;

		// Job Experience calculation.
		if (JobLevel > 50 && JobLevel < 56) set .@jexp,67000;
		else if (JobLevel > 55 && JobLevel < 61) set .@jexp,94000;
		else if (JobLevel > 60 && JobLevel < 66) set .@jexp,141000;
		else if (JobLevel > 65 && JobLevel < 69) set .@jexp,212000;
		else if (JobLevel == 69) set .@jexp,311000;

		getexp getarg(2),.@jexp;
		close;
	}/* else if (.@hunting == 3) {
//		recall_completequest .@quest1
		erasequest .@quest1;
		mes "[91-99 Mission Board]";
		mes "You have re-accepted the "+getarg(1)+" Hunting mission.";
		close;
	}*/ else {
		mes "[91-99 Mission Board]";
		mes getarg(4);
		next;
		if (getarg(3) != "") cutin getarg(3),3;
		mes "[91-99 Mission Board]";
		mes "Hunt 30 "+getarg(1)+" monsters there and post your success on this board.";
		next;
		if (getarg(3) != "") cutin getarg(3),255;
		if(select("I'll hunt them.:No thanks.") == 1) {
			mes "[91-99 Mission Board]";
			mes "When you have completed the mission, post it on this board and collect your reward.";
			if (.@playtime > -1) erasequest .@quest2;
			setquest .@quest1;
		}
		close;
	}
}
