Actor ExplosionParticle2
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +NoGravity
  +DontSplash
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  +THRUACTORS
  RenderStyle Add
  Scale 0.08
  States
  {
  Spawn:
    SPKO A 1 Bright A_FadeOut(0.02)
    Loop
  }
}

ACTOR ExplosionParticleHeavy
{
 game Doom
 speed 9
 radius 8
 height 1
 Gravity 0.5
  RenderStyle Add
  Scale 0.06
   +MISSILE
   +CLIENTSIDEONLY
   +NOTELEPORT
   +NOBLOCKMAP
   -RIPPER
   +BLOODLESSIMPACT 
   +FORCEXYBILLBOARD
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  +DOOMBOUNCE
    +DONTSPLASH
	+THRUACTORS
   +GHOST
   Damage 0
  BounceFactor 0.01
    States
    {
     Spawn:
       SPKO AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.02)
        stop
     Death:
       Stop
    }
}

ACTOR ExplosionParticleVeryFast: ExplosionParticleHeavy
{
 game Doom
 Scale 0.05
 speed 18
 Gravity 0.9
    States
    {
     Spawn:
	   TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
       SPKO AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.02)
        stop
     Death:
	   TNT1 A 0
       Stop
    }
}


ACTOR ExplosionParticleVerySlow: ExplosionParticleHeavy
{
 game Doom
 Scale 0.05
 speed 3
 Gravity 0.2
 Scale 0.03
}


ACTOR ShrapnelParticle: ExplosionParticleHeavy
{
 speed 20
 Gravity 0.0
 +NOGRAVITY
  Scale 0.12
   radius 10
 height 10
 -DOOMBOUNCE
 Damage 0
  alpha 1.0
    States
    {
     Spawn:
       SPKO AAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.05)
        stop
     Death:
	 TNT1 A 0
       Stop
    }
}



ACTOR ShotgunParticles
{
 game Doom
 speed 8
 radius 8
 height 1
 Gravity 0.5
  RenderStyle Add
  Scale 0.02
  Alpha 0.7
   +MISSILE
   +CLIENTSIDEONLY
   +NOTELEPORT
   +NOBLOCKMAP
   -RIPPER
   +BLOODLESSIMPACT 
   +FORCEXYBILLBOARD
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
    +DONTSPLASH
   +GHOST
   +NOGRAVITY
   Damage 0
    States
    {
     Spawn:
	  TNT1 AAA 1
       SPKO AAAA 1 Bright A_FadeOut(0.02)
	   TNT1 A 0 A_ChangeFlag(NOGRAVITY, 0)
	   SPKO AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.02)
        stop
     Death:
       Stop
    }
}


ACTOR HitSpark: ExplosionParticleHeavy
{
 speed 6
  Scale 0.04
 Gravity 1.0
   +NOCLIP
    States
    {
     Spawn:
       SPKO AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.07)
        stop
     Death:
       Stop
    }
}

Actor ExplosionParticleSpawner
{
  +NoClip
  +NoBlockMap
  +NoGravity
  +Missile
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
    TNT1 A 0
        TNT1 AAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 180), 2, random (0, 180))
    TNT1 A 1
    Stop
  }
}

Actor ExplosionParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +NoGravity
  +DontSplash
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  RenderStyle Add
  Scale 0.05
  States
  {
  Spawn:
    SPKO A 1 Bright A_FadeOut(0.02)
    Loop
  }
}

Actor ExplosionParticle5
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  -NoGravity
  +LowGravity
  +DontSplash
  +DoomBounce
  +FORCEXYBILLBOARD
  BounceFactor 0.2
  RenderStyle Add
  Scale 0.04
  Speed 12
  States
  {
  Spawn:
  Death:
    SPKO A 2 Bright A_FadeOut(0.02)
    Loop
  }
}

Actor RocketParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +NoGravity
  +DontSplash
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  RenderStyle Add
  Scale 0.05
  States
  {
  Spawn:
    SPKO A 1 Bright A_FadeOut(0.06)
    Loop
  }
}

Actor BluePlasmaParticleSpawner
{
  RenderStyle Add
  Alpha 0.95
  Scale 1.1
  +NoClip
  +NoBlockMap
  +NoGravity
  +Missile
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
	TNT1 AA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random (0, 360), 2, random (50, 130))
	//TNT1 AAA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random (0, 360), 2, random (0, 360))
    TNT1 AA 0 A_CustomMissile ("PlasmaSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    PBEX A 4 BRIGHT //A_SpawnItem("BlueFlare" ,0)
    TNT1 A 1
    Stop
  }
}

Actor PlasmaParticleSpawner: BluePlasmaParticleSpawner
{
  States
  {
  Spawn:
    TNT1 AAAA 0 A_SpawnItemEx("PlasmaParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAA 0 A_CustomMissile ("PlasmaSmoke", 32, 0, random (0, 360), 2, random (0, 360))
    TNT1 A 1
    Stop
  }
}

Actor BluePlasmaParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  -NoGravity
  //+LowGravity
  +DontSplash
  +DoomBounce
  +FORCEXYBILLBOARD
  BounceFactor 0.2
  Gravity 0.8
  RenderStyle Add
  Scale 0.035
  //Speed 2
  Speed 12
  States
  {
  Spawn:
  Death:
    SPKB A 2 Bright A_FadeOut(0.04)
    Loop
  }
}

Actor BluePlasmaFire: BluePlasmaParticle
{

  +NoGravity
  -DOOMBOUNCE
  RenderStyle Add
  Scale 0.7
  Alpha 0.9
  Speed 0
  States
  {
  Spawn:
  Death:
    FIR5 ABCDEFGHIJKLMNOP 1 Bright A_FadeOut(0.04)
    Stop
  }
}

Actor BluePlasmaFireMove: BluePlasmaFire
{
  Speed 1
  Scale 0.3
}



Actor HotPlasmaGas: BluePlasmaParticle
{

  +NoGravity
  -DOOMBOUNCE
  -NOCLIP
  -NOBLOCKMAP
  Damage 1
  Damagetype Plasma
  RenderStyle Add
  Scale 0.1
  Alpha 0.9
  Speed 18
  Decal "Scorch"
  SeeSound "PLSTHRW"
  DeathSound "imp/shotx"
  Radius 8
  Height 8
  States
  {
  Spawn:
    FIR5 A 1 BRIGHT
	FIR5 BCDEFGHIJKLMNOP 1 Bright A_CustomMissile ("BluePlasmaFireMove", 0, 0, random (0, 360), 2, random (0, 360))
    Stop
Death:
    TNT1 A 0 A_Explode(15, 150, 0)
	FIR5 BCDEFGHIJKLMNOP 1 Bright A_CustomMissile ("BluePlasmaFireMove", 0, 0, random (0, 360), 2, random (0, 360))
    Stop
  }
}


Actor BluePlasmaFireNonStatic: BluePlasmaFire
{
Speed 2
Alpha 0.5
}

Actor PlasmaParticleX
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  -NoGravity
  +DontSplash
  +DoomBounce
  +FORCEXYBILLBOARD
  BounceFactor 0.1
  Gravity 0.4
  RenderStyle Add
  Scale 1.0
  //Speed 2
  Speed 2
  States
  {
  Spawn:
  SPKB A 1 Bright
  TNT1 A 0 A_ChangeFlag(DOOMBOUNCE, 0)
  Goto Stand
  Stand:
    SPKB B 2 Bright A_FadeOut(0.06)
    Loop
 Death:
 TNT1 A 1
 TNT1 A 0
 Stop
	
  }
}


Actor BigPlasmaParticleX: PlasmaParticleX
{
  Scale 2.0
  Speed 3
}

Actor PlasmaParticle: BluePlasmaParticle

{
  States
  {
  Spawn:
  Death:
    SPKG A 2 Bright A_FadeOut(0.02)
    Loop
  }
}



ACTOR RailPuff: BulletPuff
{
  renderstyle Translucent
  alpha 0.9
  Scale 1.3
  +NOBLOCKMAP
  +NOGRAVITY
  +NOEXTREMEDEATH
  states
  {
  Spawn:
  Death:
  Xdeath:
  Melee:
    TNT1 A 0
    TNT1 AAAA 0 A_SpawnItemEx("BluePlasmaParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	//EXPL AAAA 0 A_CustomMissile ("SmallSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    TNT1 ABCDE 2 BRIGHT A_SpawnItem("BlueFlare" ,0)
    Stop
  }
}

ACTOR ShortRailPuff: BulletPuff
{
  renderstyle Translucent
  alpha 0.9
  Scale 1.6
  +NOBLOCKMAP
  +NOGRAVITY
  +NOEXTREMEDEATH
  +PUFFONACTORS
  Damagetype SSG
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 AAA 0 A_SpawnItemEx("BluePlasmaParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    PLSE ABCDE 5 BRIGHT A_SpawnItem("BlueFlareMedium",0,0)
    Stop
  }
}

ACTOR PlasmaPuff: BulletPuff
{
  RenderStyle Add
  Alpha 0.95
  +NOBLOCKMAP
  +NOGRAVITY
  +CLIENTSIDEONLY
  Scale 1.1
  states
  {
  Spawn:
    PBEX A 0 BRIGHT// A_SpawnItem("BlueFlare",0,0)
		TNT1 AA 0 A_CustomMissile ("PlasmaParticleX", 12, 0, random (0, 360), 2, random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BluePlasmaParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	//EXPL AAAA 0 A_CustomMissile ("SmallSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    PLSE ABCDE 2 BRIGHT A_SpawnItem("BlueFlare" ,0)
    stop
  }
}

ACTOR RailgunPuff: BulletPuff
{
  RenderStyle Add
  Alpha 0.95
  +NOBLOCKMAP
  +NOGRAVITY
  +CLIENTSIDEONLY
  Scale 1.1
  states
  {
  Spawn:
    PBEX A 0 BRIGHT// A_SpawnItem("BlueFlare",0,0)
		TNT1 AA 0 A_CustomMissile ("PlasmaParticleX", 12, 0, random (0, 360), 2, random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BluePlasmaParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	//EXPL AAAA 0 A_CustomMissile ("SmallSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    PLSE ABCDE 2 BRIGHT A_SpawnItem("BlueFlare" ,0)
    stop
  }
}

ACTOR EmptyClipSpawn
{
	Speed 20
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 1 A_CustomMissile("EmptyClip",random(0,-5),0,random(85,95),2,1)
		Stop
	}
}

ACTOR PlasmaFog
{
    Radius 1
    Height 1
	Alpha 0.7
	RenderStyle Add
	Speed 3
	Scale 0.5
	Gravity 0
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+FORCEXYBILLBOARD
    +CLIENTSIDEONLY
    States
    {
    Spawn:
        BFOG ABCDEF 2 BRIGHT A_SpawnItem("GreenFlareMedium",0,0)
        Goto Death
	Death:
	    BFOG G 2 BRIGHT// A_SpawnItem("BlueFlareMedium",0,0)
		Stop
    }
}


ACTOR BarrelParticle
{
    Radius 8
    Height 8
    Scale 0.6
	Speed 7
	Mass 1
    gravity 0.5
	BounceFactor 0.6
	+DOOMBOUNCE
	+MISSILE
    +MOVEWITHSECTOR
    +CLIENTSIDEONLY
    +NOBLOCKMAP
    +NOTELEPORT
    States
    {
    Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
		TNT1 A 0 //A_SpawnItemEx("AltSmoke", 0, 0)
		BPRT ABCDEFGH 4
        Loop

	Death:
        BPRT GGGGGGGGGGGGG 20 //A_CustomMissile ("PlasmaSmoke", 1, 0, random (0, 360), 2, random (0, 160)) 
        Stop
    }
}


ACTOR Shrapnel: BarrelParticle
{
Scale 0.02
RenderStyle Add
Gravity 0.8
Speed 13
-DOOMBOUNCE
    States
    {
    Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
		LENY AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("AltSmoke", 0, 0)
        Stop
    Death:
        TNT1 A 0
        Stop
    }
}

Actor GlassPart : BarrelParticle
{
bouncefactor 0.2
speed 6
seesound ""
renderstyle translucent
alpha 0.4
scale 0.2
translation "0:255=4:4"
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID(0,390)
		BPRT ABCDEFGH 2
		loop
   Death:
   	TNT1 A 0
   	TNT1 A 0 A_jump(255,"death1","death2","death3","death4","death5","death6")
Death1:
      BPRT A 1 A_Fadeout(0.001)
      loop
Death2:
      BPRT C 1 A_Fadeout(0.001)
      loop
Death3:
      BPRT E 1 A_Fadeout(0.001)
      loop
Death4:
      BPRT G 1 A_Fadeout(0.001)
      loop
Death5:
      BPRT B 1 A_Fadeout(0.001)
      loop
Death6:
      BPRT D 1 A_Fadeout(0.001)
      loop
   }
}

Actor WoodParticle : BarrelParticle
{
Scale 1.3
bouncefactor 0.5
speed 8
seesound ""
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID(0,390)
		WOOD ABCD 2
		loop
   Death:
   	TNT1 A 0
      WOOD B 300
      Stop
   }
}


ACTOR TeleportationFog: TeleportFog Replaces TeleportFog
{
+NOCLIP
+THRUACTORS
	States
	{
	Spawn:
	TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 40, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
		TFOG A 3 BRIGHT
		//TNT1 A 0 A_spawnItem("TeleportSecurity")
		TFOG BCDE 3 BRIGHT A_SpawnItem("GreenFlareMedium",0,40)
		TFOG FGHGFEDCBA 3 Bright A_SpawnItem("GreenFlareMedium",0,40)
		TNT1 A 0 A_NoBlocking
		Stop
}
}


















ACTOR SparkX: ExplosionParticleHeavy
{
 speed 10
 Gravity 0.8
 -NOGRAVITY
  Scale 0.05
   radius 1
 height 1
 +DOOMBOUNCE
 +GHOST
 BounceFactor 0.5
 Damage 0
  alpha 1.0
    States
    {
     Spawn:
       SPKO AAA 1 BRIGHT
	   SPKO AAAAAAA 1 Bright A_FadeOut(0.20)
        stop
     Death:
	 TNT1 A 0
       Stop
    }
}


ACTOR SparkXNoModel: SparkX
{
 Gravity 0.7
}










ACTOR MetalShard1: BarrelParticle
{
    Scale 0.2
	Speed 7
	Gravity 0.5
	BounceFactor 0.4
    States
    {
    Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
		JNK1 ABCDEFGH 3
        Loop

	Death:
        JNK1 H 200
        Stop
    }
}


ACTOR MetalShard2: MetalShard1
{
    States
    {
    Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
		JNK2 ABCDEFGH 3
        Loop

	Death:
        JNK2 H 200
        Stop
    }
}


ACTOR MetalShard3: MetalShard1
{
    States
    {
    Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
		JNK3 ABCDEFGH 3
        Loop

	Death:
        JNK3 H 200
        Stop
    }
}