Actor GLExplosionLight : EffectBase
{
	+NOTIMEFREEZE
	States
	{
	Spawn:
		TNT1 A 16
		Stop
	}
}

Actor ExplosionFlash : EffectBase
{
	Scale 0.25
	States
	{
	Spawn:
		TNT1 A 0
		BFSH AAA 1 Bright A_SetScale(ScaleX*2)
		Stop
	}
}

Actor ExplosionGlow : EffectBase
{
	Scale 5
	States
	{
	Spawn:
		MUZZ ABCDEF 0 A_Jump(64,"Anim")
		Loop
	Anim:
		"----" A 1 Bright A_JumpIf(ScaleX<=0,"Null")
		"----" A 0 A_SetScale(ScaleX-1.1)
		Loop
	}
}
Actor ExplosionSpark : EffectBase
{
	Scale 0.1
	+MISSILE +BOUNCEONWALLS
	-NOINTERACTION
	Gravity 0.66
	Speed 10
	States
	{
	Spawn:
		SPK1 A Random(5,15) Bright A_SetScale(ScaleX*FRandom(0.75,1.1))
	Fade:
		"####" "#" 1 Bright A_SetScale(ScaleX*0.925)
		"####" "#" 0 A_JumpIf(ScaleX<0.005,"Null")
		Loop
	}
}

Actor RandomExplosionSprite : EffectBase
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(-ScaleX,ScaleY)
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(ScaleX,-ScaleY)
		TNT1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
	Spawn1:
		X003 ACEGHJKMNPQSTUWYZ 1 Bright
		Stop
	Spawn2:
		X004 ABCDEFGHIJKLMNOPQ 1 Bright
		Stop
	Spawn3:
		X005 ACDFGHJKMOPQSUVWX 1 Bright
		Stop
	Spawn4:
		X006 ABCDEFGHIJKLMNOP 1 Bright
		Stop
	Spawn5:
		X015 ACDFGHIKLNOPRSUWX 1 Bright
		Stop
	}
}

Actor ExplosionSmoke : EffectBase
{
	Speed 4
	Radius 4
	Height 4
	alpha 0.45
	RenderStyle Translucent
	Var Int User_Scale;
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_SetUserVar(User_Scale,ScaleX<<16)
		Decide:
		X037 ABCD 0 A_Jump(32,"Anim")
		Loop
	Anim:
		"####" "#" 0 A_SetScale(ScaleX+((User_Scale*0.0000153)*0.01))
		"####" "#" 0 A_ScaleVelocity(0.96)
		"####" "#" 1 A_FadeOut(0.0045)
		Loop
	}
}

#include "Decorate/SFX/GaussSFX"