
ACTOR LCABaseEffect
{
 +CLIENTSIDEONLY
 +NOINTERACTION
 +NOGRAVITY
 +NOBLOCKMAP
 +NOTELEPORT
 +NOCLIP
 +NONETID
}

ACTOR LCABaseSmoke : LCABaseEffect
{ 
    Scale 0.5
    Alpha 0.55
    RenderStyle Add
    States
    {
    Spawn:
      SMOK ABCDEFGHIJKLMNOPQ 1 BRIGHT
      Stop
    }
}

ACTOR LCABaseScorch : LCABaseEffect
{
  Scale 1.0
  Speed 1
  Projectile
  Mass 1000
  -NOGRAVITY
  +NOEXPLODEFLOOR
  +FLOORHUGGER
  +NOCLIP
  +FORCEYBILLBOARD
  
  RenderStyle Translucent
  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)
	  Stop
  }
}

ACTOR LCALightningBolt : LCABaseEffect // Blue
{
RenderStyle Add
Scale 0.15
Alpha 0.5
+MISSILE
+DONTSPLASH
-SOLID
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 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")
Death:
    "----" A 1 Bright
    Stop
    }
}

ACTOR LCALightningBoltGreen : LCALightningBolt
{
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 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
    TNT1 A 0 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
    TNT1 A 0 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
    TNT1 A 0 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
{
  Alpha 0.9
  Renderstyle Add
  +DONTSPLASH
  +FORCEXYBILLBOARD

  States
  {
    Spawn:
      HBRR ABCDEFGHIJKLMNOPQR 1 Bright A_FadeOut(0.04)
      Stop
  }
}

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

ACTOR LCAShotShockwave : LCAShockwave
{
  Scale 0.75
}


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

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


ACTOR LCAProjectileTrailParticleRed : LCAEnergyProjectileSparkRed
{
+NOGRAVITY
Scale 0.02
}


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

ACTOR LCABFGChargeParticleRed : LCAEnergyProjectileSparkRed
{
Scale 0.06
}


// Green Spark/Particles

ACTOR LCAEnergyProjectileSparkGreen : LCAEnergyProjectileSparkRed
{
BounceFactor 0.6
Gravity 0.2
Scale 0.02
States
{
Spawn:
LSKG A 2 Bright A_FadeOut(0.08)
Loop
}
}

ACTOR LCAProjectileTrailParticleGreen : LCAEnergyProjectileSparkGreen
{
+NOGRAVITY
Scale 0.02
}


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

ACTOR LCABFGChargeParticleGreen : LCAEnergyProjectileSparkGreen
{
Scale 0.06
}


// Blue

ACTOR LCAEnergyProjectileSparkBlue : LCAEnergyProjectileSparkGreen
{
States
{
Spawn:
LSKB A 2 Bright A_FadeOut(0.08)
Loop
}
}

ACTOR LCAProjectileTrailParticleBlue : LCAEnergyProjectileSparkBlue
{
+NOGRAVITY
Scale 0.02
}

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

ACTOR LCABFGChargeParticleBlue : LCAEnergyProjectileSparkBlue
{
Scale 0.06
}

// Pink

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

ACTOR LCAProjectileTrailParticlePink : LCAEnergyProjectileSparkPink
{
+NOGRAVITY
Scale 0.02
}


ACTOR LCABFGTrailParticlePink : LCAProjectileTrailParticlePink
{
States
{
Spawn:
TNT1 A 0
LSKP A 2 Bright A_FadeOut(0.015)
Loop
}
}

ACTOR LCABFGChargeParticlePink : LCAEnergyProjectileSparkPink
{
Scale 0.06
}

// Gold

ACTOR LCAEnergyProjectileSparkGold : LCAEnergyProjectileSparkGreen
{
States
{
Spawn:
GSKG A 2 Bright A_FadeOut(0.08)
Loop
}
}

ACTOR LCAProjectileTrailParticleGold : LCAEnergyProjectileSparkGold
{
+NOGRAVITY
Scale 0.02
}

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

ACTOR LCABFGChargeParticleGold : LCAEnergyProjectileSparkGold
{
Scale 0.06
}









ACTOR EnergyProjectileSparkGold : EnergyProjectileSparkRed
{
BounceFactor 0.6
Gravity 0.2
States
{
Spawn:
LPKG A 2 Bright A_FadeOut(0.08)
Loop
}
}

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
	TNT1 A 0 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,128)
	TNT1 A 0 A_SpawnItemEx("LPSG2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LPSG3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LPSG4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LPSG5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LPSG6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 1
    Stop
  }
}

ACTOR GoldParticleSpawnerDT : RedParticleSpawner
{
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 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,128)
	TNT1 A 0 A_SpawnItemEx("LPSG8",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LPSG9",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LPSG10",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LPSG11",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LPSG12",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 1
    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
	TNT1 A 0 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,128)
	TNT1 A 0 A_SpawnItemEx("LEPSGD2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSGD3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSGD4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSGD5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSGD6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 1
    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 }
ACTOR LegendaryRedParticleSpawner : RedParticleSpawner
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 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,128)
	TNT1 A 0 A_SpawnItemEx("LEPSR2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSR3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSR4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSR5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSR6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 1
    Stop
  }
}

// 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
	TNT1 A 0 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,128)
	TNT1 A 0 A_SpawnItemEx("LEPSG2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSG3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSG4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSG5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSG6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 1
    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
	TNT1 A 0 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,128)
	TNT1 A 0 A_SpawnItemEx("LEPSB2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSB3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSB4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSB5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSB6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 1
    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
	TNT1 A 0 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,128)
	TNT1 A 0 A_SpawnItemEx("LEPSO2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSO3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSO4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("LEPSO5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("LEPSO6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 1
    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, 128)
        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
{
Speed 0
Scale 1
Radius 1
Height 1
Damage 0
Renderstyle Add
PROJECTILE
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+NOGRAVITY
+MISSILE
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NOINTERACTION
+NOCLIP
Alpha 0.9
Scale 1.0
Speed 0
States
{
Spawn:
BSW0 A 0
BSW0 A 0 A_SpawnItemEx("LCABigShockWaveFlash")
BSW0 AAAAAAAAAAA 1 Bright A_FadeOut(0.1)
Stop
}
}

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

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

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

ACTOR LCABigBang
{
	Scale 4
	Renderstyle Add
	PROJECTILE
	+CLIENTSIDEONLY
	+NOINTERACTION
	+NOGRAVITY
	States
	{   
	Spawn:
	BIGB ABCDEFGHIJ 2 Bright
	BIGB KLMNOP 2 Bright
	BIGB QRSTU 2 Bright
	Stop
	}
}
ACTOR TLCFlyLandKaBoom : LCABigBang {
Scale 2.0
States
{   
  Spawn:
	BBGB ABCDEFGHIJ 2 Bright
	BBGB KLMNOP 2 Bright
	BBGB QRSTU 2 Bright
	Stop
  }
}

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



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

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

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

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

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

ACTOR DeathKaboomFlare
{
Renderstyle Add
Alpha 0.75
+NOTELEPORT
+DONTSPLASH
+NOGRAVITY
+FORCEXYBILLBOARD
+NOTIMEFREEZE

+NOCLIP
+NOBLOCKMAP
+NOINTERACTION
+CLIENTSIDEONLY

States
{
  Spawn:
	TNT1 A 0 A_Jump(128, 11, 21)
    X051 AAAAAAAAAA 1 Bright A_FadeOut(0.1)
	Stop
    X053 AAAAAAAAAA 1 Bright A_FadeOut(0.1)
	Stop
    X054 AAAAAAAAAA 1 Bright A_FadeOut(0.1)
	Stop

}
}

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

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

//

ACTOR LegBlueGibbedGenerator : BlueGibbedGenerator
{
+CLIENTSIDEONLY
+NOBLOCKMAP
+NOGRAVITY
+NOTIMEFREEZE
States 
{ 
Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 0 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
	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 0
	Stop
	}
}

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

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

ACTOR LegendaryBlueFlyingBloodTrail
{
Scale 0.1
RenderStyle Translucent
Alpha 0.8
+CLIENTSIDEONLY
+NOTELEPORT
+NOBLOCKMAP
+DONTSPLASH
+LOWGRAVITY
+NOCLIP
+NOTIMEFREEZE
States
{
Spawn:
  BBLD ABCD 2 A_FadeOut(0.18)
  Loop
  }
}

ACTOR LegendaryBlueRocketEx
{
RenderStyle Add
Alpha 0.85
+CLIENTSIDEONLY
+NOGRAVITY
+NOTIMEFREEZE
States
{
Spawn:
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
  TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
  FBBL AAABBBCCCDDD 1 A_SpawnItem("LegendaryNewFlyingBloodTrail5",0,0,0,1)
  Loop
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
		LMKE A 0 A_JumpIfInventory("LegendaryRuneItem",1,"Smoking",AAPTR_TARGET)
		Stop
	Smoking:
		LMKE A 0
		LMKE AA 0 Bright A_SpawnItemEx("LPlayerSmoke",random(12,-12),random(12,-12),random(-16,16),0,0,random(1,3),0,128,0)
		LMKE A 1
		Stop
	}
}

ACTOR APlayerSmoke 
{
	+MISSILE
	+DONTSPLASH
	+NOBLOCKMAP
	+NOGRAVITY
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+THRUACTORS
	Scale 0.1
	RenderStyle Normal
	States {
	Spawn:
		LMKE ABCDEFGHIJKL 2 Bright A_FadeOut
		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
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)
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
	TNT1 A 0 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,128)
	TNT1 A 0 A_SpawnItemEx("EPSY2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("EPSY3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("EPSY4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 0 A_SpawnItemEx("EPSY5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
	TNT1 A 0 A_SpawnItemEx("EPSY6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
    TNT1 A 1
    Stop
  }
}
