ACTOR LonghornBullet : FastProjectile
{
	Radius 13
	Height 11
	MissileHeight 11
	Speed 200
	Damage (16*random(1,3))
	Projectile
	ProjectileKickback 200
	+NOGRAVITY
	+FORCERADIUSDMG
	//+EXTREMEDEATH
	+RIPPER
	Renderstyle Add
	Obituary "%o's cranium got devastasted by %k's Longhorn hammer shot."
	Scale 0.5
	MissileType "LonghornTrail"
	Decal "LonghornChip"
	States
	{
	Spawn:
		TRAC A 0 NoDelay A_ChangeVelocity(0, 0, -2, CVF_RELATIVE)
	Looplet:
		TRAC A 1 Bright A_ChangeVelocity(0, 0, -0.25, CVF_RELATIVE)
		Loop
	Death:
		TNT1 A 0 A_Explode(25*random(1,3),56,0)
		TNT1 A 0 A_PlaySound("LeadBullet/Hit",4,0.2)
		TNT1 A 0 A_SpawnItemEx("LonghornImpact",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 1 A_SpawnItemEx("HuegPuff",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		Stop
	XDeath:
		TNT1 A 0
		Stop
	}
}

Actor LonghornImpact
{
	RenderStyle Add
	Scale 0.035
	+NOINTERACTION
	States
	{
		Spawn:
			SHCK C 0 NoDelay A_SetScale(ScaleX + FRandom(0.1, 0.15))
			SHCK C 1 Bright A_FadeOut(0.15)
			Loop
	}
}

Actor LonghornTrail
{
	+NoInteraction
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_SpawnItemEx("LonghornTrailSmoke", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("BuellerPuff_Main", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("BuellerPuff_Flash", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		//TNT1 A 0 A_SpawnItemEx("BuellerPuff_Spark1", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		//TNT1 A 0 A_SpawnItemEx("BuellerPuff_Spark2", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		//TNT1 A 0 A_SpawnItemEx("HuegPuff_Shock", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		Stop
	}
}

Actor LonghornTrailSmoke
{
	+NoInteraction
	+ForceXYBillboard
	Alpha 0.0
	RenderStyle Translucent
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_Jump(255, "SpriteA", "SpriteB", "SpriteC", "SpriteD")
	SpriteA:
		DYMI A 0 A_Jump(255, "FadeIn")
		Goto SpriteA
	SpriteB:
		DYMI B 0 A_Jump(255, "FadeIn")
		Goto SpriteB
	SpriteC:
		DYMI C 0 A_Jump(255, "FadeIn")
		Goto SpriteC
	SpriteD:
		DYMI D 0 A_Jump(255, "FadeIn")
		Goto SpriteD
	FadeIn:
		"####" "#" 0 A_SetScale(FRandom(0.0325, 0.025))
		Goto RealFadeIn
	RealFadeIn:
		"####" "#" 1 A_FadeIn(FRandom(0.1, 0.05))
		"####" "#" 0 A_SetScale(ScaleX + FRandom(0.001, 0.002))
		"####" "#" 0 A_JumpIf(Alpha >= 0.5, "FadeOut")
		Loop
	FadeOut:
		"####" "#" 1 A_FadeOut(FRandom(0.025,0.075))
		"####" "#" 0 A_SetScale(ScaleX + FRandom(0.001, 0.0005))
		Loop
	}
}