//==BFG==
//Blaz gets the Fatal draw, a focused sword slash that decimates crowds with
//a single strike
//The Doomslayer gets the Berserk Rune, able to build rage from damaging
//foes before unleashing it for a temporary burst of super strength


Actor GMOTABFG : custominventory replaces BFG9000
{
	Radius 14
	Height 14
	+quiet
    +DONTGIB
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 a_custommissile ("BlazFatalDrawSprite",0,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 a_custommissile ("DoomslayerBerserkSprite",0,0,0,CMF_AIMDIRECTION)
	spawn1:
		TNT1 A 5
		loop
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("IamLordBlaz",1,"BlazFataldraw")
		TNT1 A 0 A_JumpIfInventory ("IamDoomSlayer",1,"DoomslayerBerserk")
		TNT1 A 1
		stop
	BlazFatalDraw:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_setblend (FFFFFF,0.3,10)
		TNT1 A 0 a_playsound ("powerups/superpower",CHAN_ITEM)
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,6,0,0)			
		//TNT1 A 0 a_log ("Unleasher the fatal draw!")
		TNT1 A 0 a_jumpifinventory ("unleasher", 1, "nohelp")
		TNT1 A 0 a_print ("Press the USE ITEM key to arm a fatal draw. build energy with power sword strikes or white spirit gems",9)
		TNT1 A 0 a_giveinventory ("unleasher",1)
		TNT1 A 0 a_giveinventory ("spiritforce", 5)
		TNT1 A 1 
		stop
	nohelp:
		TNT1 A 0
		TNT1 A 1 a_giveinventory ("spiritforce", 5)
		stop
	DoomslayerBerserk:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,6,0,0)			
		//TNT1 A 0 a_log ("Rip and tear until it is done!")
		TNT1 A 0 a_jumpifinventory ("unleasher", 1, "nohelpslayer")
		TNT1 A 0 a_playsound ("doomslayer/berserkget",0)
		TNT1 A 0 a_setblend (FF0000,0.5,50)
		TNT1 A 0 Radius_Quake (3,85,0,10,0)
		TNT1 A 0 a_giveinventory ("zerkcharge",200)
		TNT1 A 0 a_print ("Build rage by damaging foes, unleash your wrath with the use item key")
		TNT1 A 0 a_giveinventory ("unleasher",1)
		TNT1 A 1
		stop
	nohelpSlayer:
		TNT1 A 0
		TNT1 A 0 a_playsound ("doomslayer/berserkgetagain",0)
		TNT1 A 0 a_setblend (FF0000,0.5,35)
		TNT1 A 0 Radius_Quake (2,50,0,10,0)
		TNT1 A 1 a_giveinventory ("zerkcharge",200)
		stop
	}
}

actor BlazFatalDrawSprite : GMOTAweaponsprite
{
    +floatbob
	VisibleToPlayerClass LordBlaz
    States
    {
	spawn:
		TNT1 A 0
		BLZU A 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn1",AAPTR_TARGET)
		BLZU A 1 bright
		goto death
	spawn1:
		TNT1 A 0
		BLZU B 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn2",AAPTR_TARGET)
		BLZU B 1 bright
		goto death
	spawn2:
		TNT1 A 0
		BLZU C 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn3",AAPTR_TARGET)
		BLZU C 1 bright
		goto death
	spawn3:
		TNT1 A 0
		BLZU D 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn4",AAPTR_TARGET)
		BLZU D 1 bright
		goto death
	spawn4:
		TNT1 A 0
		BLZU E 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn",AAPTR_TARGET)
		BLZU E 1 bright
		goto death
	death:
		TNT1 A 1
		stop
    }
}

//AAAAA FUG YOU ZANDY FOR MAKING ME DO THIS
//AND FUG ME FOR NOT KNOWING A BETTER WAY
actor DoomSlayerBerserkSprite : GMOTAWeaponsprite
{
    +bright
	+floatbob
	VisibleToPlayerClass DoomSlayer
    States
    {
	spawn:
		TNT1 A 0
		DSBR A 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn1",AAPTR_TARGET)
		DSBR A 1 bright
		goto death
	spawn1:
		TNT1 A 0
		DSBR B 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn2",AAPTR_TARGET)
		DSBR B 1 bright
		goto death
	spawn2:
		TNT1 A 0
		DSBR C 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn3",AAPTR_TARGET)
		DSBR C 1 bright
		goto death
	spawn3:
		TNT1 A 0
		DSBR D 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn4",AAPTR_TARGET)
		DSBR D 1 bright
		goto death
	spawn4:
		TNT1 A 0
		DSBR E 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn5",AAPTR_TARGET)
		DSBR E 1 bright
		goto death
	spawn5:
		TNT1 A 0
		DSBR E 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn6",AAPTR_TARGET)
		DSBR E 1 bright
		goto death
	spawn6:
		TNT1 A 0
		DSBR D 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn7",AAPTR_TARGET)
		DSBR D 1 bright
		goto death
	spawn7:
		TNT1 A 0
		DSBR C 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn8",AAPTR_TARGET)
		DSBR C 1 bright
		goto death
	spawn8:
		TNT1 A 0
		DSBR B 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn9",AAPTR_TARGET)
		DSBR B 1 bright
		goto death
	spawn9:
		TNT1 A 0
		DSBR A 2 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn",AAPTR_TARGET)
		DSBR A 1 bright
		goto death
	death:
		TNT1 A 0
		TNT1 A 1
		stop
    }
}



actor unleasher : custominventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Inventory.InterHubAmount 1
	Inventory.Icon BLZUI
	+INVBAR
	+FLOORCLIP
	+floatbob
	states
	{
	use:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("IAmLordBlaz", 1, "Fataldrawcheck")
		TNT1 A 0 a_jumpifinventory ("IAmDoomslayer", 1, "Berserkcheck")
		fail
	FatalDrawcheck:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("spiritforce", 5, "drawon")
		fail
	drawon:
		TNT1 A 0
		TNT1 A 0 a_giveinventory ("fataldrawgo", 1)
		fail
	berserkcheck:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("zerkcharge", 200, "rageon")
		fail
	rageon:
		TNT1 A 0
		TNT1 A 0 a_giveinventory ("raging", 1)
		fail
		
	}
}

actor fataldrawgo : inventory 
{inventory.maxamount 1}


actor raging : inventory 
{inventory.maxamount 1}

