
//==============================================================================
//====================== STAFF SPIN REFLECTOR GROSS HACKS ======================
//==============================================================================


ACTOR MissileReflector
{
	Radius 6
	Height 64
	+SHOOTABLE
	+REFLECTIVE
	+AIMREFLECT
	+NOGRAVITY
	+DONTTHRUST
	+NOBLOOD
	+DONTRIP
	+NOTARGET
	Mass 1
	Scale 1
	
	States
	{
		Spawn:
		RTES A 1 A_Warp(AAPTR_PLAYER1,25,-12,0,0,WARPF_NOCHECKPOSITION | WARPF_COPYVELOCITY)
		TNT1 A 0 A_JumpIfInventory("ReflectorToken",1,"Spawn",AAPTR_PLAYER1)			
		TNT1 A 0 A_Remove(1)
		Stop
	}
}

ACTOR MissileReflector2 : MissileReflector
{
	States
	{
		Spawn:
		RTES A 1 A_Warp(AAPTR_PLAYER1,15,-6,0,0,WARPF_NOCHECKPOSITION | WARPF_COPYVELOCITY)
		TNT1 A 0 A_JumpIfInventory("ReflectorToken",1,"Spawn",AAPTR_PLAYER1)			
		TNT1 A 0 A_Remove(1)
		Stop
	}
}

ACTOR MissileReflector3 : MissileReflector
{
	States
	{
		Spawn:
		RTES A 1 A_Warp(AAPTR_PLAYER1,15,0,0,0,WARPF_NOCHECKPOSITION | WARPF_COPYVELOCITY)
		TNT1 A 0 A_JumpIfInventory("ReflectorToken",1,"Spawn",AAPTR_PLAYER1)			
		TNT1 A 0 A_Remove(1)
		Stop
	}
}

ACTOR MissileReflector4 : MissileReflector
{
	States
	{
		Spawn:
		RTES A 1 A_Warp(AAPTR_PLAYER1,15,6,0,0,WARPF_NOCHECKPOSITION | WARPF_COPYVELOCITY)
		TNT1 A 0 A_JumpIfInventory("ReflectorToken",1,"Spawn",AAPTR_PLAYER1)			
		TNT1 A 0 A_Remove(1)
		Stop
	}
}

ACTOR MissileReflector5 : MissileReflector
{
	States
	{
		Spawn:
		RTES A 1 A_Warp(AAPTR_PLAYER1,15,12,0,0,WARPF_NOCHECKPOSITION | WARPF_COPYVELOCITY)
		TNT1 A 0 A_JumpIfInventory("ReflectorToken",1,"Spawn",AAPTR_PLAYER1)			
		TNT1 A 0 A_Remove(1)
		Stop
	}
}


//==============================================================================
//=========================== MELEE STAFF PROJECTILES ==========================
//==============================================================================


ACTOR StaffWindSlash : FastProjectile
{
	Radius 24
	Height 25
	Speed 30
	Damage (random(1,3))
	Projectile
	
	-NOBLOCKMAP
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	-WINDTHRUST
	+THRUGHOST
	+NOEXTREMEDEATH
	+ROLLSPRITE
	+RIPPER
	
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_PlaySound("woosh")
		TNT1 A 0 A_Jump(256,"NormalSpin","AltSpin","HorzSpin","VertSpin")	
	NormalSpin:
		FXAS ABC 1 Bright
		FXAS DEF 1 
		Goto Death
	AltSpin:
		TNT1 A 0 A_SetRoll(90)
		FXAS ABC 1 Bright 
		FXAS DEF 1 
		Goto Death
	HorzSpin:
		TNT1 A 0 A_SetRoll(-45)
		FXAS ABC 1 Bright
		FXAS DEF 1 
		Goto Death
	VertSpin:
		TNT1 A 0 A_SetRoll(45)
		FXAS ABC 1 Bright
		FXAS DEF 1 
		Goto Death
	Death:
		TNT1 A 1 
		Stop
	}
}

ACTOR PowerStaffWindSlash : FastProjectile
{
	Radius 24
	Height 25
	Speed 30
	Damage (random(2,5))
	Projectile
	
	-NOBLOCKMAP
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	-WINDTHRUST
	+THRUGHOST
	+NOEXTREMEDEATH
	+ROLLSPRITE
	+RIPPER
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_Jump(256,"NormalSpin","AltSpin")	
	Spin:
		TNT1 A 0 A_PlaySound("woosh")
		FXRS ABC 1 Bright A_SetRoll(-10)
		FXRS DEF 1 A_SetRoll(-10)
		Loop
	AltSpin:
		TNT1 A 0 A_PlaySound("woosh")
		FXRS ABC 1 Bright A_SetRoll(10)
		FXRS DEF 1 A_SetRoll(10)
		Loop
	Death:
		TNT1 A 1 
		Stop
	}
}

ACTOR SpikeTrail
{
	Alpha 0.5
	RenderStyle Add
	Scale 0.5
	
	+NOINTERACTION
	+FLOORHUGGER
	
	States
	{
		Spawn:
		SPKD ABCDE 2
		SPKD F 6
		TNT1 A 0 A_Remove(0)
		Stop
	}
}

ACTOR BootOfFury : FastProjectile
{
	Radius 3
	Height 5
	Speed 128
	Species "Player"
	Damagetype "Kick"
	Damage (random(20,40)+(CountInv("Stat_Strength",AAPTR_PLAYER1)/3))
    Projectile
	
	+THRUSPECIES
    +NOTIMEFREEZE
	+SPECTRAL
	+THRUGHOST
	
	States
    {
		Spawn:
			TNT1 A 1
			Stop
		Death:
			TNT1 A 0 A_SpawnItemEx("BrutalKickPuff",0,0,0,0,0,0,0,32)
			//TNT1 A 0 A_RadiusThrust(40000,64,RTF_NOIMPACTDAMAGE,64)
			//TNT1 A 0 A_RadiusThrust(-500,64,RTF_NOIMPACTDAMAGE | RTF_THRUSTZ,64)
			Stop
	}
}

ACTOR BootOfFury2 : BootOfFury
{
	States
	{
		Spawn:
			TNT1 A 1 A_RadiusThrust(9000,96,0,96)
			Stop
		Death:
			TNT1 A 1 A_RadiusThrust(9000,96,0,96)
			Stop
	}
}

ACTOR KickBackHit : BootOfFury
{
	//Radius 10
	//Height 10
	
	Speed 20
	Species "Player"
	
	States
	{
		Spawn:
			TNT1 A 2
			TNT1 A 1 A_Remove(0)
			Stop
		Death:
			PUF3 A 1 A_RadiusThrust(90000,256,RTF_NOIMPACTDAMAGE,256)
			PUF3 A 1 A_Remove(0)
			Stop
	}
}
