Actor GaussCannonParticle_D4TMutator : EffectBase
{
	Scale 0.2
	States
	{
	Spawn:
		TNT1 A 0 A_FadeOut(0.1)
		MUZZ H 1 Bright A_SetScale(ScaleX*0.95)
		Loop
	}
}

Actor GaussExplosionBack : GaussCannonParticle_D4TMutator
{
	Scale 7.5
	States
	{
	Spawn:
		MUZZ Q 1 Bright A_JumpIf(ScaleX<=0,"Null")
		TNT1 A 0 A_SetScale(ScaleX-0.75)
		Loop
	}
}
Actor GaussExplosionBackSmall : GaussExplosionBack
{
	Scale 2.5
	States
	{
	Spawn:
		SPK1 B 1 Bright A_JumpIf(ScaleX<=0,"Null")
		TNT1 A 0 A_SetScale(ScaleX-0.33)
		Loop
	}
}

Actor GaussCannonExplosionShockWave : GaussCannonParticle_D4TMutator
{
	Translation "0:255=%[0,0,0]:[0.78,1.54,1.95]"
	Scale 0.1
	States
	{
	Spawn:
		BSW1 A 1 Bright A_FadeOut(0.066)
		TNT1 A 0 A_SetScale(ScaleX*1.15)
		Loop
	}
}

Actor GaussCannonExplosionShockWave2 : GaussCannonExplosionShockWave { Scale 0.2 }

Actor ExplosionSparkBlue : ExplosionSpark
{
	States
	{
	Spawn:
		SPK1 B Random(5,15) Bright A_SetScale(ScaleX*FRandom(0.75,1.1))
		Goto Fade
	}
}

Actor VortexSmoke : EffectBase
{
	RenderStyle Add
	Translation "0:255=%[0,0,0]:[0.5,0.5,1]"
	Scale 0.5
	States
	{
	Spawn:
		TNT1 A 0 NoDelay 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,"Anim")
	Anim:
		PFFU F 1 A_SetScale(ScaleX*1.0166)
		TNT1 A 0 A_FadeOut(0.01)
		Loop
	}
}

Actor GaussCannonSmoke : VortexSmoke
{
	Scale 0.5
	Translation "0:255=%[0,0,0]:[0.5,0.75,1]"
	States
	{
	Anim:
		PFFU F 1 Bright A_SetScale(ScaleX*1.025)
		TNT1 A 0 A_FadeOut(0.025)
		Loop
	}
}

Actor GaussExplosionSprite : RandomExplosionSprite { Scale 0.8 Translation "0:255=%[0,0,0]:[0,0.75,1]" }
Actor GaussExplosionSprite2 : RandomExplosionSprite { Scale 0.8 Translation "0:255=%[0,0,0]:[0.2,0.75,0.75]" }

Actor GaussCannonExplosionSpark : GaussCannonParticle_D4TMutator
{
	+DONTSPLASH +MISSILE -NOINTERACTION +THRUACTORS
	Radius 1
	Height 1
	Scale 0.33
	Translation "0:255=%[0.00,0.00,0.00]:[1.07,1.65,2.00]"
	Gravity 0.33
	Speed 7
	States
	{
	Spawn:
		TNT1 AA 0 A_ScaleVelocity(FRandom(0.75,1.1))
		TNT1 A 0 A_SetScale(ScaleX*FRandom(0.75,1.2))
		NULL A 5 Bright
	Fade:
		NULL A 1 Bright A_JumpIf(ScaleX<=0,"Null")
		TNT1 A 0 A_SetScale(ScaleX-0.02)
		Loop
	}
}