//===== eAthena Script =======================================
//= War of Emperium Guild Event AgitStart/AgitBreak Functions
//===== By: ==================================================
//= jAthena - kalen (1.0)
//= 1.1 by Akaru, ho|yAnge|X, and Valaris
//===== Current Version: =====================================
//= 1.3
//===== Compatible With: =====================================
//= eAthena 0.1+; RO Episode 4+
//===== Description: =========================================
//= F_AgitStart is in charge of spawning Emperium and mobs in castles
//=   when WoE is started.
//= F_AgitBreak resets guild castle data when a castle has been taken over.
//=   It then sets the data for the new guild master if there is one.
//=======================================
//= Break down of arguments used in F_AgitStart:
//=   arg(0): name of specific guild castle.
//=   arg(1): name of specific agit castle script.
//=   arg(2): x1 for Emperium and monster spawn
//=   arg(3): y1 for Emperium and monster spawn
//= Break down of arguments used in F_AgitBreak:
//=   arg(0): name of specific guild castle.
//=   arg(1): name of specific OnRevCastle label.
//===== Additional Comments: =================================
//= v1.2: All OnAgitStart and OnAgitBreak calls will use these functions.[kobra_k88]
//= v1.2a: Added OnAgitEnd function.[kobra_k88]
//= 1.3 Added code for abandoning captured castles on /breakguild [Lupus]
//============================================================


// Function for OnAgitStart =========================================
function	script	F_AgitStart	{

	MapRespawnGuildID getarg(0)+".gat",GetCastleData(getarg(0)+".gat",1),2;
	Monster getarg(0)+".gat",getarg(2),getarg(3),"EMPERIUM",1288,1,"Agit_"+getarg(1)+"::OnAgitBreak";
	GvgOn getarg(0)+".gat";
	if (GetCastleData(getarg(0)+".gat",1) != 0) return;
	if(getarg(0) == "aldeg_cas01" || getarg(0) == "aldeg_cas02" || getarg(0) == "aldeg_cas03" || getarg(0) == "aldeg_cas04" || getarg(0) == "aldeg_cas05" || getarg(0) == "nguild_alde") goto L_AldegCas;
	if(getarg(0) == "gefg_cas01" || getarg(0) == "gefg_cas02" || getarg(0) == "gefg_cas03" || getarg(0) == "gefg_cas04" || getarg(0) == "gefg_cas05" || getarg(0) == "nguild_gef") goto L_GefgCas;
	if(getarg(0) == "payg_cas01" || getarg(0) == "payg_cas02" || getarg(0) == "payg_cas03" || getarg(0) == "payg_cas04" || getarg(0) == "payg_cas05" || getarg(0) == "nguild_pay") goto L_PaygCas;
	if(getarg(0) == "prtg_cas01" || getarg(0) == "prtg_cas02" || getarg(0) == "prtg_cas03" || getarg(0) == "prtg_cas04" || getarg(0) == "prtg_cas05" || getarg(0) == "nguild_prt") goto L_PrtgCas;

L_AldegCas:
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1117,10;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1132,4;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1219,2;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1205,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1216,10;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1193,17;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1269,9;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1276,7;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1208,3;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1275,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1268,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1272,1;
	monster getarg(0)+".gat",(getarg(2)+1),getarg(3),"--ja--",1272,1;
	monster getarg(0)+".gat",(getarg(2)-1),getarg(3),"--ja--",1270,4;
	monster getarg(0)+".gat",getarg(2),(getarg(3)+1),"--ja--",1268,1;
	monster getarg(0)+".gat",getarg(2),(getarg(3)-1),"--ja--",1219,1;
	monster getarg(0)+".gat",getarg(2),getarg(3),"--ja--",1276,5;
	return;
L_GefgCas:
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1117,10;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1263,11;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1102,10;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1130,10;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1140,20;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1163,9;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1275,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1219,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1150,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1159,1;
	monster getarg(0)+".gat",(getarg(2)+1),getarg(3),"--ja--",1203,1;
	monster getarg(0)+".gat",(getarg(2)-1),getarg(3),"--ja--",1087,1;
	monster getarg(0)+".gat",getarg(2),(getarg(3)+1),"--ja--",1213,7;
	monster getarg(0)+".gat",getarg(2),(getarg(3)-1),"--ja--",1189,7;
	return;
L_PaygCas:
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1277,10;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1208,10;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1262,5;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1102,5;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1150,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1115,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1129,11;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1276,5;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1282,4;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1253,5;
	monster getarg(0)+".gat",getarg(2),getarg(3),"--ja--",1150,1;
	monster getarg(0)+".gat",getarg(2),getarg(3),"--ja--",1115,1;
	monster getarg(0)+".gat",getarg(2),(getarg(3)+1),"--ja--",1208,6;
	monster getarg(0)+".gat",getarg(2),(getarg(3)-1),"--ja--",1276,5;
	return;
L_PrtgCas:
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1163,15;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1132,10;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1219,5;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1268,5;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1251,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1252,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1276,5;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1259,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1283,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1275,1;
	areamonster getarg(0)+".gat",0,0,300,300,"--ja--",1200,1;
	monster getarg(0)+".gat",(getarg(2)+1),getarg(3),"--ja--",1268,1;
	monster getarg(0)+".gat",(getarg(2)-1),getarg(3),"--ja--",1251,1;
	monster getarg(0)+".gat",getarg(2),(getarg(3)+1),"--ja--",1252,1;
	monster getarg(0)+".gat",getarg(2),(getarg(3)-1),"--ja--",1219,2;
	monster getarg(0)+".gat",getarg(2),getarg(3),"--ja--",1276,5;
	return;
}

// Function for OnGuildBreak ======================================
function	script	F_GuildBreak	{
	killmonsterall getarg(0)+".gat";

	Announce "Guild Base [" + GetCastleName(getarg(0)+".gat") + "] has been abandoned.",0;
	disablenpc "Kafra Service#"+getarg(1);

	SetCastleData getarg(0)+".gat",0,0;
	return;
}

// Function for OnAgitBreak ======================================
function	script	F_AgitBreak	{
	//killmonsterall getarg(0)+".gat";
	set @GID,getcharid(2);
	if (@GID <= 0) return;
	set @Economy,GetCastleData(getarg(0)+".gat",2);
	SetCastleData getarg(0)+".gat",2, @Economy-5;
	if (GetCastleData(getarg(0)+".gat",2) < 0) SetCastleData getarg(0)+".gat",2,0;
	set @Defence,GetCastleData(getarg(0)+".gat",3);
	SetCastleData getarg(0)+".gat",3, @Defence-5;
	if (GetCastleData(getarg(0)+".gat",3) < 0) SetCastleData getarg(0)+".gat",3,0;
	SetCastleData getarg(0)+".gat",1, @GID;
	MapAnnounce getarg(0)+".gat","The emperium has been destroyed.",17;
	Announce "Guild Base [" + GetCastleName(getarg(0)+".gat") + "] has been taken by the [" + GetGuildName(@GID) + "] guild.",0;
	GetCastleData getarg(0)+".gat",0,"::OnRecvCastle"+getarg(1);

	disablenpc "Kafra Service#"+getarg(1);
	set @i, 3;

	L_Loop:
		set @i, @i + 1;
		SetCastleData getarg(0)+".gat",@i,0;
		if(@i < 25) goto L_Loop;
		return;
}


// Function for OnAgitEnd ======================================
function	script	F_AgitEnd	{
	GvgOff getarg(0)+".gat";
//	if (GetCastleData(getarg(0)+".gat",1) == 0) return;	//enable this line to allow take over of non captured castles after woe ends
	MapRespawnGuildID getarg(0)+".gat",GetCastleData(getarg(0)+".gat",1),4;
	KillMonster getarg(0)+".gat","Agit_"+getarg(1)+"::OnAgitBreak";
	end;
}
