//All fancy and gay particles

Actor ExplosionParticle2
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +NoGravity
  +DontSplash
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  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
   +GHOST
   Damage 0
  BounceFactor 0.01
    States
    {
     Spawn:
       SPKO AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.02)
        stop
     Death:
       Stop
    }
}


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.6
  RenderStyle Add
  Scale 0.035
  //Speed 2
  Speed 6
  States
  {
  Spawn:
  Death:
    SPKB A 2 Bright A_FadeOut(0.04)
    Loop
  }
}

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
{
	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 ABCDEFGHGFEDCBA 3 Bright A_SpawnItem("GreenFlareMedium",0,40)
		Stop
}
}













ACTOR DetectFloorBullet
{
 game Doom
 scale 0.4
 speed 0
 health 1
 radius 8
 height 1
 Gravity 0.9
 damage 0
 Renderstyle Translucent
 Alpha 0.95
	DamageType Blood
   +MISSILE
   +CLIENTSIDEONLY
   +NOTELEPORT
   +NOBLOCKMAP
   +FORCEXYBILLBOARD
   +NODAMAGETHRUST
   +MOVEWITHSECTOR
   -DONTSPLASH
   +DOOMBOUNCE
   BounceFactor 0.01
    States
    {
     Spawn:
	 TNT1 A 0
	 TNT1 A 5
	 Stop
	 Death:
	 XXX1 A 2000
  Stop
    }
}

ACTOR DetectCeilBullet
{
 game Doom
 scale 0.4
 speed 0
 health 1
 radius 1
 height 1
 Gravity 0.0
 damage 0
 Renderstyle Translucent
 Alpha 0.95
	DamageType Blood
   +MISSILE
   +CLIENTSIDEONLY
   +NOTELEPORT
   +NOBLOCKMAP
   +FORCEXYBILLBOARD
   +NODAMAGETHRUST
   -DONTSPLASH
   +NOGRAVITY
    States
    {
     Spawn:
	 TNT1 A 0
	 TNT1 A 0 ThrustThingZ(0,35,0,1)
	 TNT1 A 2
	 Stop
	 Death:
	 XXX1 A 2000
  Stop
    }
}



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