//================= 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)  Euphy
//= Copyright (C)  Slim
//= Copyright (C)  CalciumKid
//= Copyright (C)  5511
//= 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/>.
//=========================================================================
//= Poring War
//================= Description ===========================================
//= Join a team in battle between Angeling and Deviling.
//================= Current Version =======================================
//= 1.2
//=========================================================================

//== Poring War Recruiter ==================================
prt_fild08,159,371,3	script	Poring War Recruiter#wop	4_PORING,{
	mes "[Poring]";
	mes "!!!!!";
	mes "Whoa-! Humans, ring~!!";
	mes "Gotta hide, hide, right~!";
	mes "They're tempting us with Jellopy! Don't be fooled!";
	next;
	mes "[Poring]";
	mes "Hwak!!";
	mes "Ring, Ring~ What's wrong with you people..?";
	mes "Hey.. Hey, there. Hu.. Humans...";
	mes "Poring..";
	next;
	mes "[Poring]";
	mes "I.. I've got some interesting work for ya.. Would you be interested?";
	mes "We.. we porings need lots and lots of brave human worriers, ring~.";
	next;
	switch(select("Alright, I'm with you!", "What's that?", "Ignore")) {
	case 1:
		if (Zeny > 499) {
			mes "[Poring]";
			mes "Oh, and there's an entrance fee of 500 zeny, ring.";
			mes "Have a good time, ring.";
			delitem War_Badge,countitem(War_Badge);
			Zeny -= 500;
			close2;
			warp "poring_w01",112,138;
			end;
		} else {
			mes "[Poring]";
			mes "Oh, and there's an entrance fee of 500 zeny, ring.";
			mes "...........";
			mes "Hey, that's life, ring. We need zeny too you know~!";
			close;
		}
	case 2:
		mes "[Poring]";
		mes "That's.. because there's been a.. slight confliction in our.. Ring Society..";
		mes "So we've got to.............have a battle to settle this problem..";
		mes "You'll see when you get there!";
		close;
	case 3:
		mes "[Poring]";
		mes "Huhhhh! Hu.. Humans are so cold and cruel!!!";
		close;
	}
}

//== Poring Vending Machine ================================
poring_w01,100,97,3	script	Poring Vending Machine#w	4_PORING,{
	if (checkweight(Emperium,3) == 0) {
		mes "- You are carrying too much items in order to use the Vending Machine. -";
		close;
	}
	mes "It's a vending machine. You can use Poring Coints to purchase.";
	next;
	if(select("Purchase.", "Read the descriptions of goods.") == 1) {
		mes "You need Poring Coins to purchase items.";
		mes "You cannot use any zeny.";
		mes "Item name - Price Poring Coin(P.Co)";
		next;
		switch(select("Marvelous Medal - 4 P.Co", "Union of Tribe - 20 P.Co", "Poring Box - 30 P.Co", "Next")) {
		case 1:
			callsub S_PoringVending,Marvelous_Medal,4;
		case 2:
			callsub S_PoringVending,Union_Of_Tribe,20;
		case 3:
			callsub S_PoringVending,Poring_Box,30;
		case 4:
			mes "This is a special item.";
			mes "Item name - Poring Coin(P.Co)";
			next;
			switch(select("Wild Rose - 15 P.Co", "Doppelganger - 20 P.Co", "Egnigem Cenia - 20 P.Co", "Collection Item")) {
			case 1:
				callsub S_PoringVending,Wild_Rose_Scroll,15;
			case 2:
				callsub S_PoringVending,Doppelganger_Scroll,20;
			case 3:
				callsub S_PoringVending,Ygnizem_Scroll,20;
			case 4:
				mes "Figures of 1st Job Class Characters including Novice are finally on sale!";
				mes "Figures except for Novice are all ^4d4dffCharacter bound items^000000.";
				mes "Please be aware before you make a purchase~";
				mes "Item name - Poring Coin(P.Co)";
				next;
				switch(select("Novice Figure - 50 P.Co", "Swordman Figure - 100 P.Co", "Thief Figure - 100 P.Co", "Merchant Figure - 100 P.Co", "Acolyte Figure - 100 P.Co", "Mage Figure - 100 P.Co", "Archer Figure - 100 P.Co", "Random Draw - 50 P.Co", "Cancel")) {
				case 1:
					callsub S_PoringVending,Novice_Figure,50;
				case 2:
					callsub S_PoringVending,Swordman_Figure,100;
				case 3:
					callsub S_PoringVending,Thief_Figure,100;
				case 4:
					callsub S_PoringVending,Merchant_Figure,100;
				case 5:
					callsub S_PoringVending,Acolyte_Figure,100;
				case 6:
					callsub S_PoringVending,Mage_Figure,100;
				case 7:
					callsub S_PoringVending,Archer_Figure,100;
				case 8:
					mes "You have chosen Random Draw.";
					mes "1 of 7 diffeent kinds of figures will be selected.";
					next;
					if(select("Draw", "Cancel") == 1) {
						if (countitem(Poring_Coin) >= 50) {
							mes "Insert the Poring coin and pull the lever.";
							mes "Click~ The item came out of the mouth of the Poring with a rumbling sound.";
							mes "What could it be?";
							next;
							switch(rand(1,17)) {
							case 5: .@Random_Figure = 2766; break; // Swordman_Figure
							case 6: .@Random_Figure = 2767; break; // Acolyte_Figure
							case 8: .@Random_Figure = 2770; break; // Thief_Figure
							case 11: .@Random_Figure = 2771; break; // Merchant_Figure
							case 13: .@Random_Figure = 2769; break; // Archer_Figure
							case 14: .@Random_Figure = 2768; break; // Mage_Figure
							default: .@Random_Figure = 2765; break; // Novice_Figure
							}
							mes "A nice " + getitemname(.@Random_Figure) + ".";
							delitem Poring_Coin,50; // Poring_Coin
							getitem .@Random_Figure,1;
							close;
						} else {
							mes "Not enough coins.";
							close;
						}
					}
					mes "["+strcharinfo(PC_NAME)+"]";
					mes "... Maybe next time...";
					close;
				case 9:
					mes "["+strcharinfo(PC_NAME)+"]";
					mes "... Maybe next time...";
					close;
				}
			}
		}
	}
	mes "Selling Item List";
	mes "====================";
	mes "[Marvelous Medal]";
	mes " : A medal made of special metal only produced in Hugel.";
	mes " ";
	mes "[Union of Tribe]";
	mes " : A statue with the image of a strong union of Tribes. People believe watching this statue actually helps strengthen the relationships between Tribes.";
	mes " ";
	mes "[Poring Box]";
	mes " : A box wrapped with Poring patterned wrapping paper. Something's inside.";
	mes " ";
	mes "[Wild Rose]";
	mes " : Your friend Wild Rose will come and help you.";
	mes " ";
	mes "[Mr. Doppel]";
	mes " : A young nobe, Doppelganger will come and help you.";
	mes " ";
	mes "[Egnigem Cenia]";
	mes " : A beautiful girl, Egnigem Cenia from Somatology Laboratory, is going to come and help you.";
	mes " ";
	mes "[Novice Figure]";
	mes " : A fine figure of a Novice. Can be equiped as an '^4d4dffaccessory^000000'.";
	mes " HP + 70, extra effect of HP + 30 when equipped by a Novices.";
	mes " ";
	mes "[Swordman Figure]";
	mes " : A nice figure of a Swordman. Can be equipped as an '^4d4dffaccessory^000000'.";
	mes " VIT + 1, extra effect of DEF + 2 when equipped by Swordman classes.";
	mes " ";
	mes "[Merchant Figure]";
	mes " : A fine figure of a Merchant. Can be equipped as an '^4d4dffaccessory^000000'.";
	mes " STR + 1, extra effect of CRI + 5 when equipped by Merchant classes.";
	mes " ";
	mes "[Thief Figure]";
	mes " : A fine Figure of a Thief. Can be equipped as an '^4d4dffaccessory^000000'.";
	mes " AGI + 1, extra effectASPD + 3% when equipped by Thief classes.";
	mes " ";
	mes "[Mage Figure]";
	mes " : A fine figure of a Mage. Can be equipped as an '^4d4dffaccessory^000000'.";
	mes " INT + 1, an extra SP Recovery increase by 5% when equipped by Mage classes.";
	mes " ";
	mes "[Acolyte Figure]";
	mes " : A fine figure of an Acolyte. Can be equipped as an '^4d4dffaccessory^000000'.";
	mes " INT + 1, extra effct of SP + 50 when equipped by Acolyte classes.";
	mes " ";
	mes "[Archer Figure]";
	mes " : A fine figure of an Archer. Can be equipped as an '^4d4dffaccessory^000000'.";
	mes " DEX + 1, extra effct of ATK + 10 when equipped by Archer classes.";
	close;
	end;

S_PoringVending:
	if (countitem(Poring_Coin) >= getarg(1)) {
		mes "Click~ The item came out of the mouth of the Poring with a rumbling sound.";
		delitem Poring_Coin,getarg(1); // Poring_Coin
		getitem getarg(0),1;
	} else {
		mes "Not enough coins.";
	}
	close;
}

//== Information ===========================================
poring_w01,96,97,3	script	Sweet Devi#wop	4_DEVIRUCHI,{
	if (MaxWeight-Weight < 2000 || checkweight(Knife,1) == 0) {
		mes "- Wait a minute !! -";
		mes "- Currently you're carrying -";
		mes "- too many items with you. -";
		mes "- Please try again -";
		mes "- after you loose some weight. -";
		close;
	}
	mes "[Deviruchi]";
	mes "Oh, Another Human Warrior!";
	mes "How come so many humans want to join our Poring War these days?";
	next;
	mes "[Deviruchi]";
	mes "Well, whatever, as long as I make money out of it~";
	mes "Ok, Warriors-! Hahaha How badly have I wanted to shout it out~!!";
	next;
	mes "[Deviruchi]";
	mes "You, brave warrior, are you ready to join the holy battle of Angeling and Deviling?";
	next;
	mes "[Deviruchi]";
	mes "Hehehee, I feel kinda shy now.";
	mes "Anyway, human. Do you want to join our Poring War?";
	next;
	switch(select("Am I qualified to join?", "How do I join the war?", "Cancel", "Let me out of here, please!")) {
	case 1:
		mes "[Deviruchi]";
		mes "No racial discrimination! Anyone can join if they're willing to fight.";
		mes "But the weird thing is that you humans who used to be our greatest enemies are now our participants.";
		next;
		mes "[Deviruchi]";
		mes "If you really want to fight in the war or whatever.. the Team recruiter's right there.";
		mes "Also, it's totally up to you which team you want to fight for~";
		close;
	case 2:
		mes "[Deviruchi]";
		mes "It's simple. You see that Team recruiting room?";
		mes "Each team is composed of 5 people. As soon as 5 members are collected, the battle starts.";
		mes "You win if you kill the other team's Porings.";
		next;
		mes "[Deviruchi]";
		mes "This also means that the battle needs the total of 10 members.";
		next;
		mes "[Deviruchi]";
		mes "When all 10 members are collected, those participants get to choose a team. Each team then should have 5 members who are in the SAME party.";
		next;
		mes "[Deviruchi]";
		mes "So, finally, half of the members joins the Angeling Team";
		mes "and the other half joins the Deviling Team.";
		next;
		mes "[Deviruchi]";
		mes "If you're a member of the Angeling Team, your goal is to kill the Devilings at the other team's base and vice versa.";
		next;
		mes "[Deviruchi]";
		mes "Each team should try killing both Porings in the other team's base. After killing one Poring, you have a limited time to kill the other Poring. Otherwise, the one you killed will come back alive.";
		next;
		mes "[Deviruchi]";
		mes "It's sort of like a capture the flag game but with Porings instead. Understood?";
		mes "And you need to make sure you know who's in which party.";
		close;
	case 3:
		mes "[" + strcharinfo(PC_NAME) + "]";
		mes "hmm, I see.";
		close;
	case 4:
		mes "[Deviruchi]";
		mes "Oh, Alright. I can help.";
		mes "I'll send you back to your savepoint.";
		close2;
		if (WoP_SaveMap$ != "") {
			savepoint WoP_SaveMap$,WoP_SaveMap_X,WoP_SaveMap_Y;
			WoP_SaveMap$ = "";
			WoP_SaveMap_X = 0;
			WoP_SaveMap_Y = 0;
		}
		warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
		end;
	}

OnPCLogoutEvent:
	getmapxy(.@map$, .@x, .@y, UNITTYPE_PC);
	if (.@map$ == "poring_w02") {
		if (WoP_SaveMap$ != "") {
			savepoint WoP_SaveMap$,WoP_SaveMap_X,WoP_SaveMap_Y;
			WoP_SaveMap$ = "";
			WoP_SaveMap_X = 0;
			WoP_SaveMap_Y = 0;
		}
		delitem War_Badge,countitem(War_Badge);
		wop_team = 0;
	}
	end;

OnPCDieEvent:
	getmapxy(.@map$, .@x, .@y, UNITTYPE_PC);
	if (.@map$ == "poring_w02" && wop_team) {
		if (getsavepoint(0) != "poring_w02" && WoP_SaveMap$ == "") {
			WoP_SaveMap$ = getsavepoint(0);
			WoP_SaveMap_X = getsavepoint(1);
			WoP_SaveMap_Y = getsavepoint(2);
		}
		if (wop_team == 1) {
			savepoint "poring_w02",rand(44,51),rand(76,87);
		}
		if (wop_team == 2) {
			savepoint "poring_w02",rand(146,153),rand(76,87);
		}
	}
	end;

OnPCKillEvent:
	getmapxy(.@map$, .@x, .@y, UNITTYPE_PC);
	if (.@map$ == "poring_w02" && wop_team) {
		getnameditem War_Badge,rid2name(killedrid);
	}
	end;

OnInit:
	removemapflag "poring_w02",mf_partylock;
	removemapflag "poring_w02",mf_pvp;
	removemapflag "poring_w02",mf_pvp_noguild;
	removemapflag "poring_w02",mf_pvp_nocalcrank;
	$@wop_teamcount = 0;
	$@wop_deadcount_a = 0;
	$@wop_deadcount_d = 0;
	$@wop_team_a = 0;
	$@wop_team_d = 0;
	$@wop_doorcount_a = 0;
	$@wop_doorcount_d = 0;
	end;
}

//== Poring Registers ======================================
poring_w01,91,97,3	script	Poring#wop_door_all	PORING,{
	end;

OnInit:
	waitingroom "[Recruiting 10 Battle Participants]",11,"Poring#wop_door_all::OnStartArena",10,500,9;
	enablewaitingroomevent;
	end;

OnStartArena:
	warpwaitingpc "poring_w01",101,70;
	donpcevent "#wop_warp_rtry::OnReady";
	disablewaitingroomevent;
	end;

OnEnable:
	enablewaitingroomevent;
	end;

OnDisable:
	disablewaitingroomevent;
	end;
}

poring_w01,91,68,5	script	Poring#wop_door_a	PORING,{
	end;

OnInit:
	waitingroom "[Angeling Team Recruiter]",6,"Poring#wop_door_a::OnStartArena",5,0,9;
	enablewaitingroomevent;
	end;

OnStartArena:
	warpwaitingpc "poring_w02",26,175;
	disablewaitingroomevent;
	if ($@wop_teamcount == 0) {
		$@wop_teamcount = 1;
		donpcevent "Poring#wop_door_d::OnDevilingStart";
		donpcevent "#wop_warp_rtry::OnStop";
	}
	else if ($@wop_teamcount == 1) {
		donpcevent "#wop_master::OnStart";
		donpcevent "Poring#wop_door_d::OnStop";
		stopnpctimer;
	}
	end;

OnEnable:
	enablewaitingroomevent;
	end;

OnDisable:
	disablewaitingroomevent;
	end;

OnAngelingStart:
	initnpctimer;
	end;

OnStop:
	stopnpctimer;
	end;

OnTimer1000:
	mapannounce "poring_w01","The greatest battle of all time, the recruitment for the Deviling Team is over, ring!",0,0xf08080;
	end;

OnTimer4000:
	mapannounce "poring_w01","Join the proud Angeling Team with angel wings!!",0,0xf08080;
	end;

OnTimer8000:
	mapannounce "poring_w01","You got one minute to join the Angeling Team. The battle will be cancelled in 1 minute if not ready!!",0,0xf08080;
	donpcevent "#wop_master::OnAngelingWarn";
	end;

OnTimer13000:
	mapannounce "poring_w01","This is the time to join the great Angeling Team, ring!",0,0xf08080;
	end;

OnTimer20000:
	mapannounce "poring_w01","This battle is the proud of the porings! Ring! Join the Angeling Team!!",0,0xf08080;
	end;

OnTimer30000:
	mapannounce "poring_w01","We don't have much time, ring. Don't let the Devilings contaminate you!",0,0xf08080;
	end;

OnTimer40000:
	mapannounce "poring_w01","Come! Join us!",0,0xf08080;
	end;

OnTimer50000:
	mapannounce "poring_w01","What a pitty! I can't believe that brave warriors are missing!",0,0xf08080;
	end;

OnTimer55000:
	mapannounce "poring_w01","Deviling: You can't leave us waiting for ever!! We're going to cancel the battle, ring!",0,0x33FF66;
	end;

OnTimer55100:
	donpcevent "Poring#wop_door_a::OnDisable";
	donpcevent "Poring#wop_door_d::OnDisable";
	donpcevent "Poring#wop_door_all::OnDisable";
	$@wop_teamcount = 0;
	donpcevent "#wop_master::OnAngelingEnd";
	donpcevent "#wop_warp_rtry::OnEnable";
	end;

OnTimer58000:
	mapannounce "poring_w01","...There is nothing we can do, ring... Lets cheer for the next one, ring.",0,0xf08080;
	donpcevent "#wop_master::OnReset";
	stopnpctimer;
	end;
}

poring_w01,112,68,3	script	Poring#wop_door_d	PORING,{
	end;

OnInit:
	waitingroom "[Deviling Team Recruiter]",6,"Poring#wop_door_d::OnStartArena",5,0,9;
	enablewaitingroomevent;
	end;

OnStartArena:
	warpwaitingpc "poring_w02",170,175;
	disablewaitingroomevent;
	if ($@wop_teamcount == 0) {
		$@wop_teamcount = 1;
		donpcevent "Poring#wop_door_a::OnAngelingStart";
		donpcevent "#wop_warp_rtry::OnStop";
	}
	else if ($@wop_teamcount == 1) {
		donpcevent "#wop_master::OnStart";
		donpcevent "Poring#wop_door_a::OnStop";
		stopnpctimer;
	}
	end;

OnEnable:
	enablewaitingroomevent;
	end;

OnDisable:
	disablewaitingroomevent;
	end;

OnDevilingStart:
	initnpctimer;
	end;

OnStop:
	stopnpctimer;
	end;

OnTimer1000:
	mapannounce "poring_w01","No more good people, the recruitment for the Angeling Team is over, ring!",0,0x33FF66;
	end;

OnTimer4000:
	mapannounce "poring_w01","Nice members of the Deviling Team! Lets gather, ring!!",0,0x33FF66;
	end;

OnTimer8000:
	mapannounce "poring_w01","The battle will be cancelled if the members aren't recruited in one minute!!",0,0x33FF66;
	donpcevent "#wop_master::OnDevilingWarn";
	end;

OnTimer13000:
	mapannounce "poring_w01","This is the time to join the brave Deviling Team, ring!",0,0x33FF66;
	end;

OnTimer20000:
	mapannounce "poring_w01","D,E,V,I,L,I,N,G! Deviling Team! Come and join us!",0,0x33FF66;
	end;

OnTimer30000:
	mapannounce "poring_w01","There ain't much time left, ring! If you wish to became a member of Deviling Team, Come and Join!",0,0x33FF66;
	end;

OnTimer40000:
	mapannounce "poring_w01","D,E,V,I,L,I,N,G! Deviling Team! Come and Join us!!",0,0x33FF66;
	end;

OnTimer50000:
	mapannounce "poring_w01","What a pitty! I can't believe there aren't enough players!",0,0x33FF66;
	end;

OnTimer55000:
	mapannounce "poring_w01","Angeling: We got no time to wait, stupid Deviling! The battle has been cancelled, ring!",0,0xf08080;
	end;

OnTimer55100:
	donpcevent "Poring#wop_door_a::OnDisable";
	donpcevent "Poring#wop_door_d::OnDisable";
	donpcevent "Poring#wop_door_all::OnDisable";

	$@wop_teamcount = 0;
	donpcevent "#wop_master::OnDevilingEnd";
	donpcevent "#wop_warp_rtry::OnEnable";
	end;

OnTimer58000:
	mapannounce "poring_w01","...Ughhhhhh... Tell me that isn't happening, ring! Right, Be ready for the next one, ring!!",0,0x33FF66;
	donpcevent "#wop_master::OnReset";
	stopnpctimer;
	end;
}

poring_w01,103,70,0	script	#wop_warp_rtry	HIDDEN_WARP_NPC,13,13,{
	end;

OnInit:
	disablenpc "#wop_warp_rtry";
	end;

OnEnable:
	enablenpc "#wop_warp_rtry";
	end;

OnDisable:
	disablenpc "#wop_warp_rtry";
	end;

OnReady:
	initnpctimer;
	end;

OnStop:
	stopnpctimer;
	end;

OnTouch:
	warp "poring_w01",112,138;
	end;

OnTimer3000:
	mapannounce "poring_w01","Porings: I am giving you 1 minute. Choose your team, ring!",0,0xf08080;
	end;

OnTimer33000:
	mapannounce "poring_w01","Porings: 30 seconds left! Come on, Choose a team now, ring?!!",0,0xf08080;
	end;

OnTimer58000:
	mapannounce "poring_w01","Porings: You sure you're a warrior?!!! I'm disappointed, ring!",0,0xf08080;
	end;

OnTimer60000:
	mapannounce "poring_w01","The battle has been canceled since not all teams are full!!",0,0xf08080;
	end;

OnTimer61000:
	enablenpc "#wop_warp_rtry";
	end;

OnTimer65000:
	disablenpc "#wop_warp_rtry";
	donpcevent "#wop_master::OnReset";
	stopnpctimer;
	end;
}

//== Mr. Doppel ============================================
poring_w02,26,181,3	script	Mr. Doppel#wop_team_a	8_DOPPEL,{
	if (checkweight(Emperium,3) == 0) {
		mes "- Wait a minute !! -";
		mes "- Currently you're carrying -";
		mes "- too many items with you. -";
		mes "- Please try again -";
		mes "- after you loose some weight. -";
		close;
	}
	.@a_tname$ = getpartyname($@wop_team_a);
	.@pname$ = getpartyname(getcharid(CHAR_ID_PARTY));
	if ($@wop_team_a != 0 && $@wop_team_a == getcharid(CHAR_ID_PARTY)) {
		mes "[Mr. Doppel]";
		mes "So, everyone joined the party?";
		mes "The name of the party is... " + .@pname$ + ", right?";
		mes "I'll transfer you to the battle staging area.";
		next;
		switch(select("No! Wait!", "Go to the staging area.")) {
		case 1:
			mes "[Mr. Doppel]";
			mes "What is it now?";
			mes "Can't you have a little more consideration?";
			mes "You don't have much time. Decide now!";
			next;
			mes "[Mr. Doppel]";
			mes "If you don't get there in time, you won't make it to the battle.";
			close;
		case 2:
			if ((getpartyleader(getcharid(CHAR_ID_PARTY),2) == getcharid(CHAR_ID_CHAR))) {
				mes "[Mr. Doppel]";
				mes "So, you are the leader. Before going to the battlefield, you should check all your members.";
				next;
				switch(select("Very well. I'll be the last.", "I am the last. Send me to the battlefield.")) {
				case 1:
					mes "[Mr. Doppel]";
					mes "First, make sure all the members are in your party.";
					close;
				case 2:
					mes "[Mr. Doppel]";
					mes "Very well. Nice you have done everything on time.";
					delitem War_Badge,countitem(War_Badge);
					close2;
					wop_team = 0;
					warp "poring_w02",44,82;
					end;
				}
			}
			else {
				mes "[Mr. Doppel]";
				mes "Right. I'm gonna send you to the battle staging area.";
				mes "Wait for all the other party members there.";
				delitem War_Badge,countitem(War_Badge);
				close2;
				wop_team = 0;
				warp "poring_w02",44,82;
				end;
			}
		}
	}
	else {
		if ((getpartyleader(getcharid(CHAR_ID_PARTY),2) == getcharid(CHAR_ID_CHAR))) {
			if ($@wop_team_a == 0) {
				mes "[Mr. Doppel]";
				mes "So, you are the party leader of Angeling Team.";
				mes "Are you sure all the members are in your party?";
				mes "First, lets register your party name, after, we'll check the members.";
				next;
				mes "[Mr. Doppel]";
				mes "Lets see... The name of the party is...";
				mes " ";
				mes "^4d4dff " + .@pname$ + " ^000000";
				mes " ";
				mes "Right? That is the name you wish?";
				next;
				switch(select("No! You're wrong.", "Yes. I would like to register that name.", "Cancel")) {
				case 1:
					mes "[Mr. Doppel]";
					mes "Hey, I don't have all day! Make your mind and register as fast as you can.";
					mes "Don't forget to let all the members join the party. Only the members of a registered party can join the battle.";
					close;
				case 2:
					mes "[Mr. Doppel]";
					mes "So, I'll register your party name as - " +.@pname$ + " -.";
					mes "Now, Tell your ^4d4dffmembers to confirm your party^000000.";
					mes "I'll send you to the battlefield as soon as I confirm your party.";
					$@wop_team_a = getcharid(CHAR_ID_PARTY);
					mapannounce "poring_w02","The registration of the Angeling Team has been confirmed. The party members must confirm their team with Mr. Doppel.",0,0x33FF66;
					close;
				case 3:
					mes "[Mr. Doppel]";
					mes "The clock is ticking. Make up your mind and register as soon as you can.";
					close;
				}
			}
			else {
				mes "[Mr. Doppel]";
				mes "So, you are the leader of the party.";
				mes "Haven't you finished the party registration yet?";
				mes "You must stay on the one that has been registered!";
				next;
				mes "[Mr. Doppel]";
				mes "The name of the party is ";
				mes " " + .@a_tname$ + " ";
				mes "Please, confirm.";
				close;
			}
		}
		else {
			mes "[Mr. Doppel]";
			mes "If you aren't a registered member of the party, you can't join the battle.";
			next;
			mes "[Mr. Doppel]";
			mes "I'll check again and, after the registeration of the party name, you'll be sent to the battlefield.";
			mes "We must stay together as a party, since this is a team game. Otherwise, we'll have problems.";
			close;
		}
	}

OnInit:
	disablenpc "Mr. Doppel#wop_team_a";
	end;

OnEnable:
	enablenpc "Mr. Doppel#wop_team_a";
	end;

OnDisable:
	disablenpc "Mr. Doppel#wop_team_a";
	end;
}

poring_w02,170,181,3	script	Mr. Doppel#wop_team_d	8_DOPPEL,{
	if (checkweight(Emperium,3) == 0) {
		mes "- Wait a minute !! -";
		mes "- Currently you're carrying -";
		mes "- too many items with you. -";
		mes "- Please try again -";
		mes "- after you loose some weight. -";
		close;
	}
	.@d_tname$ = getpartyname($@wop_team_d);
	.@pname$ = getpartyname(getcharid(CHAR_ID_PARTY));
	if ($@wop_team_d != 0 && $@wop_team_d == getcharid(CHAR_ID_PARTY)) {
		mes "[Mr. Doppel]";
		mes "So, everyone joined the party?";
		mes "The name of the party is... " + .@pname$ + ", right?";
		mes "I'll transfer you to the battle staging area.";
		next;
		switch(select("No! Wait!", "Go to the staging area.")) {
		case 1:
			mes "[Mr. Doppel]";
			mes "What is it now?";
			mes "Can't you have a little more consideration?";
			mes "You don't have much time. Decide now!";
			next;
			mes "[Mr. Doppel]";
			mes "If you don't get there in time, you won't make it to the battle.";
			close;
		case 2:
			if ((getpartyleader(getcharid(CHAR_ID_PARTY),2) == getcharid(CHAR_ID_CHAR))) {
				mes "[Mr. Doppel]";
				mes "So, you are the leader. Before going to the battlefield, you should check all your members.";
				next;
				switch(select("Very well. I'll be the last.", "I am the last. Send me to the battlefield.")) {
				case 1:
					mes "[Mr. Doppel]";
					mes "First, make sure all the members are in your party.";
					close;
				case 2:
					mes "[Mr. Doppel]";
					mes "Very well. Nice you have done everything on time.";
					delitem War_Badge,countitem(War_Badge);
					close2;
					wop_team = 0;
					warp "poring_w02",153,82;
					end;
				}
			} else {
				mes "[Mr. Doppel]";
				mes "Right. I'm gonna send you to the battle staging area.";
				mes "Wait for all the other party members there.";
				delitem War_Badge,countitem(War_Badge);
				close2;
				wop_team = 0;
				warp "poring_w02",153,82;
				end;
			}
		}
	} else {
		if ((getpartyleader(getcharid(CHAR_ID_PARTY),2) == getcharid(CHAR_ID_CHAR))) {
			if ($@wop_team_d == 0) {
				mes "[Mr. Doppel]";
				mes "So, you are the party leader of Deviling Team.";
				mes "Are you sure all the members are in your party?";
				mes "First, lets register your party name, after, we'll check the members.";
				next;
				mes "[Mr. Doppel]";
				mes "Lets see... The name of the party is...";
				mes " ";
				mes "^4d4dff " + .@pname$ + " ^000000";
				mes " ";
				mes "Right? That is the name you wish?";
				next;
				switch(select("No! You're wrong.", "Yes. I would like to register that name.", "Cancel")) {
				case 1:
					mes "[Mr. Doppel]";
					mes "Hey, I don't have all day! Make your mind and register as fast as you can.";
					mes "Don't forget to let all the members join the party. Only the members of a registered party can join the battle.";
					close;
				case 2:
					mes "[Mr. Doppel]";
					mes "So, I'll register your party name as - " + .@pname$ + " -.";
					mes "Now, Tell your ^4d4dffmembers to confirm your party^000000.";
					mes "I'll send you to the battlefield as soon as I confirm your party.";
					$@wop_team_d = getcharid(CHAR_ID_PARTY);
					mapannounce "poring_w02","The registration of the Deviling Team has been confirmed. The party members must confirm their team with Mr. Doppel.",0,0x33FF66;
					close;
				case 3:
					mes "[Mr. Doppel]";
					mes "The clock is ticking. Make up your mind and register as soon as you can.";
					close;
				}
			} else {
				mes "[Mr. Doppel]";
				mes "So, you are the leader of the party.";
				mes "Haven't you finished the party registration yet?";
				mes "You must stay on the one that has been registered!";
				next;
				mes "[Mr. Doppel]";
				mes "The name of the party is ";
				mes " " + .@d_tname$ + " ";
				mes "Please, confirm.";
				close;
			}
		} else {
			mes "[Mr. Doppel]";
			mes "If you aren't a registered member of the party, you can't join the battle.";
			next;
			mes "[Mr. Doppel]";
			mes "I'll check again and, after the registeration of the party name, you'll be sent to the battlefield.";
			mes "We must stay together as a party, since this is a team game. Otherwise, we'll have problems.";
			close;
		}
	}

OnInit:
	disablenpc "Mr. Doppel#wop_team_d";
	end;

OnEnable:
	enablenpc "Mr. Doppel#wop_team_d";
	end;

OnDisable:
	disablenpc "Mr. Doppel#wop_team_d";
	end;
}

poring_w02,1,1,0	script	#wop_master	FAKE_NPC,{
	end;

OnReset:
	removemapflag "poring_w02",mf_partylock;
	removemapflag "poring_w02",mf_pvp;
	removemapflag "poring_w02",mf_pvp_noguild;
	removemapflag "poring_w02",mf_pvp_nocalcrank;
	mapwarp "poring_w02","poring_w01",112,138;
	donpcevent "#wop_angellium1::OnReset";
	donpcevent "#wop_angellium2::OnReset";
	donpcevent "#wop_devillium1::OnReset";
	donpcevent "#wop_devillium2::OnReset";
	$@wop_team_a = 0;
	$@wop_team_d = 0;
	$@wop_deadcount_a = 0;
	$@wop_deadcount_d = 0;
	$@wop_teamcount = 0;
	$@wop_doorcount_a = 0;
	$@wop_doorcount_d = 0;
	donpcevent "#wop_warp_a::OnDisable";
	donpcevent "#wop_warp_d::OnDisable";
	donpcevent "#wop_warp_rtry::OnDisable";
	donpcevent "Poring#wop_door_a::OnEnable";
	donpcevent "Poring#wop_door_d::OnEnable";
	donpcevent "Poring#wop_door_all::OnEnable";
	stopnpctimer;
	end;

OnStart:
	initnpctimer;
	end;

OnAngelingWarn:
	mapannounce "poring_w02","Deviling Team Recruitment is complete. The battle will be canceled automatically if the Angeling Team Recruitment isn't ready in 1 minute.",0,0xf08080;
	end;

OnDevilingWarn:
	mapannounce "poring_w02","Angeling Team Recruitment is complete. The battle will be canceled automatically if the Deviling Team Recruitment isn't ready in 1 minute.",0,0xf08080;
	end;

OnDevilingEnd:
	mapannounce "poring_w02","Deviling Team Recruitment failed. The battle will be canceled shortly.",0,0xf08080;
	end;

OnAngelingEnd:
	mapannounce "poring_w02","Angeling Team Recruitment failed. The battle will be canceled shortly.",0,0xf08080;
	end;

OnStop:
	stopnpctimer;
	end;

OnAngelingWin:
	.@i = 1;
OnDevilingWin:
	removemapflag "poring_w02",mf_partylock;
	removemapflag "poring_w02",mf_pvp;
	removemapflag "poring_w02",mf_pvp_noguild;
	removemapflag "poring_w02",mf_pvp_nocalcrank;
	if (.@i)
		mapannounce "poring_w02","Mr. Doppel: Angeling Team of party " + getpartyname($@wop_team_a) + " won the battle!",0,0xf08080;
	else
		mapannounce "poring_w02","Mr. Doppel: Deviling Team of party " + getpartyname($@wop_team_d) + " won the battle!",0,0xf08080;
	donpcevent "Deviruchi#wop_endmaster::OnEnable";
	stopnpctimer;
	// Reset Barriers
	donpcevent "#aroom_ingate_wop::OnDisable";
	donpcevent "#aroom_outgate_wop::OnDisable";
	donpcevent "#droom_ingate_wop::OnDisable";
	donpcevent "#droom_outgate_wop::OnDisable";
	end;

OnTimer5000:
	mapannounce "poring_w02","Mr. Doppel: Welcome to all the warriors that have come to fight the battle.",0,0xf08080;
	donpcevent "Mr. Doppel#wop_team_a::OnEnable";
	donpcevent "Mr. Doppel#wop_team_d::OnEnable";
	end;

OnTimer8000:
	mapannounce "poring_w02","Mr. Doppel: Each member of the team must join the group, and the leader will register their team name.",0,0xf08080;
	end;

OnTimer12000:
	mapannounce "poring_w02","Mr. Doppel: You have 50 seconds. Join the group, register it's name and go to the battlefield.",0,0xf08080;
	end;

OnTimer32000:
	mapannounce "poring_w02","Mr. Doppel: You still have 30 seconds. Join the group, register it's name and go to the battlefield.",0,0xf08080;
	end;

OnTimer62000:
	mapannounce "poring_w02","Mr. Doppel: Time is up. The rules will be explained shortly before the battle.",0,0xf08080;
	end;

OnTimer70000:
	mapannounce "poring_w02","Mr. Doppel: All ready? Let me explain the battle rules.",0,0xf08080;
	end;

OnTimer75000:
	mapannounce "poring_w02","Mr. Doppel: The Angeling Team has to protect 2 Angelings on their bases and, at the same time, eliminate the Devilings on their Deviling Team bases, and vice-versa.",0,0xf08080;
	end;

OnTimer80000:
	mapannounce "poring_w02","Mr. Doppel: Your team wins if you eliminate the 2 monsters of the enemy team. The rules are as simple as that.",0,0xf08080;
	end;

OnTimer85000:
	mapannounce "poring_w02","Mr. Doppel: But the Angelings or the Devilings return to life after a certain period of time, so it's important to eliminate the other Poring quickly, after you have eliminated the first.",0,0xf08080;
	end;

OnTimer90000:
	mapannounce "poring_w02","Mr. Doppel: Also know that those Porings are furious and will attack everybody, it doesnt matter to what team they belong.",0,0xf08080;
	end;

OnTimer95000:
	mapannounce "poring_w02","Mr. Doppel: Basically, the Porings are natural enemies of the humans, so the attack is innevitable, even if both are on the same team.",0,0xf08080;
	end;

OnTimer100000:
	mapannounce "poring_w02","Mr. Doppel: In certain areas, you will need War Badges that are obtained by eliminating members of the other team. Alright, lets begin!",0,0xf08080;
	setmapflag "poring_w02",mf_partylock;
	setmapflag "poring_w02",mf_pvp;
	setmapflag "poring_w02",mf_pvp_noguild;
	setmapflag "poring_w02",mf_pvp_nocalcrank;
	donpcevent "#wop_warp_a::OnEnable";
	donpcevent "#wop_warp_d::OnEnable";
	donpcevent "#wop_angellium1::OnAngelingSpawn";
	donpcevent "#wop_angellium2::OnAngelingSpawn";
	donpcevent "#wop_devillium1::OnDevilingSpawn";
	donpcevent "#wop_devillium2::OnDevilingSpawn";
	end;

OnTimer700000:
	mapannounce "poring_w02","Mr. Doppel: Time is up. Soon, you will be teleported to the Winners Stage.",0,0xf08080;
	removemapflag "poring_w02",mf_partylock;
	removemapflag "poring_w02",mf_pvp;
	removemapflag "poring_w02",mf_pvp_noguild;
	removemapflag "poring_w02",mf_pvp_nocalcrank;
	donpcevent "#wop_angellium1::OnReset";
	donpcevent "#wop_angellium2::OnReset";
	donpcevent "#wop_devillium1::OnReset";
	donpcevent "#wop_devillium2::OnReset";
	end;

OnTimer703000:
	donpcevent "Deviruchi#wop_endmaster::OnEnable";
	stopnpctimer;
	end;
}

poring_w02,51,82,0	script	#wop_warp_a	HIDDEN_WARP_NPC,1,1,{
	end;

OnInit:
	disablenpc "#wop_warp_a";
	end;

OnEnable:
	enablenpc "#wop_warp_a";
	specialeffect(EF_MAPPILLAR2, AREA, getnpcid("#wop_warp_a"));
	end;

OnDisable:
	disablenpc "#wop_warp_a";
	end;

OnTouch:
	wop_team = 1;
	warp "poring_w02",57,82;
	end;
}

poring_w02,146,82,0	script	#wop_warp_d	HIDDEN_WARP_NPC,1,1,{
	end;

OnInit:
	disablenpc "#wop_warp_d";
	end;

OnEnable:
	enablenpc "#wop_warp_d";
	specialeffect(EF_MAPPILLAR2, AREA, getnpcid("#wop_warp_d"));
	end;

OnDisable:
	disablenpc "#wop_warp_d";
	end;

OnTouch:
	wop_team = 2;
	warp "poring_w02",140,82;
	end;
}

//== Poring Spawn ==========================================
poring_w02,80,82,0	script	#wop_angellium1	FAKE_NPC,{
	end;

OnReset:
	killmonster "poring_w02","#wop_angellium1::OnMyMobDead";
	stopnpctimer;
	end;

OnAngelingSpawn:
	monster "poring_w02",80,82,"Angeling",1766,1,"#wop_angellium1::OnMyMobDead";
	end;

OnMyMobDead:
	++$@wop_deadcount_a;
	if ($@wop_deadcount_a == 1) {
		mapannounce "poring_w02","Mr. Doppel: The Angeling on the 1st base has been killed! 1 point lost!!",0,0x00ff00;
		initnpctimer;
	}
	else {
		donpcevent "#wop_angellium1::OnReset";
		donpcevent "#wop_angellium2::OnReset";
		donpcevent "#wop_devillium1::OnReset";
		donpcevent "#wop_devillium2::OnReset";
		donpcevent "#wop_master::OnDevilingWin";
	}
	end;

OnTimer120000:
	--$@wop_deadcount_a;
	donpcevent "#wop_angellium1::OnAngelingSpawn";
	mapannounce "poring_w02","Mr. Doppel: The Angeling on the 1st base has been revived! 1 point gained!!",0,0x00ff00;
	stopnpctimer;
}

poring_w02,98,41,0	script	#wop_angellium2	FAKE_NPC,{
	end;

OnReset:
	killmonster "poring_w02","#wop_angellium2::OnMyMobDead";
	stopnpctimer;
	end;

OnAngelingSpawn:
	monster "poring_w02",98,41,"Angeling",1766,1,"#wop_angellium2::OnMyMobDead";
	end;

OnMyMobDead:
	++$@wop_deadcount_a;
	if ($@wop_deadcount_a == 1) {
		mapannounce "poring_w02","Mr. Doppel: The Angeling on the 2nd base has been killed! 1 point lost!!",0,0x00ff00;
		initnpctimer;
	}
	else {
		donpcevent "#wop_angellium1::OnReset";
		donpcevent "#wop_angellium2::OnReset";
		donpcevent "#wop_devillium1::OnReset";
		donpcevent "#wop_devillium2::OnReset";
		donpcevent "#wop_master::OnDevilingWin";
	}
	end;

OnTimer120000:
	--$@wop_deadcount_a;
	donpcevent "#wop_angellium2::OnAngelingSpawn";
	mapannounce "poring_w02","Mr. Doppel: The Angeling on the 2nd base has been revived! 1 point gained!!",0,0x00ff00;
	stopnpctimer;
	end;
}

poring_w02,116,82,0	script	#wop_devillium1	FAKE_NPC,{
	end;

OnReset:
	killmonster "poring_w02","#wop_devillium1::OnMyMobDead";
	stopnpctimer;
	end;

OnDevilingSpawn:
	monster "poring_w02",116,82,"Deviling",1767,1,"#wop_devillium1::OnMyMobDead";
	end;

OnMyMobDead:
	++$@wop_deadcount_d;
	if ($@wop_deadcount_d == 1) {
		mapannounce "poring_w02","Mr. Doppel: The Deviling on the 1st base has been killed! 1 point lost!!",0,0x00ff00;
		initnpctimer;
	}
	else {
		donpcevent "#wop_devillium1::OnReset";
		donpcevent "#wop_devillium2::OnReset";
		donpcevent "#wop_devillium1::OnReset";
		donpcevent "#wop_devillium2::OnReset";
		donpcevent "#wop_master::OnAngelingWin";
	}
	end;

OnTimer120000:
	--$@wop_deadcount_d;
	donpcevent "#wop_devillium1::OnDevilingSpawn";
	mapannounce "poring_w02","Mr. Doppel: The Deviling on the 1st base has been revived! 1 point gained!!",0,0x00ff00;
	stopnpctimer;
	end;
}

poring_w02,98,124,0	script	#wop_devillium2	FAKE_NPC,{
	end;

OnReset:
	killmonster "poring_w02","#wop_devillium2::OnMyMobDead";
	stopnpctimer;
	end;

OnDevilingSpawn:
	monster "poring_w02",98,124,"Deviling",1767,1,"#wop_devillium2::OnMyMobDead";
	end;

OnMyMobDead:
	++$@wop_deadcount_d;
	if ($@wop_deadcount_d == 1) {
		mapannounce "poring_w02","Mr. Doppel: The deviling on the 2nd base has been killed! 1 point lost!!",0,0x00ff00;
		initnpctimer;
	}
	else {
		donpcevent "#wop_devillium1::OnReset";
		donpcevent "#wop_devillium2::OnReset";
		donpcevent "#wop_devillium1::OnReset";
		donpcevent "#wop_devillium2::OnReset";
		donpcevent "#wop_master::OnAngelingWin";
	}
	end;

OnTimer120000:
	--$@wop_deadcount_d;
	donpcevent "#wop_devillium2::OnDevilingSpawn";
	mapannounce "poring_w02","Mr. Doppel: The deviling on the 2nd base has been revived! 1 point gained!!",0,0x00ff00;
	stopnpctimer;
}

//== Deviruchi =============================================
poring_w02,99,201,3	script	Deviruchi#wop_endmaster	4_DEVIRUCHI,{
	if (MaxWeight-Weight < 2000 || checkweight(Knife,1) == 0) {
		mes "- Wait a minute !! -";
		mes "- Currently you're carrying -";
		mes "- too many items with you. -";
		mes "- Please try again -";
		mes "- after you loose some weight. -";
		close;
	}
	.@a_point = $@wop_deadcount_a;
	.@d_point = $@wop_deadcount_d;
	if (getcharid(CHAR_ID_PARTY) == $@wop_team_a) {
		if (.@a_point < .@d_point) {
			mes "[Devi]";
			mes "Good work!";
			mes "Thanks to you, we increased our chances of victory.";
			mes "Please, accept these Poring Coins as a sign of our appreciation.";
			next;
			if (wop_team == 1) {
				mes "[Devi]";
				mes "Goodbye, my human friend.";
				close2;
				getitem Poring_Coin,3; // Poring_Coin
				warp "prt_fild08",150,370;
				end;
			}
			else {
				mes "[Devi]";
				mes "Wait a minute, you look suspicious!!";
				mes "Ah, I got it! You are on the side of the Devilings?!";
				mes "You are spying on us!";
				mes "I will never forgive you!";
				close2;
				percentheal 99,0;
				warp "prt_fild08",150,370;
				end;
			}
		}
		else if (.@a_point == .@d_point) {
			mes "[Devi]";
			mes "You did the best you could.";
			mes "I' ts a shame the battle was tied...";
			mes "Even so, thanks for coming to fight for us. Please, accept this Poring Coin.";
			next;
			if (wop_team == 1) {
				mes "[Devi]";
				mes "Goodbye, my human friend.";
				close2;
				getitem Poring_Coin,1; // Poring_Coin
				warp "prt_fild08",150,370;
				end;
			}
			else {
				mes "[Devi]";
				mes "Wait a minute, you look suspicious!!";
				mes "Ah, I got it! You are on the side of the Devilings?!";
				mes "You are spying on us!";
				mes "It must have been you that made us tie the battle!!";
				mes "I will never forgive you!";
				close2;
				percentheal 99,0;
				warp "prt_fild08",150,370;
				end;
			}
		}
		else {
			if (wop_team == 1) {
				mes "[Devi]";
				mes "Well, I guess we had bad luck...";
				mes "I cant give you anything, since we lost and everything...";
				next;
				mes "[Devi]";
				mes "Goodbye, my human friend.";
				close2;
				warp "prt_fild08",150,370;
				end;
			}
			else {
				mes "[Devi]";
				mes "Wait a minute... There is a traitor here!";
				mes "Ah, I got it! You are on the side of the Devilings?!";
				mes "You are spying on us, Angelings!";
				next;
				mes "[Devi]";
				mes "You should be ashamed!";
				close2;
				percentheal 99,0;
				warp "prt_fild08",150,370;
				end;
			}
		}
	}
	else if (getcharid(CHAR_ID_PARTY) == $@wop_team_d) {
		if (.@a_point > .@d_point) {
			mes "[Devi]";
			mes "Good work!";
			mes "Thanks to you, we increased our chances of victory.";
			mes "Please, accept these Poring Coins as a sign of our appreciation.";
			next;
			if (wop_team == 2) {
				mes "[Devi]";
				mes "Goodbye, my human friend.";
				close2;
				getitem Poring_Coin,3; // Poring_Coin
				warp "prt_fild08",150,370;
				end;
			}
			else {
				mes "[Devi]";
				mes "Wait a minute, you look suspicious!!";
				mes "Ah, I got it! You are on the side of the Angelings?!";
				mes "You are spying on us!!";
				mes "I will never forgive you!";
				close2;
				percentheal 99,0;
				warp "prt_fild08",150,370;
				end;
			}
		}
		else if (.@a_point == .@d_point) {
			mes "[Devi]";
			mes "You did the best you could.";
			mes "It's a shame the battle was tied...";
			mes "Even so, thanks for coming to fight for us. Please, accept this Poring Coin.";
			next;
			if (wop_team == 2) {
				mes "[Devi]";
				mes "Goodbye, my human friend.";
				close2;
				getitem Poring_Coin,1; // Poring_Coin
				warp "prt_fild08",150,370;
				end;
			}
			else {
				mes "[Devi]";
				mes "Wait a minute, you look suspicious!!";
				mes "Ah, I got it! You are on the side of the Angelings?!";
				mes "You are spying on us!";
				mes "It must have been you that made us tie the battle!!";
				mes "I will never forgive you!";
				close2;
				percentheal 99,0;
				warp "prt_fild08",150,370;
				end;
			}
		}
		else {
			if (wop_team == 2) {
				mes "[Devi]";
				mes "Well, I guess we had bad luck...";
				mes "I cant give you anything, since we lost and everything...";
				next;
				mes "[Devi]";
				mes "I will allow you to return to your human world.";
				close2;
				warp "prt_fild08",150,370;
				end;
			}
			else {
				mes "[Devi]";
				mes "Wait a minute, you look suspicious!!";
				mes "Ah, I got it! You are on the side of the Angelings?!";
				mes "You are spying on us, Devilings!";
				next;
				mes "[Devi]";
				mes "You should be ashamed!";
				close2;
				percentheal 99,0;
				warp "prt_fild08",150,370;
				end;
			}
		}
	}
	else {
		mes "[Devi]";
		mes "This is weird...Your party name ain't registered.";
		mes "Im sorry, but rules are rules. I can't help you if your party ain't registered.";
		close;
	}
OnInit:
	disablenpc "Deviruchi#wop_endmaster";
	end;

OnEnable:
	enablenpc "Deviruchi#wop_endmaster";
	initnpctimer;
	end;

OnDisable:
	disablenpc "Deviruchi#wop_endmaster";
	end;

OnTimer3000:
	mapwarp "poring_w02","poring_w02",99,196;
	end;

OnTimer5000:
	mapannounce "poring_w02","Mr. Doppel: Allow me to offer a souvenir to the humans that fought bravely for the Porings! Please, speak to Devi.",0,0x00ff00;
	end;

OnTimer65000:
	mapannounce "poring_w02","Mr. Doppel: Time is up! Let me teleport you.",0,0x00ff00;
	end;

OnTimer68000:
	mapwarp "poring_w02","poring_w01",112,138;
	end;

OnTimer68100:
	donpcevent "#wop_master::OnStop";
	donpcevent "#wop_devillium1::OnReset";
	donpcevent "#wop_devillium2::OnReset";
	donpcevent "#wop_angellium1::OnReset";
	donpcevent "#wop_angellium2::OnReset";
	$@wop_team_a = 0;
	$@wop_team_d = 0;
	$@wop_deadcount_a = 0;
	$@wop_deadcount_d = 0;
	$@wop_teamcount = 0;
	$@wop_doorcount_a = 0;
	$@wop_doorcount_d = 0;
	donpcevent "#wop_warp_a::OnDisable";
	donpcevent "#wop_warp_d::OnDisable";
	donpcevent "Mr. Doppel#wop_team_a::OnDisable";
	donpcevent "Mr. Doppel#wop_team_d::OnDisable";
	donpcevent "#wop_warp_rtry::OnDisable";
	donpcevent "Poring#wop_door_a::OnEnable";
	donpcevent "Poring#wop_door_d::OnEnable";
	donpcevent "Poring#wop_door_all::OnEnable";
	stopnpctimer;
	end;
}

//== Gate Guardian =========================================
poring_w02,99,52,0	script	Angeling Guardian#wop_da	HIDDEN_NPC,{
	cutin "wop_emb0" + $@wop_doorcount_a,1;
	if ($@wop_doorcount_a < 4) {
		if (wop_team == 2) {
			mes "There is a device to equip the War Badges.";
			mes "I can see the empty slots to equip the Badges.";
			next;
			switch(select("Equip War Badge.", "Cancel.")) {
			case 1:
				if (countitem(War_Badge)) {
					if ($@wop_doorcount_a < 4) {
						mes "War Badge equipped.";
						delitem War_Badge,1; // War_Badge
						++$@wop_doorcount_a;
						cutin "wop_emb0" + $@wop_doorcount_a,1;
						if ($@wop_doorcount_a == 4) {
							next;
							mes "Gate Activated.";
							donpcevent "#aroom_ingate_wop::OnEnable";
							donpcevent "#aroom_outgate_wop::OnEnable";
						}
						close2;
					}
					else {
						mes "All War Badges equipped.";
						mes "No need to equip any more.";
						close2;
					}
				}
				else {
					mes "^4d4dff - War Badge missing. You can obtain a War badge by killing members of the other team. - ^000000";
					close2;
				}
				break;
			case 2:
				mes "Cancel.";
				close2;
			}
		}
		else {
			mes "There is a device to equip a War Badge.";
			mes "Be carefull to not allow the enemy to take and equip your War Badge here.";
			close2;
		}
	}
	else {
		mes "All War Badges have been equipped.";
		close2;
	}
	cutin "",255;
	end;

OnInit:
	$@wop_doorcount_a = 0;
	end;
}

poring_w02,103,52,0	script	#aroom_ingate_wop	HIDDEN_WARP_NPC,1,1,{
	end;

OnInit:
	disablenpc "#aroom_ingate_wop";
	end;

OnEnable:
	enablenpc "#aroom_ingate_wop";
	end;

OnDisable:
	disablenpc "#aroom_ingate_wop";
	end;

OnTouch:
	warp "poring_w02",99,49;
	end;
}

poring_w02,93,51,0	script	#aroom_outgate_wop	HIDDEN_WARP_NPC,1,1,{
	end;

OnInit:
	disablenpc "#aroom_outgate_wop";
	end;

OnEnable:
	enablenpc "#aroom_outgate_wop";
	end;

OnDisable:
	disablenpc "#aroom_outgate_wop";
	end;

OnTouch:
	warp "poring_w02",99,54;
	end;
}

poring_w02,98,113,0	script	Deviling Guardian#wop_dd	HIDDEN_NPC,{
	cutin "wop_emb0" + $@wop_doorcount_d,1;
	if ($@wop_doorcount_d < 4) {
		if (wop_team == 1) {
			mes "There is a device to equip the War Badges.";
			mes "I can see the empty slots to equip the Badges.";
			next;
			switch(select("Equip War Badge.", "Cancel.")) {
			case 1:
				if (countitem(War_Badge)) {
					if ($@wop_doorcount_d < 4) {
						mes "War Badge equipped.";
						delitem War_Badge,1; // War_Badge
						++$@wop_doorcount_d;
						cutin "wop_emb0" + $@wop_doorcount_d,1;
						if ($@wop_doorcount_d == 4) {
							next;
							mes "Gate Activated.";
							donpcevent "#droom_ingate_wop::OnEnable";
							donpcevent "#droom_outgate_wop::OnEnable";
						}
						close2;
					}
					else {
						mes "All War Badges equipped.";
						mes "No need to equip any more.";
						close2;
					}
				}
				else {
					mes "^4d4dff - War Badge missing. You can obtain a War badge by killing members of the other team. - ^000000";
					close2;
				}
				break;
			case 2:
				mes "Cancel.";
				close2;
			}
		}
		else {
			mes "There is a device to equip a War Badge.";
			mes "Be carefull to not allow the enemy to take and equip your War Badge here.";
			close2;
		}
	}
	else {
		mes "All War Badges have been equipped.";
		close2;
	}
	cutin "",255;
	end;

OnInit:
	$@wop_doorcount_d = 0;
	end;
}

poring_w02,93,113,0	script	#droom_ingate_wop	HIDDEN_WARP_NPC,1,1,{
	end;

OnInit:
	disablenpc "#droom_ingate_wop";
	end;

OnEnable:
	enablenpc "#droom_ingate_wop";
	end;

OnDisable:
	disablenpc "#droom_ingate_wop";
	end;

OnTouch:
	warp "poring_w02",98,116;
	end;
}

poring_w02,103,114,0	script	#droom_outgate_wop	HIDDEN_WARP_NPC,1,1,{
	end;

OnInit:
	disablenpc "#droom_outgate_wop";
	end;

OnEnable:
	enablenpc "#droom_outgate_wop";
	end;

OnDisable:
	disablenpc "#droom_outgate_wop";
	end;

OnTouch:
	warp "poring_w02",98,111;
	end;
}

//== Other NPCs ============================================
-	script	Angeling Side Poring#wpa	FAKE_NPC,{
	end;
}

-	script	Deviling Side Marin#wpd	FAKE_NPC,{
	end;
}

poring_w01,79,102,5	duplicate(Angeling Side Poring#wpa)	Angeling Side Poring#wa1	PORING
poring_w01,80,107,5	duplicate(Angeling Side Poring#wpa)	Angeling Side Poring#wa2	PORING
poring_w01,84,108,5	duplicate(Angeling Side Poring#wpa)	Angeling Side Poring#wa3	PORING
poring_w01,84,112,5	duplicate(Angeling Side Poring#wpa)	Angeling Side Poring#wa4	PORING
poring_w01,88,112,5	duplicate(Angeling Side Poring#wpa)	Angeling Side Poring#wa5	PORING

poring_w01,114,112,3	duplicate(Deviling Side Marin#wpd)	Deviling Side Marin#wd1	MARIN
poring_w01,117,111,3	duplicate(Deviling Side Marin#wpd)	Deviling Side Marin#wd2	MARIN
poring_w01,117,108,3	duplicate(Deviling Side Marin#wpd)	Deviling Side Marin#wd3	MARIN
poring_w01,122,108,3	duplicate(Deviling Side Marin#wpd)	Deviling Side Marin#wd4	MARIN
poring_w01,121,105,3	duplicate(Deviling Side Marin#wpd)	Deviling Side Marin#wd5	MARIN

poring_w01,84,108,3	script	#wop_ex_1	HIDDEN_WARP_NPC,3,3,{
	end;

OnTouch:
	mes "[Porings]";
	mes "P~ooooooooo -!!!";
	mes "Let's teach them a lesson, ring!";
	mes "We are no longer betting our lives for Jellopies, ring!!!";
	next;
	mes "[Porings]";
	mes "Let's go! Let's fight! Let's win, win, win!!!";
	emotion e_go,0,"Angeling Side Poring#wa1";
	emotion e_go,0,"Angeling Side Poring#wa2";
	emotion e_go,0,"Angeling Side Poring#wa3";
	emotion e_go,0,"Angeling Side Poring#wa4";
	emotion e_go,0,"Angeling Side Poring#wa5";
	next;
	if (wop_team == 1) {
		mes "[Porings]";
		mes "Ohhhhhh, there he is, the warrior that fought for us!!";
		mes "Oh my god... Nice, ring!";
		mes "Poring~ Poring~ Poooooo~";
		mes "Party of Angeling~ Popopo, Poring!";
	}
	else if (wop_team == 2) {
		mes "[Porings]";
		mes "Wait, YOU! Aren't you on the side of the Devilings?!";
		mes "Get out now! Leave!!";
		mes "Booooo~ Boo~ Boooo~";
		emotion e_omg,0,"Angeling Side Poring#wa1";
		emotion e_an,0,"Angeling Side Poring#wa2";
		emotion e_omg,0,"Angeling Side Poring#wa3";
		emotion e_an,0,"Angeling Side Poring#wa4";
		emotion e_gasp,0,"Angeling Side Poring#wa5";
	}
	else {
		mes "[Porings]";
		mes "Hey, human. How about fighting for us Porings on Angeling's side??!";
		emotion e_hlp,0,"Angeling Side Poring#wa1";
		emotion e_go,0,"Angeling Side Poring#wa2";
		emotion e_hlp,0,"Angeling Side Poring#wa3";
		emotion e_go,0,"Angeling Side Poring#wa4";
		emotion e_go,0,"Angeling Side Poring#wa5";
	}
	next;
	mes "[Porings]";
	mes "Party of Angeling~ Popopo, Poring!";
	mes "Victory~ Victory~ Pooooooo~";
	next;
	mes "- Porings are cheerfully shouting for the victory. -";
	close;
}

poring_w01,119,107,3	script	#wop_ex_2	HIDDEN_WARP_NPC,3,3,{
	end;

OnTouch:
	mes "[Marins]";
	mes "Woooooaaaaaaaaaaa!";
	mes "Finally, it's time for us to teach those stupid pigs a lesson!!";
	mes "Those Porings with low-grades are all idiots!!";
	next;
	mes "[Marins]";
	mes "Let's go! Let's fight! Fight for Triumph!!!!";
	emotion e_go,0,"Deviling Side Marin#wd1";
	emotion e_go,0,"Deviling Side Marin#wd2";
	emotion e_go,0,"Deviling Side Marin#wd3";
	emotion e_go,0,"Deviling Side Marin#wd4";
	emotion e_go,0,"Deviling Side Marin#wd5";
	next;
	if (wop_team == 2) {
		mes "[Marins]";
		mes "Ohhhh... Here is the warrior that fought for us!!";
		mes "Amazing!";
		mes "This proves that humans recognize us as true monsters!!";
	}
	else if (wop_team == 1) {
		mes "[Marins]";
		mes "Wait, YOU! Aren't you on the side of the Angelings?!";
		mes "Get out now! Leave!!";
		mes "Booooo~ Boo~ Boooo~";
		emotion e_omg,0,"Deviling Side Marin#wd1";
		emotion e_an,0,"Deviling Side Marin#wd2";
		emotion e_omg,0,"Deviling Side Marin#wd3";
		emotion e_an,0,"Deviling Side Marin#wd4";
		emotion e_gasp,0,"Deviling Side Marin#wd5";
	}
	else {
		mes "[Marins]";
		mes "Hey, human. Don't you wanna fight for Deviling, the noble of darkness? What do you say?!";
		emotion e_hlp,0,"Deviling Side Marin#wd1";
		emotion e_go,0,"Deviling Side Marin#wd2";
		emotion e_hlp,0,"Deviling Side Marin#wd3";
		emotion e_go,0,"Deviling Side Marin#wd4";
		emotion e_go,0,"Deviling Side Marin#wd5";
	}
	next;
	mes "[Marins]";
	mes "The world's Best Miraculous Poring! Deviling has it all! Go, Deviling, Go-!!";
	next;
	mes "- Marins are cheerfully shouting for the victory. -";
	close;
}
