ACTOR LCABaseEffect
{
+NOCLIP
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LCABaseSmoke : LCABaseEffect
{ 
Scale 0.5
RenderStyle Add
Alpha 0.55
States
	{
	Spawn:
		TNT1 A 0 Bright
		SMOK ABCDEFGHIJKLMNOPQ 1 Bright
		Stop
	}
}

ACTOR AHellionSmoke
{
Scale 0.4
RenderStyle Normal
+MISSILE
+DROPOFF
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+THRUACTORS
+NOTIMEFREEZE
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		LMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LegHellionSmoke2 : AHellionSmoke { Scale 0.6 }
ACTOR LegSoulSmoke : AHellionSmoke { Scale 0.12 }

ACTOR GHellionSmoke
{
Scale 0.4
RenderStyle Normal
+MISSILE
+DROPOFF
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+THRUACTORS
+NOTIMEFREEZE
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		GMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GHellionSmoke2 : GHellionSmoke { Scale 0.6 }
ACTOR GSoulSmoke : GHellionSmoke { Scale 0.12 }

ACTOR RHellionSmoke
{
Scale 0.4
RenderStyle Normal
+MISSILE
+DROPOFF
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+THRUACTORS
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		RMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR OHellionSmoke
{
Scale 0.4
RenderStyle Normal
+MISSILE
+DROPOFF
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+THRUACTORS
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		OMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR RHellionSmokeSpawner : RedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAA 0 A_SpawnItemEx("RHellionSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,128,0)
		TNT1 A 1
		Stop
	}
}

ACTOR OHellionSmokeSpawner : RedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAA 0 A_SpawnItemEx("OHellionSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,128,0)
		TNT1 A 1
		Stop
	}
}

ACTOR LHellionSmokeSpawner : RedParticleSpawner
{
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 AAA 0 A_SpawnItemEx("AHellionSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop		
	}
}

ACTOR LHellionSmokeAttackSpawner : RedParticleSpawner
{
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LegHellionSmoke2",random(12,-12),random(12,-12),random(12,18),0,0,random(6,9),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LegHellionSmoke2",random(22,-22),random(22,-22),random(6,12),0,0,random(3,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop		
	}
}

ACTOR LegendaryRedParticleSpawner : RedParticleSpawner
{
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LEPSR1",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSR2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSR3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSR4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSR5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSR6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GHellionSmokeSpawner : LegendaryRedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAA 0 A_SpawnItemEx("GHellionSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LCABaseScorch : LCABaseEffect
{
Projectile
Mass 1000
Speed 1
Scale 1.0
RenderStyle Translucent
-NOGRAVITY
+NOEXPLODEFLOOR
+FLOORHUGGER
+NOCLIP
+FORCEYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 A 0 A_Jump(128,"AltSpawn")
		XSF1 A 175
		XSF1 AAAAAAAAAA 10 A_FadeOut(0.1)
		Stop
	"AltSpawn":
		TNT1 A 0
		XSF2 A 175
		XSF2 AAAAAAAAAA 10 A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR LCALightningBolt : LCABaseEffect // Blue
{
RenderStyle Add
Scale 0.15
Alpha 0.5
+MISSILE
+DONTSPLASH
-SOLID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72)
		HBL1 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HBL2 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HBL3 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HBL4 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		Goto Death
	Death:
		"####" "#" 1 Bright
		Stop
	}
}

ACTOR LCALightningBoltGreen : LCALightningBolt
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72)
		HGL1 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HGL2 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HGL3 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HGL4 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		Goto Death
	}
}

ACTOR LCALightningBoltPink : LCALightningBolt
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72)
		HPL1 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HPL2 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HPL3 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HPL4 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		Goto Death
	}
}

ACTOR LCALightningBoltGold : LCALightningBolt
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72)
		HYL1 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HYL2 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HYL3 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HYL4 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		Goto Death
	}
}

ACTOR LCALightningBoltRed : LCALightningBolt
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72)
		HRL1 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HRL2 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HRL3 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HRL4 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		Goto Death
    }
}


ACTOR LCAShockwave : LCABaseEffect
{
Renderstyle Add
Alpha 0.9
+DONTSPLASH
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 Bright
		HBRR ABCDEFGHIJKLMNOPQR 1 Bright A_FadeOut(0.04,1)
		Stop
	}
}

ACTOR LCAShockwaveLrg : LCAShockwave
{
Scale 2.0
Alpha 0.85
States
	{
	Spawn:
		TNT1 A 0 Bright
		HBRR ABCDEFGHIJKLMNOPQR 2 Bright A_FadeOut(0.04,1)
		Stop
	}
}

ACTOR LCAShotShockwave : LCAShockwave { Scale 0.75 }


//========
// Sparks
//========

ACTOR LCAEnergyProjectileSparkRed
{
Height 0
Radius 0
Mass 0
BounceFactor 0.5
Gravity 0.4
Scale 0.02
RENDERSTYLE ADD
Damage (0)
+MISSILE
+DROPOFF
+NOBLOCKMAP
+THRUACTORS
+NOTELEPORT
+DONTSPLASH
+DOOMBOUNCE
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		LSKR A 2 Bright A_FadeOut(0.08,1)
		Goto Spawn+1
	}
}


ACTOR LCAProjectileTrailParticleRed : LCAEnergyProjectileSparkRed
{
+NOGRAVITY
Scale 0.02
}


ACTOR LCABFGTrailParticleRed : LCAProjectileTrailParticleRed
{
Scale 0.06
States
	{
	Spawn:
		TNT1 A 0 Bright
		LSKR A 2 Bright A_FadeOut(0.015,1)
		Goto Spawn+1
	}
}

ACTOR LCABFGChargeParticleRed : LCAEnergyProjectileSparkRed { Scale 0.06 }


// Green Spark/Particles

ACTOR LCAEnergyProjectileSparkGreen : LCAEnergyProjectileSparkRed
{
BounceFactor 0.6
Gravity 0.2
Scale 0.02
States
	{
	Spawn:
		TNT1 A 0 Bright
		LSKG A 2 Bright A_FadeOut(0.08,1)
		Goto Spawn+1
	}
}

ACTOR LCAProjectileTrailParticleGreen : LCAEnergyProjectileSparkGreen
{
+NOGRAVITY
Scale 0.02
}


ACTOR LCABFGTrailParticleGreen : LCAProjectileTrailParticleGreen
{
Scale 0.06
States
	{
	Spawn:
		TNT1 A 0 Bright
		LSKG A 2 Bright A_FadeOut(0.015,1)
		Goto Spawn+1
	}
}

ACTOR LCABFGChargeParticleGreen : LCAEnergyProjectileSparkGreen { Scale 0.06 }


// Blue

ACTOR LCAEnergyProjectileSparkBlue : LCAEnergyProjectileSparkGreen
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		LSKB A 2 Bright A_FadeOut(0.08,1)
		Goto Spawn+1
	}
}

ACTOR LCAProjectileTrailParticleBlue : LCAEnergyProjectileSparkBlue
{
+NOGRAVITY
Scale 0.02
}

ACTOR LCABFGTrailParticleBlue : LCAProjectileTrailParticleBlue
{
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		LSKB A 2 Bright A_FadeOut(0.015,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LCABFGChargeParticleBlue : LCAEnergyProjectileSparkBlue { Scale 0.06 }

// Pink

ACTOR LCAEnergyProjectileSparkPink : LCAEnergyProjectileSparkGreen
{
States
	{
	Spawn:
		LSKP A 2 Bright A_FadeOut(0.08,1)
		Loop
	}
}

ACTOR LCAProjectileTrailParticlePink : LCAEnergyProjectileSparkPink
{
+NOGRAVITY
Scale 0.02
}


ACTOR LCABFGTrailParticlePink : LCAProjectileTrailParticlePink
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		LSKP A 2 Bright A_FadeOut(0.015,1)
		Goto Spawn+1
	}
}

ACTOR LCABFGChargeParticlePink : LCAEnergyProjectileSparkPink { Scale 0.06 }

// Gold

ACTOR LCAEnergyProjectileSparkGold : LCAEnergyProjectileSparkGreen
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		GSKG A 2 Bright A_FadeOut(0.08,1)
		Goto Spawn+1
	}
}

ACTOR LCAProjectileTrailParticleGold : LCAEnergyProjectileSparkGold
{
+NOGRAVITY
Scale 0.02
}

ACTOR LCABFGTrailParticleGold : LCAProjectileTrailParticleGold
{
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		GSKG A 2 Bright A_FadeOut(0.015,1)
		Goto Spawn+2
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LCABFGChargeParticleGold : LCAEnergyProjectileSparkGold { Scale 0.06 }

ACTOR EnergyProjectileSparkGold : EnergyProjectileSparkRed
{
BounceFactor 0.6
Gravity 0.2
States
	{
	Spawn:
		TNT1 A 0 Bright
		LPKG A 2 Bright A_FadeOut(0.08,1)
		Goto Spawn+1
	}
}

ACTOR LPSG1 : EnergyProjectileSparkGold { Scale 0.06 }

ACTOR LPSG2 : EnergyProjectileSparkGold
{
Speed 1
Scale 0.05
}

ACTOR LPSG3 : EnergyProjectileSparkGold
{
Speed 2
Scale 0.04
}

ACTOR LPSG4 : EnergyProjectileSparkGold
{
Speed 3
Scale 0.03
}

ACTOR LPSG5 : EnergyProjectileSparkGold
{
Speed 4
Scale 0.02
}

ACTOR LPSG6 : EnergyProjectileSparkGold
{
Speed 5
Scale 0.01
}

ACTOR LPSG7 : EnergyProjectileSparkGold { Scale 0.040 }
ACTOR LPSG8 : EnergyProjectileSparkGold { Scale 0.035 }
ACTOR LPSG9 : EnergyProjectileSparkGold { Scale 0.030 }
ACTOR LPSG10 : EnergyProjectileSparkGold { Scale 0.025 }
ACTOR LPSG11 : EnergyProjectileSparkGold { Scale 0.020 }
ACTOR LPSG12 : EnergyProjectileSparkGold { Scale 0.015 }

ACTOR GoldParticleSpawner : GreenParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LPSG1",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GoldParticleSpawnerDT : RedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LPSG7",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG8",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG9",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG10",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG11",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LPSG12",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	}
}

// Gold Legendary EnergyProjectileSpark
ACTOR LegendaryEnergyProjectileSparkGold : EnergyProjectileSparkGold { +NOTIMEFREEZE }

ACTOR LEPSGD1 : LegendaryEnergyProjectileSparkGold { Scale 0.06 }
ACTOR LEPSGD2 : LegendaryEnergyProjectileSparkGold { Scale 0.05 }
ACTOR LEPSGD3 : LegendaryEnergyProjectileSparkGold { Scale 0.04 }
ACTOR LEPSGD4 : LegendaryEnergyProjectileSparkGold { Scale 0.03 }
ACTOR LEPSGD5 : LegendaryEnergyProjectileSparkGold { Scale 0.02 }
ACTOR LEPSGD6 : LegendaryEnergyProjectileSparkGold { Scale 0.01 }
ACTOR LegendaryGoldParticleSpawner : GoldParticleSpawner
{
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LEPSGD1",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSGD2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSGD3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSGD4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSGD5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSGD6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	}
}

// Red Legendary EnergyProjectileSpark
ACTOR LegendaryEnergyProjectileSparkRed : EnergyProjectileSparkRed { +NOTIMEFREEZE }
ACTOR LEPSR1 : LegendaryEnergyProjectileSparkRed { Scale 0.06 }
ACTOR LEPSR2 : LegendaryEnergyProjectileSparkRed { Scale 0.05 }
ACTOR LEPSR3 : LegendaryEnergyProjectileSparkRed { Scale 0.04 }
ACTOR LEPSR4 : LegendaryEnergyProjectileSparkRed { Scale 0.03 }
ACTOR LEPSR5 : LegendaryEnergyProjectileSparkRed { Scale 0.02 }
ACTOR LEPSR6 : LegendaryEnergyProjectileSparkRed { Scale 0.01 }

// Green Legendary EnergyProjectileSpark
ACTOR LegendaryEnergyProjectileSparkGreen : EnergyProjectileSparkGreen { +NOTIMEFREEZE }
ACTOR LEPSG1 : LegendaryEnergyProjectileSparkGreen { Scale 0.06 }
ACTOR LEPSG2 : LegendaryEnergyProjectileSparkGreen { Scale 0.05 }
ACTOR LEPSG3 : LegendaryEnergyProjectileSparkGreen { Scale 0.04 }
ACTOR LEPSG4 : LegendaryEnergyProjectileSparkGreen { Scale 0.03 }
ACTOR LEPSG5 : LegendaryEnergyProjectileSparkGreen { Scale 0.02 }
ACTOR LEPSG6 : LegendaryEnergyProjectileSparkGreen { Scale 0.01 }

ACTOR LegendaryGreenParticleSpawner : GreenParticleSpawner
{
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LEPSG1",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSG2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSG3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSG4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSG5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSG6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

// Blue Legendary EnergyProjectileSpark
ACTOR LegendaryEnergyProjectileSparkBlue : EnergyProjectileSparkBlue { +NOTIMEFREEZE }
ACTOR LEPSB1 : LegendaryEnergyProjectileSparkBlue { Scale 0.06 }
ACTOR LEPSB2 : LegendaryEnergyProjectileSparkBlue { Scale 0.05 }
ACTOR LEPSB3 : LegendaryEnergyProjectileSparkBlue { Scale 0.04 }
ACTOR LEPSB4 : LegendaryEnergyProjectileSparkBlue { Scale 0.03 }
ACTOR LEPSB5 : LegendaryEnergyProjectileSparkBlue { Scale 0.02 }
ACTOR LEPSB6 : LegendaryEnergyProjectileSparkBlue { Scale 0.01 }

ACTOR LegendaryBlueParticleSpawner : BlueParticleSpawner
{
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LEPSB1",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSB2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSB3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSB4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSB5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSB6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

// Orange Legendary EnergyProjectileSpark
ACTOR LegendaryEnergyProjectileSparkOrange : EnergyProjectileSparkOrange { +NOTIMEFREEZE }
ACTOR LEPSO1 : LegendaryEnergyProjectileSparkOrange { Scale 0.06 }
ACTOR LEPSO2 : LegendaryEnergyProjectileSparkOrange { Scale 0.05 }
ACTOR LEPSO3 : LegendaryEnergyProjectileSparkOrange { Scale 0.04 }
ACTOR LEPSO4 : LegendaryEnergyProjectileSparkOrange { Scale 0.03 }
ACTOR LEPSO5 : LegendaryEnergyProjectileSparkOrange { Scale 0.02 }
ACTOR LEPSO6 : LegendaryEnergyProjectileSparkOrange { Scale 0.01 }

ACTOR LegendaryOrangeParticleSpawner : OrangeParticleSpawner
{
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LEPSO1",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSO2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSO3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSO4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSO5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("LEPSO6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LegendaryBlueStar : BlueStar { +NOTIMEFREEZE }

ACTOR LegendaryBlueSparkleSpawner : BlueSparkleSpawner
{
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AA 2 A_SpawnItemEx("LegendaryBlueStar",random(-15,15),random(-15,15),random(28,44),0,0,0,0,SXF_CLIENTSIDE)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LegendaryBluePowerLine : BluePowerLine { +NOTIMEFREEZE }
ACTOR LegendaryGreenPowerLine : GreenPowerLine { +NOTIMEFREEZE }
ACTOR LegendaryRedPowerLine : RedPowerLine { +NOTIMEFREEZE }

ACTOR LegendaryBluePowerLineSpawner : BluePowerLineSpawner { +NOTIMEFREEZE }
ACTOR LegendaryGreenPowerLineSpawner : GreenPowerLineSpawner { +NOTIMEFREEZE }
ACTOR LegendaryRedPowerLineSpawner : RedPowerLineSpawner { +NOTIMEFREEZE }

Actor LCABigShockWave
{
PROJECTILE
Height 1
Radius 1
Speed 0
Scale 1.0
Renderstyle Add
Alpha 0.9
Damage (0)
+NOCLIP
+DONTSPLASH
+NOINTERACTION
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("LCABigShockWaveFlash",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		BSW0 AAAAAAAAAAA 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor LCABigShockWaveFlash 
{
Scale 2.0
Renderstyle Add
Alpha 1.0
+NOCLIP
+FLOORCLIP
+NOGRAVITY
+NOTELEPORT
+NOINTERACTION
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 Bright
		BFSH A 3 Bright
	EndLoop:
		BFSH A 1 A_FadeOut(0.2,1)
		Loop
	}
}

ACTOR TLCFlyLandShockWaveFlash : LCABigShockWaveFlash
{
Scale 1.0
States
	{
	Spawn:
		TNT1 A 0 Bright
		BFHB A 3 bright
	EndLoop:
		BFHB A 1 A_FadeOut (0.2,1)
		Loop
	}
}

ACTOR TLCFlyLandShockWave : LCABigShockWave
{
Scale 0.5
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("TLCFlyLandShockWaveFlash",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		BSW2 AAAAAAAAAAA 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR LCABigBang
{
PROJECTILE
Scale 4
Renderstyle Add
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{   
	Spawn:
		TNT1 A 0 Bright
		BIGB ABCDEFGHIJ 2 Bright
		BIGB KLMNOP 2 Bright
		BIGB QRSTU 2 Bright
		Stop
	}
}

ACTOR TLCFlyLandKaBoom : LCABigBang
{
Scale 2.0
States
	{   
	Spawn:
		TNT1 A 0 Bright
		BBGB ABCDEFGHIJ 2 Bright
		BBGB KLMNOP 2 Bright
		BBGB QRSTU 2 Bright
		Stop
	}
}

Actor LCAExplosionBundle
{
Radius 1
Height 1
Mass 1
Speed 0
Scale 1.4
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright Radius_Quake(3,15,0,10,0)
		TNT1 AAA 0 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
		BXP2 DEFGHIJ 2 Bright A_CustomMissile("Kaboom",random(20,80),random(20,-20),random(0,360),CMF_AIMDIRECTION,random(0,360))
		BXP2 K 2 Bright A_CustomMissile("SmokeFX3",32,0,random(80,100),CMF_AIMDIRECTION,random(80,100))
		BXP2 LL 1 Bright A_CustomMissile("Kaboom",random(20,80),random(20,-20),random(0,360),CMF_AIMDIRECTION,random(0,360))
		BXP2 M 2 Bright A_CustomMissile("SmokeFX3",32,0,random(80,100),CMF_AIMDIRECTION,random(80,100))
		BXP2 NN 1 Bright A_CustomMissile("Kaboom",random(20,80),random(20,-20),random(0,360),CMF_AIMDIRECTION,random(0,360))
		BXP2 OPQ 2 Bright A_CustomMissile("SmokeFX3",32,0,random(80,100),CMF_AIMDIRECTION,random(80,100))
		Goto Death
	Death:
		TNT1 A 1 Bright
	    Stop
  }
}

// BlueKaboom is treated as Legendary, for now.  (e.g. Has +NOTIMEFREEZE)
ACTOR BaseBlueKaboom
{
PROJECTILE
Speed 3
Scale 1.3
Renderstyle Add
Alpha 0.75
Damage (0)
+DONTSPLASH
+NOTIMEFREEZE
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		BXPO A 1 Bright A_PlaySound("weapons/rocklx")
		BXPO ABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR BlueKaboom : BaseBlueKaboom
{
+NOCLIP
+NOBLOCKMAP
+NOINTERACTION
+CLIENTSIDEONLY
}

ACTOR LegRipperrMouthBlueKaboom
{
Scale 0.4
Renderstyle Add
Alpha 0.8
+NOCLIP
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+NOTIMEFREEZE
+NOINTERACTION
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		BXPO ACEGIKLM 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR LegRipperrMouthBreatheBlueKaboom : LegRipperrMouthBlueKaboom
{
Scale 0.5
Alpha 0.5
States
	{
	Spawn:
		TNT1 A 0 Bright
		BXPO ABCDEFGHIJKKLLMMM 5 Bright A_FadeOut(0.025,1)
		Stop
	}
}

ACTOR PainfulDeathKaboom : BaseBlueKaboom
{
Scale 1
Alpha 0.75
States
	{
	Spawn:
		TNT1 A 0 Bright
		BXPO A 1 Bright A_PlaySound("weapons/rocklx")
		TNT1 A 0 Bright A_Explode(8,128)
		TNT1 A 0 Bright A_SpawnItemEx("DeathKaboomFlare",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Jump(192, 58)
		TNT1 A 0 Bright A_Jump(128, 15, 29, 43)
		BXPO ABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
		LXPG ABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
		LISL BBBBCCCCDDDDDD 1 Bright A_FadeOut(0.05,1)
		Stop
		MISL BBBBCCCCDDDDDD 1 Bright A_FadeOut(0.05,1)
		Stop
		LXPG AB 1 Bright A_FadeOut(0.05,1)
		BXPO BC 1 Bright A_FadeOut(0.05,1)
		LXPG DE 1 Bright A_FadeOut(0.05,1)
		BXPO FG 1 Bright A_FadeOut(0.05,1)
		LXPG HI 1 Bright A_FadeOut(0.05,1)
		BXPO JK 1 Bright A_FadeOut(0.05,1)
		LXPG LM 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

ACTOR DeathKaboomFlare
{
Renderstyle Add
Alpha 0.75
+NOCLIP
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+NOTIMEFREEZE
+NOINTERACTION
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(128, 11, 21)
		X051 AAAAAAAAAA 1 Bright A_FadeOut(0.1,1)
		Stop
		X053 AAAAAAAAAA 1 Bright A_FadeOut(0.1,1)
		Stop
		X054 AAAAAAAAAA 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR BlueKaboom3 : BlueKaboom
{
Speed 2
Scale 0.9
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		BXPO AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

ACTOR BlueKaboom4 : BlueKaboom
{
Speed 1
Scale 0.45
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		BXPO AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

//

// GreenKaboom
ACTOR BaseGreenKaboom
{
PROJECTILE
Speed 3
Scale 1.3
Renderstyle Add
Alpha 0.75
Damage (0)
+DONTSPLASH
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		GXPO A 1 Bright A_PlaySound("weapons/rocklx")
		GXPO ABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GreenKaboom : BaseGreenKaboom
{
+NOCLIP
+NOBLOCKMAP
+NOINTERACTION
+CLIENTSIDEONLY
}

ACTOR GreenKaboom2 : GreenKaboom
{
Speed 1
Scale 0.9
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		GXPO AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

//

ACTOR LegBlueGibbedGenerator : BlueGibbedGenerator
{
+NOGRAVITY
+NOBLOCKMAP
+NOTIMEFREEZE
+CLIENTSIDEONLY
States 
	{ 
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_Jump(128,"Alternate")
		TNT1 AA 0 A_CustomMissile("LegendaryBlueBloodCloud", random(0,40), 0, random(0,360), 2, random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("LegendaryBlueFlyingBlood",0,0,Random(15,30),Random(6,-6),Random(6,-6),Random(4,6))
		TNT1 A 0 A_SpawnDebris("LegendaryBlueBodyPart1")
		TNT1 A 1 A_SpawnDebris("LegendaryBlueBodyPart2")
		TNT1 AA 0 A_CustomMissile("LegendaryBlueBloodCloud", random(0,40), 0, random(0,360), 2, random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("LegendaryBlueFlyingBlood",0,0,Random(15,30),Random(6,-6),Random(6,-6),Random(4,6))
		TNT1 A 0 A_SpawnDebris("LegendaryBlueBodyPart3")
		TNT1 A 1 A_SpawnDebris("LegendaryBlueBodyPart4")
		Stop
	Alternate:
		TNT1 A 0 Bright
		TNT1 AA 0 A_CustomMissile("LegendaryBlueBloodCloud", random(0,40), 0, random(0,360), 2, random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("LegendaryBlueFlyingBlood",0,0,Random(15,30),Random(6,-6),Random(6,-6),Random(4,6))
		TNT1 A 0 A_SpawnDebris("LegendaryBlueBodyPart5")
		TNT1 A 1 A_SpawnDebris("LegendaryBlueBodyPart6")
		TNT1 AA 0 A_CustomMissile("LegendaryBlueBloodCloud", random(0,40), 0, random(0,360), 2, random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("LegendaryBlueFlyingBlood",0,0,Random(15,30),Random(6,-6),Random(6,-6),Random(4,6))
		TNT1 A 0 A_SpawnDebris("LegendaryBlueBodyPart7")
		TNT1 A 1 A_SpawnDebris("LegendaryBlueBodyPart8")
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LegendaryBlueFlyingBlood
{
Scale 0.1
Health 1
Radius 2
Height 2
BounceCount 2
BounceFactor 0.05
WallBounceFactor 0.05
+CORPSE
+MISSILE
+THRUACTORS
+NOTELEPORT
+NOBLOCKMAP
+DONTSPLASH
+DOOMBOUNCE
+NOTIMEFREEZE
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		BBLD AAABBBCCCDDD 1 A_SpawnItem("LegendaryBlueFlyingBloodTrail",0,0,0,1)
		Goto Spawn+2
	Crash:
	Death:
		TNT1 A 0 A_PlaySound("Gibs")
		TNT1 A 1 A_SpawnItem("LegendaryBlueBloodSpot",0,0,0,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LegendaryBlueBloodSpot
{
Scale 0.4
RenderStyle Translucent
Alpha 0.8
+NOTELEPORT
+NOBLOCKMAP
+NOTIMEFREEZE
+MOVEWITHSECTOR
+CLIENTSIDEONLY
States
	{
	Spawn:
		BBPT A 100
		BBPT A 5 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

ACTOR LegendaryBlueFlyingBloodTrail
{
Scale 0.1
RenderStyle Translucent
Alpha 0.8
+NOCLIP
+NOTELEPORT
+NOBLOCKMAP
+DONTSPLASH
+LOWGRAVITY
+NOTIMEFREEZE
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		BBLD ABCD 2 A_FadeOut(0.18,1)
		Goto Spawn+1
	}
}

ACTOR LegendaryBlueRocketEx
{
RenderStyle Add
Alpha 0.85
+NOGRAVITY
+NOTIMEFREEZE
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		BISL B 6 Bright
		BISL CD 5 Bright
		Stop
	}
}

ACTOR LegendaryNewBloodSpot5 : NewBloodSpot5 { +NOTIMEFREEZE }
ACTOR LegendaryNewFlyingBloodTrail5 : NewFlyingBloodTrail5 { +NOTIMEFREEZE }
ACTOR LegendaryNewFlyingBlood5 : NewFlyingBlood
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		FBBL AAABBBCCCDDD 1 A_SpawnItem("LegendaryNewFlyingBloodTrail5",0,0,0,1)
		Goto Spawn+2
	Crash:
	Death:
		TNT1 A 0 A_PlaySound("Gibs")
		TNT1 A 1 A_SpawnItem("LegendaryNewBloodSpot5",0,0,0,1)
		Stop
	}
}

ACTOR LegendaryBlueBloodCloud : BlueBloodCloud { +NOTIMEFREEZE }
ACTOR LegendaryBlueBodyPart1 : BlueBodyPart1 { +NOTIMEFREEZE }
ACTOR LegendaryBlueBodyPart2 : BlueBodyPart2 { +NOTIMEFREEZE }
ACTOR LegendaryBlueBodyPart3 : BlueBodyPart3 { +NOTIMEFREEZE }
ACTOR LegendaryBlueBodyPart4 : BlueBodyPart4 { +NOTIMEFREEZE }
ACTOR LegendaryBlueBodyPart5 : BlueBodyPart5 { +NOTIMEFREEZE }
ACTOR LegendaryBlueBodyPart6 : BlueBodyPart6 { +NOTIMEFREEZE }
ACTOR LegendaryBlueBodyPart7 : BlueBodyPart7 { +NOTIMEFREEZE }
ACTOR LegendaryBlueBodyPart8 : BlueBodyPart8 { +NOTIMEFREEZE }

ACTOR LegendaryKaboom3 : Kaboom3 { +NOTIMEFREEZE }
ACTOR LegendaryKaboom6 : Kaboom6 { +NOTIMEFREEZE }
ACTOR LegendarySmokeFX : SmokeFX { +NOTIMEFREEZE }
ACTOR LegendarySmokeFX2 : SmokeFX2 { +NOTIMEFREEZE }
ACTOR LegendarySmokeFX4 : SmokeFX4 { +NOTIMEFREEZE }

ACTOR LegendaryDebris : Debris { +NOTIMEFREEZE }
ACTOR LegendaryFootStep : FootStep { +NOTIMEFREEZE }
ACTOR LegendaryBonyStep : BonyStep { +NOTIMEFREEZE }
ACTOR LegendaryHoofStep : HoofStep { +NOTIMEFREEZE }
ACTOR LegendaryBeefyStep : BeefyStep { +NOTIMEFREEZE }

ACTOR LPlayerSmokeSpawner : LegendaryRedParticleSpawner 
{
SCALE 0.01
States 
	{
	Spawn:
		TNT1 A 0 Bright
		//TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright A_JumpIfInventory("LegendaryRuneItem",1,"Smoking",AAPTR_TARGET)
		Stop
	Smoking:
		TNT1 A 0 Bright
		TNT1 AA 0 Bright A_SpawnItemEx("LPlayerSmoke",random(12,-12),random(12,-12),random(-16,16),0,0,random(1,3),0,128,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR APlayerSmoke 
{
Scale 0.1
RenderStyle Normal
+MISSILE
+NOGRAVITY
+NOBLOCKMAP
+DONTSPLASH
+NOTELEPORT
+THRUACTORS
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		LMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR LPlayerSmoke : APlayerSmoke { +NOTIMEFREEZE }

ACTOR LegSGTracer : SGTracer { +NOTIMEFREEZE }
ACTOR LegShellCasing : Shellcasing { +NOTIMEFREEZE }

ACTOR LegRicochetSpark : RicochetSpark { +NOTIMEFREEZE }
ACTOR LegRicochetSpark2 : RicochetSpark2 { +NOTIMEFREEZE }

ACTOR LegModdedBulletPuff : ModdedBulletPuff
{
+NOTIMEFREEZE
Damagetype "Legendary"
States
	{
	Spawn:
		PUFF A 2 Bright
		PUFF B 2 Bright A_Jump(24,"RicochetPuff","RicochetPuffAlt")
		PUFF CDEF 2
		Stop
	RicochetPuff:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("puff/ricochet")
		TNT1 A 1 Bright A_SpawnItem("LegRicochetSpark",0,0,0)
		PUFF CDEF 2
		Stop
	RicochetPuffAlt:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("puff/ricochet")
		TNT1 A 1 Bright A_SpawnItem("LegRicochetSpark2",0,0,0)
		PUFF CDEF 2
		Stop
	}
}

ACTOR EnergyProjectileSparkYellow : EnergyProjectileSparkRed
{
+NOGRAVITY
+NOTIMEFREEZE
States
	{
	Spawn:
		SP2Y A 3 Bright A_FadeOut(0.1,1)
		Loop
	}
}

ACTOR EPSY1 : EnergyProjectileSparkYellow{Scale 0.065}
ACTOR EPSY2 : EnergyProjectileSparkYellow{Scale 0.055}
ACTOR EPSY3 : EnergyProjectileSparkYellow{Scale 0.045}
ACTOR EPSY4 : EnergyProjectileSparkYellow{Scale 0.035}
ACTOR EPSY5 : EnergyProjectileSparkYellow{Scale 0.025}
ACTOR EPSY6 : EnergyProjectileSparkYellow{Scale 0.015}

ACTOR YellowParticleSpawner : RedParticleSpawner
{
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("EPSY1",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("EPSY2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("EPSY3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("EPSY4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("EPSY5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("EPSY6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR ClientSideEffectBase
{
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AA 0 Bright A_Jump(256,"Spawn2")
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}