/**
 * Hercules Script
 *
 * Feature: Hercules Battlegrounds
 * Version: 1.0
 * Author: eAmod & Smokexyz
 *
 * Description: Hercules Battlegrounds plugin.
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

-	script	Tierra_EOS	FAKE_NPC,{
	end;

OnGuillaumeQuit:
	setquest 8506; // Deserter
	set @killer_bg_src, 0;
	if ($@Arena_Status != 0 && getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") == "Tierra_EOS")
		donpcevent "BG_Queue_Handler::OnQueueJoinEvent";
OnGuillaumeDie:
	if ($@Arena_Status == 1 && getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") == "Tierra_EOS" && getvariableofnpc(.Flag_Carrier,"Neutral_Flag") == getcharid(0)) { // Drop Flag
		//pcblock 1,0; // UnBlock Skills/Items
		getmapxy .@m$, .@x, .@y, 0;
		movenpc "Neutral_Flag", .@x, .@y;
		mapannounce "bat_a02","Guillaume have dropped the Flag",1,0xFFFFFF;
//		bg_rankpoints "fame",1,@killer_bg_src;
		set getvariableofnpc(.Flag_Status,"Neutral_Flag"), 0; // OnFloor
		set getvariableofnpc(.Flag_Carrier,"Neutral_Flag"), 0;
		initnpctimer "Neutral_Flag";
		enablenpc "Neutral_Flag";
	}
	end;

OnCroixQuit:
	setquest 8506; // Deserter
	set @killer_bg_src, 0;
	if ($@Arena_Status != 0 && getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") == "Tierra_EOS")
		donpcevent "BG_Queue_Handler::OnQueueJoinEvent";
OnCroixDie:
	if ($@Arena_Status == 1 && getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") == "Tierra_EOS" && getvariableofnpc(.Flag_Carrier,"Neutral_Flag") == getcharid(0)) { // Drop Flag
		//pcblock 1,0; // UnBlock Skills/Items
		getmapxy .@m$, .@x, .@y, 0;
		movenpc "Neutral_Flag", .@x, .@y;
		mapannounce "bat_a02","Croix have dropped the Flag",1,0xFFFFFF;
//		bg_rankpoints "fame",1,@killer_bg_src;
		set getvariableofnpc(.Flag_Status,"Neutral_Flag"), 0; // OnFloor
		set getvariableofnpc(.Flag_Carrier,"Neutral_Flag"), 0;
		initnpctimer "Neutral_Flag";
		enablenpc "Neutral_Flag";
	}
	end;

OnBuildTeams:
	set $@BG_Team1,hBG_team_create("bat_a02",50,374,0,"Tierra_EOS::OnGuillaumeQuit","Tierra_EOS::OnGuillaumeDie");
	set $@BG_Team2,hBG_team_create("bat_a02",42,16,1,"Tierra_EOS::OnCroixQuit","Tierra_EOS::OnCroixDie");
	end;

OnReady:
	if (getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") != "Tierra_EOS")
		end;

	// BG Variables
	set .guillaume_score, 0;
	set .croix_score, 0;
	sleep 2000;
	bg_warp $@BG_Team1,"bat_a02",353,344;
	bg_warp $@BG_Team2,"bat_a02",353,52;
	sleep 2000;
	// Respawn NPC's
	donpcevent "#guieoe_respawn::OnBGStart";
	donpcevent "#croeoe_respawn::OnBGStart";
	// Start Match!!
	donpcevent "North_Base::OnBase";
	donpcevent "South_Base::OnBase";
	donpcevent "Neutral_Flag::OnBase";
	donpcevent "::OnStartStorm";
	mapannounce "bat_a02","The Battle of Tierra Valley - Eye of Storm has begun",1,0x4169E1;
	end;

OnFlash:
	if (getvariableofnpc(.Flag_Carrier,"Neutral_Flag") == getcharid(0) && $@Arena_Status == 1 && getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") == "Tierra_EOS") {
		getmapxy .@m$, .@x, .@y, 0;
		hBG_viewpointmap "bat_a02",1,.@x,.@y,3,0xFFFF00;
		specialeffect(EF_BOWLINGBASH);
		emotion e_hlp,1;
		addtimer 2000, "Tierra_EOS::OnFlash";
		percentheal -1,-1;
	}
	end;

OnGuillaumeFlag:
	hBG_viewpointmap "bat_a02",2,0,0,3,0xFFFF00;
	set .@North, getvariableofnpc(.Owner,"North_Base");
	set .@South, getvariableofnpc(.Owner,"South_Base");

	if (.@North == .@South) {
		set .guillaume_score, .guillaume_score + 5;
		mapannounce "bat_a02","Guillaume Team captured the Flag [+5 points]",1,0x0000FF;
	} else {
		set .guillaume_score, .guillaume_score + 3;
		mapannounce "bat_a02","Guillaume Team captured the Flag [+3 points]",1,0x0000FF;
	}

	donpcevent "Tierra_EOS::OnMatchEnd";
	donpcevent "Neutral_Flag::OnBase";
	end;

OnCroixFlag:
	hBG_viewpointmap "bat_a02",2,0,0,3,0xFFFF00;
	set .@North, getvariableofnpc(.Owner,"North_Base");
	set .@South, getvariableofnpc(.Owner,"South_Base");

	if (.@North == .@South) {
		set .croix_score, .croix_score + 5;
		mapannounce "bat_a02","Croix Team captured the Flag [+5 points]",1,0xFF0000;
	} else {
		set .croix_score, .croix_score + 3;
		mapannounce "bat_a02","Croix Team captured the Flag [+3 points]",1,0xFF0000;
	}

	donpcevent "Tierra_EOS::OnMatchEnd";
	donpcevent "Neutral_Flag::OnBase";
	end;

OnNorthScore:
	if (set(.@North, getvariableofnpc(.Owner,"North_Base")) == 0)
		end; // No Owner
	set .@South, getvariableofnpc(.Owner,"South_Base");
	if (.@North == .@South) { // Double Domination
		if (.@North == $@BG_Team1)
			set .guillaume_score, .guillaume_score + 2;
		else
			set .croix_score, .croix_score + 2;
	} else if (.@North == $@BG_Team1)
		set .guillaume_score, .guillaume_score + 1;
	else
		set .croix_score, .croix_score + 1;

	donpcevent "Tierra_EOS::OnMatchEnd";
	end;

OnSouthScore:
	if (set(.@South, getvariableofnpc(.Owner,"South_Base")) == 0)
		end; // No Owner
	set .@North, getvariableofnpc(.Owner,"North_Base");
	if (.@North == .@South) { // Double Domination
		if (.@South == $@BG_Team1)
			set .guillaume_score, .guillaume_score + 2;
		else
			set .croix_score, .croix_score + 2;
	} else if (.@South == $@BG_Team1)
		set .guillaume_score, .guillaume_score + 1;
	else
		set .croix_score, .croix_score + 1;

	donpcevent "Tierra_EOS::OnMatchEnd";
	end;

OnMatchEnd:
	if (.guillaume_score > 99)
		set .guillaume_score, 99;
	if (.croix_score > 99)
		set .croix_score, 99;

	hBG_updatescore "bat_a02",.guillaume_score,.croix_score; // Update Visual Score

	if (.guillaume_score < 99 && .croix_score < 99)
		end; // No winners

	donpcevent "Neutral_Flag::OnDisable";
	stopnpctimer "North_Base";
	stopnpctimer "South_Base";
	donpcevent "#guieoe_respawn::OnBGStop";
	donpcevent "#croeoe_respawn::OnBGStop";
	set $@Arena_Status, 2;
	// =======================================================
	// Team Rewards
	// =======================================================
	if (.guillaume_score >= 99 && .croix_score >= 99) { // Tie
		hBG_reward $@BG_Team1,7773,15,0,0,"BG_EoE",1,0,1;
		hBG_reward $@BG_Team2,7773,15,0,0,"BG_EoE",1,0,1;
		mapannounce "bat_a02","The battle is over. This is a Tie...!",1,0x4169E1;
	} else if (.guillaume_score >= 99) { // Guillaume Won
		hBG_reward $@BG_Team1,7773,30,0,0,"BG_EoE",1,0,0;
		hBG_reward $@BG_Team2,7773,15,0,0,"BG_EoE",1,0,2;
		mapannounce "bat_a02","The Guillaume army has won the Battle of Tierra EoS!",1,0x0000FF;
	} else if (.croix_score >= 99) { // Croix Won
		hBG_reward $@BG_Team1,7773,15,0,0,"BG_EoE",1,0,2;
		hBG_reward $@BG_Team2,7773,30,0,0,"BG_EoE",1,0,0;
		mapannounce "bat_a02","The Croix army has won the Battle of Tierra EoS!",1,0x0000FF;
	}
	// =======================================================
	set .guillaume_score, 0;
	set .croix_score, 0;
	sleep 5000;
	donpcevent "BG_Queue_Handler::OnEndArena";
	hBG_updatescore "bat_a02",0,0;
	donpcevent "GEoSNBW::OnDisable";
	//donpcevent "GEoSCBW::OnDisable";
	donpcevent "GEoSSBW::OnDisable";
	donpcevent "CEoSNBW::OnDisable";
	//donpcevent "CEoSCBW::OnDisable";
	donpcevent "CEoSSBW::OnDisable";
	end;

OnBreak:
	if ($@Arena_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") != "Tierra_EOS")
		end;

	if (getcharid(4) == $@BG_Team1)
		mapannounce "bat_a02","Netraul Flag Taken by Guillaume Team",1,0x0000FF;
	else if (getcharid(4) == $@BG_Team2)
		mapannounce "bat_a02","Netraul Flag Taken by Croix Team",1,0xFF0000;
	else end;

	set getvariableofnpc(.Flag_Status,"Neutral_Flag"), 1;
	set getvariableofnpc(.Flag_Carrier,"Neutral_Flag"), getcharid(0);

	sc_end SC_HIDING;
	sc_end SC_CLOAKING;
	sc_end SC_CHASEWALK;

	// Renewal invisibility
	sc_end SC_CLOAKINGEXCEED;
	sc_end SC_CAMOUFLAGE;
	sc_end SC__INVISIBILITY;

	//pcblock 1,1; // Block Skills/Items

	stopnpctimer "Neutral_Flag";
	disablenpc "Neutral_Flag";

	addtimer 2000, "Tierra_EOS::OnFlash";
	end;
}

// Battleground Flag
// *********************************************************************

bat_a02,273,204,0	script	Neutral Flag::Neutral_Flag	OBJ_NEUTRAL,1,1,{
	end;

OnTouch:
	if ($@Arena_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") != "Tierra_EOS" || Hp < 1 || .Flag_Status)
		end;

	if (getcharid(4) == $@BG_Team1)
		mapannounce "bat_a02","Netraul Flag Taken by Guillaume Team",1,0x0000FF;
	else if (getcharid(4) == $@BG_Team2)
		mapannounce "bat_a02","Netraul Flag Taken by Croix Team",1,0xFF0000;
	else end;

	set .Flag_Status, 1;
	set .Flag_Carrier, getcharid(0);
//	bg_rankpoints "fame",1;

	sc_end SC_HIDING;
	sc_end SC_CLOAKING;
	sc_end SC_CHASEWALK;

	// Renewal invisibility
	sc_end SC_CLOAKINGEXCEED;
	sc_end SC_CAMOUFLAGE;
	sc_end SC__INVISIBILITY;

	//pcblock 1,1; // Block Skills/Items

	disablenpc "Neutral_Flag";
	addtimer 2000, "Tierra_EOS::OnFlash";
	stopnpctimer;
	end;

OnTimer2000:
	stopnpctimer;
	if (.Flag_Status == 0 && $@Arena_Status == 1 && getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") == "Tierra_EOS") {
		getmapxy .@m$, .@x, .@y, 1;
		hBG_viewpointmap "bat_a02",1,.@x,.@y,3,0xFFFF00;
		specialeffect 223;
		initnpctimer;
	}
	end;

OnDisable:
	movenpc "Neutral_Flag",273,204;
	set .Flag_Status, 0;
	stopnpctimer;
	disablenpc "Neutral_Flag";
	killmonster "bat_a02","Tierra_EOS::OnBreak";
	end;

OnBase:
	if ($@Arena_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") != "Tierra_EOS")
		end;

	movenpc "Neutral_Flag",273,204;
	set .Flag_Status, 0;
	set .Flag_Carrier, 0;
	initnpctimer;
	disablenpc "Neutral_Flag";
	mapannounce "bat_a02","The Neutral Flag have been set!!",1,0xFFFFFF;
	bg_monster 0,"bat_a02",273,204,"Neutral Flag",OBJ_NEUTRAL,"Tierra_EOS::OnBreak";
	end;
}

// Battleground Bases
// *********************************************************************

bat_a02,173,345,0	script	North Base::North_Base	OBJ_NEUTRAL,3,3,{
	end;

OnTouch:
	if ($@Arena_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") != "Tierra_EOS" || .Owner == 0 || .Owner != getcharid(4) || getvariableofnpc(.Flag_Carrier,"Neutral_Flag") != getcharid(0))
		end;

//	bg_rankpoints "eos_flags",1;
	set getvariableofnpc(.Flag_Carrier,"Neutral_Flag"), 0;
	//pcblock 1,0; // UnBlock Skills/Items
	if (.Owner == $@BG_Team1)
		donpcevent "Tierra_EOS::OnGuillaumeFlag";
	else
		donpcevent "Tierra_EOS::OnCroixFlag";
	end;

OnBase:
	set .Owner, 0;
	set .Balance, 0;
	set .Tick, 0;
	setnpcdisplay "North_Base","North Base",OBJ_NEUTRAL;
	initnpctimer;
	end;

OnTimer1000:
	stopnpctimer;
	if ($@Arena_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") != "Tierra_EOS")
		end;

	set .@Guillaume, hBG_getareausers($@BG_Team1,"bat_a02",136,329,186,361);
	set .@Croix, hBG_getareausers($@BG_Team2,"bat_a02",136,329,186,361);
	set .Balance, .Balance + set(.@Balance, .@Guillaume - .@Croix);

	if (.Balance < -50)
		set .Balance, -50;
	else if (.Balance > 50)
		set .Balance, 50;

	if (.Owner == 0) {
		if (.Balance == 50) {
			set .Balance, 50;
			set .Owner, $@BG_Team1; // Guillaume
			setnpcdisplay "North_Base","Guillaume Base",1912;
			mapannounce "bat_a02","North Base captured by Guillaume Team",1,0x0000FF;
//			bg_rankpoints_area $@BG_Team1,"bat_a02",136,329,186,361,"eos_bases",1;
			donpcevent "GEoSNBW::OnEnable";
		}
		else if (.Balance == -50) {
			set .Balance, -50;
			set .Owner, $@BG_Team2; // Croix
			setnpcdisplay "North_Base","Croix Base",1913;
			mapannounce "bat_a02","North Base captured by Croix Team",1,0xFF0000;
//			bg_rankpoints_area $@BG_Team2,"bat_a02",136,329,186,361,"eos_bases",1;
			donpcevent "CEoSNBW::OnEnable";
		}
	} else if (.Owner == $@BG_Team1) {
		if (.Balance <= 0) { // Guillaume lost Control
			set .Owner, 0;
			setnpcdisplay "North_Base","North Base",OBJ_NEUTRAL;
			mapannounce "bat_a02","Guillaume Team lost control of the North Base",1,0x0000FF;
			donpcevent "GEoSNBW::OnDisable";
		}
	} else if (.Owner == $@BG_Team2) {
		if (.Balance >= 0) { // Croix lost Control
			set .Owner, 0;
			setnpcdisplay "North_Base","North Base",OBJ_NEUTRAL;
			mapannounce "bat_a02","Croix Team lost control of the North Base",1,0xFF0000;
			donpcevent "CEoSNBW::OnDisable";
		}
	}

	if (.@Balance > 0)
		specialeffect 236;
	else if (.@Balance < 0)
		specialeffect 225;
	else if (.Owner == $@BG_Team1)
		specialeffect 236;
	else if (.Owner == $@BG_Team2)
		specialeffect 225;
	else
		specialeffect 223;

	if (.Owner == 0)
		hBG_viewpointmap "bat_a02",1, 173, 345, 1, 0xFFFFFF;
	else if (.Owner == $@BG_Team1)
		hBG_viewpointmap "bat_a02",1, 173, 345, 1, 0x0000FF;
	else if (.Owner == $@BG_Team2)
		hBG_viewpointmap "bat_a02",1, 173, 345, 1, 0xFF0000;

	if (.Owner == 0)
		set .Tick, 0;
	else if (set(.Tick, .Tick + 1) == 7) {
		donpcevent "Tierra_EOS::OnNorthScore";
		set .Tick, 0;
	}

	initnpctimer;
	end;
}

bat_a02,164,50,0	script	South Base::South_Base	OBJ_NEUTRAL,3,3,{
	end;

OnTouch:
	if ($@Arena_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") != "Tierra_EOS" || .Owner == 0 || .Owner != getcharid(4) || getvariableofnpc(.Flag_Carrier,"Neutral_Flag") != getcharid(0))
		end;

//	bg_rankpoints "eos_flags",1;
	set getvariableofnpc(.Flag_Carrier,"Neutral_Flag"), 0;
	//pcblock 1,0; // UnBlock Skills/Items
	if (.Owner == $@BG_Team1)
		donpcevent "Tierra_EOS::OnGuillaumeFlag";
	else
		donpcevent "Tierra_EOS::OnCroixFlag";
	end;

OnBase:
	set .Owner, 0;
	set .Balance, 0;
	set .Tick, 0;
	setnpcdisplay "South_Base","South Base",OBJ_NEUTRAL;
	initnpctimer;
	end;

OnTimer1000:
	stopnpctimer;
	if ($@Arena_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") != "Tierra_EOS")
		end;

	set .@Guillaume, hBG_getareausers($@BG_Team1,"bat_a02",129,34,175,65);
	set .@Croix, hBG_getareausers($@BG_Team2,"bat_a02",129,34,175,65);
	set .Balance, .Balance + set(.@Balance, .@Guillaume - .@Croix);

	if (.Balance < -50)
		set .Balance, -50;
	else if (.Balance > 50)
		set .Balance, 50;

	if (.Owner == 0) {
		if (.Balance == 50) {
			set .Balance, 50;
			set .Owner, $@BG_Team1; // Guillaume
			setnpcdisplay "South_Base","Guillaume Base",1912;
			mapannounce "bat_a02","South Base captured by Guillaume Team",1,0x0000FF;
//			bg_rankpoints_area $@BG_Team1,"bat_a02",129,34,175,65,"eos_bases",1;
			donpcevent "GEoSSBW::OnEnable";
		}
		else if (.Balance == -50) {
			set .Balance, -50;
			set .Owner, $@BG_Team2; // Croix
			setnpcdisplay "South_Base","Croix Base",1913;
			mapannounce "bat_a02","South Base captured by Croix Team",1,0xFF0000;
//			bg_rankpoints_area $@BG_Team2,"bat_a02",129,34,175,65,"eos_bases",1;
			donpcevent "CEoSSBW::OnEnable";
		}
	} else if (.Owner == $@BG_Team1) {
		if (.Balance <= 0) { // Guillaume lost Control
			set .Owner, 0;
			setnpcdisplay "South_Base","North Base",OBJ_NEUTRAL;
			mapannounce "bat_a02","Guillaume Team lost control of the South Base",1,0x0000FF;
			donpcevent "GEoSSBW::OnDisable";
		}
	} else if (.Owner == $@BG_Team2) {
		if (.Balance >= 0) { // Croix lost Control
			set .Owner, 0;
			setnpcdisplay "South_Base","North Base",OBJ_NEUTRAL;
			mapannounce "bat_a02","Croix Team lost control of the South Base",1,0xFF0000;
			donpcevent "CEoSSBW::OnDisable";
		}
	}

	if (.@Balance > 0)
		specialeffect 236;
	else if (.@Balance < 0)
		specialeffect 225;
	else if (.Owner == $@BG_Team1)
		specialeffect 236;
	else if (.Owner == $@BG_Team2)
		specialeffect 225;
	else
		specialeffect 223;

	if (.Owner == 0)
		hBG_viewpointmap "bat_a02",1,164,50,2,0xFFFFFF;
	else if (.Owner == $@BG_Team1)
		hBG_viewpointmap "bat_a02",1,164,50,2,0x0000FF;
	else if (.Owner == $@BG_Team2)
		hBG_viewpointmap "bat_a02",1,164,50,2,0xFF0000;

	if (.Owner == 0)
		set .Tick, 0;
	else if (set(.Tick, .Tick + 1) == 7) {
		donpcevent "Tierra_EOS::OnSouthScore";
		set .Tick, 0;
	}

	initnpctimer;
	end;
}

// Battleground Respawn
// *********************************************************************

bat_a02,46,377,0	script	North Base Warp::GEoSNBW	1_SHADOW_NPC,{
	end;

OnEnable:
	waitingroom "Join To Warp",20;
	end;

OnDisable:
	delwaitingroom;
	end;

OnWarp:
	warpwaitingpc "bat_a02",115,346,20;
	end;
}

bat_a02,53,370,0	script	South Base Warp::GEoSSBW	1_SHADOW_NPC,{
	end;

OnEnable:
	waitingroom "Join To Warp",20;
	end;

OnDisable:
	delwaitingroom;
	end;

OnWarp:
	warpwaitingpc "bat_a02",106,48,20;
	end;
}

// *********************************************************************

bat_a02,38,19,0	script	North Base Warp::CEoSNBW	1_SHADOW_NPC,{
	end;

OnEnable:
	waitingroom "Join To Warp",20;
	end;

OnDisable:
	delwaitingroom;
	end;

OnWarp:
	warpwaitingpc "bat_a02",115,346,20;
	end;
}

bat_a02,45,12,0	script	South Base Warp::CEoSSBW	1_SHADOW_NPC,{
	end;

OnEnable:
	waitingroom "Join To Warp",20;
	end;

OnDisable:
	delwaitingroom;
	end;

OnWarp:
	warpwaitingpc "bat_a02",106,48,20;
	end;
}

// *********************************************************************

bat_a02,50,374,0	script	#guieoe_respawn	HIDDEN_WARP_NPC,{
	end;

OnBGStart:
	initnpctimer;
	end;

OnBGStop:
	stopnpctimer;
	end;

OnTimer24000:
	specialeffect(EF_SANCTUARY);
	end;

OnTimer25000:
	areapercentheal "bat_a02",46,370,54,378,100,100;
	donpcevent "GEoSNBW::OnWarp";
	donpcevent "GEoSSBW::OnWarp";
	areawarp "bat_a02",46,370,54,378,"bat_a02",353,344;
	initnpctimer;
	end;
}

bat_a02,42,16,0	script	#croeoe_respawn	HIDDEN_WARP_NPC,{
	end;

OnBGStart:
	initnpctimer;
	end;

OnBGStop:
	stopnpctimer;
	end;

OnTimer24000:
	specialeffect(EF_SANCTUARY);
	end;

OnTimer25000:
	areapercentheal "bat_a02",38,12,47,21,100,100;
	donpcevent "CEoSNBW::OnWarp";
	donpcevent "CEoSSBW::OnWarp";
	areawarp "bat_a02",38,12,47,21,"bat_a02",353,52;
	initnpctimer;
	end;
}

// MapFlags
// *********************************************************************

bat_a02	mapflag	battleground	2
bat_a02	mapflag	nomemo
bat_a02	mapflag	nosave	SavePoint
bat_a02	mapflag	noteleport
bat_a02	mapflag	nowarp
bat_a02	mapflag	nowarpto
bat_a02	mapflag	noreturn
bat_a02	mapflag	nobranch
bat_a02	mapflag	nopenalty
//bat_a02	mapflag	noemergencycall

// Eye of the Storm Effects
// *********************************************************************

bat_a02,269,189,0	script	#stormef1	HIDDEN_WARP_NPC,{
	end;

OnStartStorm:
	if ($@Arena_Status != 1 || getvariableofnpc(.BG_Arena$,"BG_Queue_Handler") != "Tierra_EOS" ) end;

	sleep (rand(15,40) * 1000);
	specialeffect 622;
	specialeffect 537;

	callsub OnStartStorm;
	end;
}

bat_a02,284,189,0	duplicate(#stormef1)	#stormef2	HIDDEN_WARP_NPC
bat_a02,267,204,0	duplicate(#stormef1)	#stormef3	HIDDEN_WARP_NPC
bat_a02,278,210,0	duplicate(#stormef1)	#stormef4	HIDDEN_WARP_NPC
bat_a02,262,210,0	duplicate(#stormef1)	#stormef5	HIDDEN_WARP_NPC
bat_a02,256,201,0	duplicate(#stormef1)	#stormef6	HIDDEN_WARP_NPC
bat_a02,284,218,0	duplicate(#stormef1)	#stormef7	HIDDEN_WARP_NPC
bat_a02,263,220,0	duplicate(#stormef1)	#stormef8	HIDDEN_WARP_NPC
bat_a02,289,207,0	duplicate(#stormef1)	#stormef9	HIDDEN_WARP_NPC
bat_a02,279,182,0	duplicate(#stormef1)	#stormef10	HIDDEN_WARP_NPC
bat_a02,272,229,0	duplicate(#stormef1)	#stormef11	HIDDEN_WARP_NPC