Actor FlySpawner
{
  +NoClip
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump(64, "Done")
    TNT1 A 0 A_PlaySoundEx ("Flies", "SoundSlot6", 1, -1)
    TNT1 AAAAAAA 2 A_CustomMissile("FlyDecor", 32, 0, random (0, 360), 2, random (-40, 40))
  Done:
    TNT1 A -1
    Loop
  }
}


Actor FlyDecor
{
  Radius 1
  Height 1
  Speed 3
  Projectile
  +NoClip
  +DontSplash
  ReactionTime 4
  Scale 0.6
  States
  {
  Spawn:
    SFLY AB 2 ThrustThingZ(0, random (-1, 1), random (1, 0), 1)
    SFLY A 0 A_CountDown
    Loop
  Death:
    SFLY A 2 A_CustomMissile("FlyDecor", 0, 0, random (-40, 40))
    Stop
  }
}

Actor DeadIRMarine replaces DeadMarine
{
  States
  {
  Spawn:
    PLAY N 35
    PLAY N 0 A_SpawnItemEx("FlySpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    PLAY N -1
    Stop
  }
}

Actor GibbedIRMarine replaces GibbedMarine
{
  States
  {
  Spawn:
    PLAY W 35
    PLAY W 0 A_SpawnItemEx("FlySpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    PLAY W -1
    Stop
  }
}

Actor GibbedIRMarineExtra : GibbedIRMarine replaces GibbedMarineExtra
{
  States
  {
  Spawn:
    PLAY W 35
    PLAY W 0 A_SpawnItemEx("FlySpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    PLAY W -1
    Stop
  }
}

Actor IRExplosiveBarrel Replaces ExplosiveBarrel
{
  Health 50
  Radius 10
  Height 34
  +Solid
  +Shootable
  +NoBlood
  +ActivateMCross
  +DontGib
  +NoIceDeath
  +OldRadiusDmg
  DamageType "BarrelExp"
  DeathSound "sfx/sboom"
  Obituary "$OB_BARREL"
  States
  {
  Spawn:
    BAR1 AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMM 1 A_SpawnItemEx("BarrelParticle", Random(0, 4), 0, Random(32, 34), (0.1)*Random(2, 15), 0, (0.1)*Random(5, 20), Random(0, 360), 128, 253)
    Loop
  Death:
	BEXP C 2 BRIGHT
    TNT1 A 0 A_PlaySound("weapons/rocklx")
	TNT1 A 0 A_AlertMonsters
   	TNT1 A 0 A_Explode(125, 128, 1, 1, 64)		
	TNT1 F 0 A_SpawnItemEx("BarrelExplosionFlash")
    TNT1 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0 A_SpawnItemEx("BarrelExpFlare",0,0,0,random(-6,6),0,random(-2,6),random(0,360),0,16)
	TNT1 F 0 A_SpawnItemEx("BarrelShockWave")
	TNT1 F 0 A_SpawnItemEx("BarrelExp")
	TNT1 FFFFFFF 0 A_CustomMissile("BarrelExplosionFlame",0,0,random(0,360),2,random(-60,60))
	TNT1 F 1 A_CustomMissile("BarrelExplosionFlame",0,0,random(0,360),2,random(-60,60))
	TNT1 FFFFFFF 0 A_CustomMissile("BarrelExplosionFlame",0,0,random(0,360),2,random(-60,60))
	TNT1 F 1 A_CustomMissile("BarrelExplosionFlame",0,0,random(0,360),2,random(-60,60))
	TNT1 FFFFFFF 0 A_CustomMissile("BarrelExplosionFlame",0,0,random(0,360),2,random(-60,60))
	TNT1 F 1 A_CustomMissile("BarrelExplosionFlame",0,0,random(0,360),2,random(-60,60))
	TNT1 FFFFFFF 0 A_CustomMissile("BarrelExplosionFlame",0,0,random(0,360),2,random(-60,60))
    TNT1 F 1 A_CustomMissile("BarrelExplosionFlame",0,0,random(0,360),2,random(-60,60))
	BEXP D 2 BRIGHT
	BEXP E 2 BRIGHT
	TNT1 A 0 A_SpawnItemEx("BarrelShell", 0,0,0,0,0,0)
	TNT1 A 1050 A_BarrelDestroy
	TNT1 A 5 A_Respawn
    Stop
  }
}


Actor BarrelShell
{
  RenderStyle Normal
  States
  {
  Spawn:
    BEXP RSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRST 2 BRIGHT
	TNT1 A 1 A_SpawnItemEx("BarrelShell2",0,0,0,0,0,0)
    BEXP RSTRSTRSTRST 1 A_Fadeout(0.1)
    Stop
  }
}

Actor BarrelShell2
{
  RenderStyle Normal
  States
  {
  Spawn:
    BEXP U -1
    Stop
  }
}

Actor BarrelParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +LowGravity
  +DontSplash
  +ForceXYBillboard
  RenderStyle Add
  Scale 0.03
  States
  {
  Spawn:
    SPKG A 1 Bright A_FadeOut(0.04)
    Loop
  }
}

ACTOR BarrelExp
{
	Radius 8
	Height 32
	Damage (5)
	Scale 3
	RENDERSTYLE Add
	Alpha 1.0
	DamageType HRocket
	DamageType LRocket
	PROJECTILE
	+Randomize
	+Ripper
	+NoClip
	states
	{
	Spawn:
		MISX A 0
		NULL A 0 Radius_Quake(3, 20, 0, 3, 0)
		NULL A 0 Radius_Quake(1, 35, 0, 8, 0)
		MISX F 3 BRIGHT A_Explode(160,160)
		MISX G 3 BRIGHT A_RadiusThrust(320,80)
		MISX BBBBB 0 A_CustomMissile("BarrelExplosionSmoke",0,0,random(0,360),2,random(-45,90))
		MISX H 3 BRIGHT A_RadiusThrust(640,40)
		MISX CCCCC 0 A_CustomMissile("BarrelExplosionSmoke",0,0,random(0,360),2,random(-45,90))
		MISX I 2 BRIGHT A_FadeOut(0.15)
		MISX DDDDD 0 A_CustomMissile("BarrelExplosionSmoke",0,0,random(0,360),2,random(-45,90))
		MISX I 2 BRIGHT A_FadeOut(0.15)
		MISX EEEEE 0 A_CustomMissile("BarrelExplosionSmoke",0,0,random(0,360),2,random(-45,90))
		MISX J 4 BRIGHT A_FadeOut(0.15)
		MISX FFFFF 0 A_CustomMissile("BarrelExplosionSmoke",0,0,random(0,360),2,random(-45,90))
		MISX K 4 BRIGHT A_FadeOut(0.15)
		NULL AAAAAAAAAAAAAAAAAAAA 1 A_CustomMissile("BarrelExplosionSmoke",0,0,random(0,360),2,random(-45,90))
		Stop
	}
}

ACTOR BarrelExplosionSmoke
{
	Radius 1
	Height 2
	Speed 1
	Projectile
	-NOGRAVITY
	+CLIENTSIDEONLY
	+NOINTERACTION
	Gravity 0.005
	BounceFactor 0.5
	RenderStyle Translucent
	Alpha 0.05
	Scale 1.25
	States
	{
	Spawn:
		NULL A 0
		NULL A 0 A_CheckSight("Death")
		SMKE A 0 A_Jump(128,1)
		SMKE A 0 A_Jump(256,"A","B","C","D","E","F")
		SMKE A 0 A_Jump(256,"DA","DB","DC","DD","DE","DF")
	A:
		SMKE AAAAAAAAAA 1 A_Fadein(0.02)
		SMKE AAAAAAAAAAAAAAAAAAAA 1 A_Fadeout(0.005)
		SMKE A 1 A_Fadeout(0.001)
		Wait
	B:
		SMKE BBBBBBBBBB 1 A_Fadein(0.02)
		SMKE BBBBBBBBBBBBBBBBBBBB 1 A_Fadeout(0.005)
		SMKE B 1 A_Fadeout(0.001)
		Wait
	C:
		SMKE CCCCCCCCCC 1 A_Fadein(0.02)
		SMKE CCCCCCCCCCCCCCCCCCCC 1 A_Fadeout(0.005)
		SMKE C 1 A_Fadeout(0.001)
		Wait
	D:
		SMKE DDDDDDDDDD 1 A_Fadein(0.02)
		SMKE DDDDDDDDDDDDDDDDDDDD 1 A_Fadeout(0.005)
		SMKE D 1 A_Fadeout(0.001)
		Wait
	E:
		SMKE EEEEEEEEEE 1 A_Fadein(0.02)
		SMKE EEEEEEEEEEEEEEEEEEEE 1 A_Fadeout(0.005)
		SMKE E 1 A_Fadeout(0.001)
		Wait
	F:
		SMKE FFFFFFFFFF 1 A_Fadein(0.02)
		SMKE FFFFFFFFFFFFFFFFFFFF 1 A_Fadeout(0.005)
		SMKE F 1 A_Fadeout(0.001)
		Wait
	DA:
		SMKB AAAAAAAAAA 1 A_Fadein(0.02)
		SMKB AAAAAAAAAAAAAAAAAAAA 1 A_Fadeout(0.005)
		SMKB A 1 A_Fadeout(0.001)
		Wait
	DB:
		SMKB BBBBBBBBBB 1 A_Fadein(0.02)
		SMKB BBBBBBBBBBBBBBBBBBBB 1 A_Fadeout(0.005)
		SMKB B 1 A_Fadeout(0.001)
		Wait
	DC:
		SMKB CCCCCCCCCC 1 A_Fadein(0.02)
		SMKB CCCCCCCCCCCCCCCCCCCC 1 A_Fadeout(0.005)
		SMKB C 1 A_Fadeout(0.001)
		Wait
	DD:
		SMKB DDDDDDDDDD 1 A_Fadein(0.02)
		SMKB DDDDDDDDDDDDDDDDDDDD 1 A_Fadeout(0.005)
		SMKB D 1 A_Fadeout(0.001)
		Wait
	DE:
		SMKB EEEEEEEEEE 1 A_Fadein(0.02)
		SMKB EEEEEEEEEEEEEEEEEEEE 1 A_Fadeout(0.005)
		SMKB E 1 A_Fadeout(0.001)
		Wait
	DF:
		SMKB FFFFFFFFFF 1 A_Fadein(0.02)
		SMKB FFFFFFFFFFFFFFFFFFFF 1 A_Fadeout(0.005)
		SMKB F 1 A_Fadeout(0.001)
		Wait
	Death:
		NULL A 0
		Stop
	}
}

ACTOR BarrelExplosion1
{
	Radius 1
	Height 2
	Damage 5
	RenderStyle Add
	Alpha 0.5
	DamageType Fire
	Projectile
	+RANDOMIZE
	+RIPPER
	+NOCLIP
	+DONTSPLASH
	+CLIENTSIDEONLY
	Obituary "$OB_MPROCKET"
	States
	{
	Spawn:
		EXP1 A 2 Bright
		EXP1 BCDEFGHIJKLMNOPQQRRSS 1 Bright A_Fadeout(0.02)
		Stop
	}
}

ACTOR BarrelExpFlare
{
	Mass 5
	Radius 1
	Height 2
	Speed 6
	RenderStyle Add
	Scale 0.2
	Gravity 0.25
	Projectile
	-NOGRAVITY
	+RANDOMIZE
	+CLIENTSIDEONLY
	+BOUNCEONACTORS
	+HEXENBOUNCE
	BounceFactor 0.5
	States
	{
	Spawn:
		EMBR A 1 Bright A_Fadeout(0.05)
		Wait
	}
}

ACTOR BarrelExplosionFlash
{
	Radius 1
	Height 2
	Scale 3
	Projectile
	+CLIENTSIDEONLY
	+NOINTERACTION
	RenderStyle Add
	States
	{
	Spawn:
		SPKO AA 0 A_Jump(256,"E","F","K","L")
	E:
		SPKO E 1 BRIGHT A_Fadeout(0.1)
		Wait
	F:
		SPKO F 1 BRIGHT A_Fadeout(0.1)
		Wait
	K:
		SPKO K 1 BRIGHT A_Fadeout(0.1)
		Wait
	L:
		SPKO L 1 BRIGHT A_Fadeout(0.1)
		Wait
	}
}

ACTOR BarrelShockWave
{
	Radius 1
	Height 2
	RenderStyle Add
	Alpha 0.05
	Scale 2
	Projectile
	+CLIENTSIDEONLY
	+NOINTERACTION
	States
	{
	Spawn:
		SHOK AA 0 A_Jump(128,"SpawnB")
		SHOK ACEGIKMOQR 1
		Stop
	SpawnB:
		SHOK BDFHJLNPQR 1
		Stop
	}
}

ACTOR BarrelExplosionFlame
{
	Radius 1
	Height 1
	Speed 8
	Scale 0.8
	PROJECTILE
	+ClientSideOnly
	+NoInteraction
	RENDERSTYLE Add
	Translation "174:176=[255,32,1]:[255,0,0]"
	Alpha 0.4
	states
	{
	Spawn:
		BFGV A 0
		BFGV A 0 A_Jump(256,"A","B","C","D")
	A:
		RFL1 ACEGIKM 2 BRIGHT A_FadeOut(0.05)
		RFL2 AC 2 BRIGHT A_FadeOut(0.05)
		Wait
	B:
		RFL1 BDFHJL 2 BRIGHT A_FadeOut(0.05)
		RFL2 BD 2 BRIGHT A_FadeOut(0.05)
		Wait
	C:
		RFL1 NPRTVWZ 2 BRIGHT A_FadeOut(0.05)
		RFL2 EG 2 BRIGHT A_FadeOut(0.05)
		Wait
	D:
		RFL1 OQSUWY 2 BRIGHT A_FadeOut(0.05)
		RFL2 FH 2 BRIGHT A_FadeOut(0.05)
		Wait
	}
}

Actor TiberRedTorch : RedTorch Replaces RedTorch
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("RedTorchFlare", 0, 0, 55, 0, 0, 0, 0, 128, 0)
   TNT1 A 0 A_CheckSight(4)
   TNT1 A 0 A_Jump(128, 2)
   TRCH A 5 A_SpawnItemEx("RedTorchFire1", Random(-2, 2), Random(-2, 2), Random(53, 55), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   TRCH A 5 A_SpawnItemEx("RedTorchFire2", Random(-2, 2), Random(-2, 2), Random(53, 55), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   TRCH A 5
   Goto Spawn
 }
}

Actor TiberShortRedTorch : ShortRedTorch Replaces ShortRedTorch
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("RedTorchFlare", 0, 0, 30, 0, 0, 0, 0, 128, 0)
   TNT1 A 0 A_CheckSight(4)
   TNT1 A 0 A_Jump(128, 2)
   STCB A 5 A_SpawnItemEx("RedTorchFire1", Random(-2, 2), Random(-2, 2), Random(28, 30), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   STCB A 5 A_SpawnItemEx("RedTorchFire2", Random(-2, 2), Random(-2, 2), Random(28, 30), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   STCB A 5
   Goto Spawn
 }
}

Actor RedTorchFlare
{
 +NoGravity
 +NoInteraction
 +NoBlockmap
 +ForceXYBillboard
 +CLIENTSIDEONLY
 RenderStyle Add
 Scale 0.4
 Alpha 0.6
 States
 {
  Spawn:
   RFLR A 5 Bright
   RFLR AAAAAAAAAA 1 Bright A_Fadeout(0.1)
   Stop
 }
}

Actor RedTorchFire1
{
 +NoGravity
 +NoInteraction
 +NoBlockmap
 +NoTeleport
 +ForceXYBillboard
 +CLIENTSIDEONLY
 Radius 0
 Height 0
 RenderStyle Add
 Scale 0.175
 States
 {
  Spawn:
   FIR1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
   Stop
 }
}

Actor RedTorchFire2 : RedTorchFire1
{
 States
 {
  Spawn:
   FIR2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
   Stop
 }
}
 
Actor TiberBlueTorch : BlueTorch Replaces BlueTorch
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("BlueTorchFlare", 0, 0, 55, 0, 0, 0, 0, 128, 0)
   TNT1 A 0 A_CheckSight(4)
   TNT1 A 0 A_Jump(128, 2)
   TRCH A 5 A_SpawnItemEx("BlueTorchFire1", Random(-2, 2), Random(-2, 2), Random(53, 55), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   TRCH A 5 A_SpawnItemEx("BlueTorchFire2", Random(-2, 2), Random(-2, 2), Random(53, 55), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   TRCH A 5
   Goto Spawn
 }
}

Actor TiberShortBlueTorch : ShortBlueTorch Replaces ShortBlueTorch
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("BlueTorchFlare", 0, 0, 30, 0, 0, 0, 0, 128, 0)
   TNT1 A 0 A_CheckSight(4)
   TNT1 A 0 A_Jump(128, 2)
   STCB A 5 A_SpawnItemEx("BlueTorchFire1", Random(-2, 2), Random(-2, 2), Random(28, 30), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   STCB A 5 A_SpawnItemEx("BlueTorchFire2", Random(-2, 2), Random(-2, 2), Random(28, 30), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   STCB A 5
   Goto Spawn
 }
}

Actor BlueTorchFire1 : RedTorchFire1
{
 States
 {
  Spawn:
   FIB1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
   Stop
 }
}

Actor BlueTorchFire2 : BlueTorchFire1
{
 States
 {
  Spawn:
   FIB2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
   Stop
 }
}

Actor BlueTorchFlare : RedTorchFlare
{
 States
 {
  Spawn:
   BFLR A 5 Bright
   BFLR AAAAAAAAAA 1 Bright A_Fadeout(0.1)
   Stop
 }
}

Actor TiberGreenTorch : GreenTorch Replaces GreenTorch
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("GreenTorchFlare", 0, 0, 55, 0, 0, 0, 0, 128, 0)
   TNT1 A 0 A_CheckSight(4)
   TNT1 A 0 A_Jump(128, 2)
   TRCH A 5 A_SpawnItemEx("GreenTorchFire1", Random(-2, 2), Random(-2, 2), Random(53, 55), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   TRCH A 5 A_SpawnItemEx("GreenTorchFire2", Random(-2, 2), Random(-2, 2), Random(53, 55), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   TRCH A 5
   Goto Spawn
 }
}

Actor TiberShortGreenTorch : ShortGreenTorch Replaces ShortGreenTorch
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("GreenTorchFlare", 0, 0, 30, 0, 0, 0, 0, 128, 0)
   TNT1 A 0 A_CheckSight(4)
   TNT1 A 0 A_Jump(128, 2)
   STCB A 5 A_SpawnItemEx("GreenTorchFire1", Random(-2, 2), Random(-2, 2), Random(28, 30), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   STCB A 5 A_SpawnItemEx("GreenTorchFire2", Random(-2, 2), Random(-2, 2), Random(28, 30), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   STCB A 5
   Goto Spawn
 }
}

Actor GreenTorchFire1 : RedTorchFire1
{
 States
 {
  Spawn:
   FIG1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
   Stop
 }
}

Actor GreenTorchFire2 : GreenTorchFire1
{
 States
 {
  Spawn:
   FIG2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
   Stop
 }
}


Actor GreenTorchFlare : RedTorchFlare
{
 States
 {
  Spawn:
   GFLR A 5 Bright
   GFLR AAAAAAAAAA 1 Bright A_Fadeout(0.1)
   Stop
 }
}

Actor TiberBurningBarrel : BurningBarrel Replaces BurningBarrel
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("BarrelFlare", 0, 0, 30, 0, 0, 0, 0, 128, 0)
   TNT1 A 0 A_CheckSight(4)
   TNT1 A 0 A_Jump(128, 2)
   FCAN A 5 A_SpawnItemEx("BarrelFire1", Random(-6, 6), Random(-6, 6), Random(24, 28), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   FCAN A 5 A_SpawnItemEx("BarrelFire2", Random(-6, 6), Random(-6, 6), Random(24, 28), 0.001 * Random(10, 200), 0.001 * Random(10, 200), 0.001 * Random(1000, 2400), 0, 128, 0)
   Goto Spawn
   FCAN A 5
   Goto Spawn
 }
}

 

Actor BarrelFlare : RedTorchFlare
{
 Scale 0.45
 RenderStyle Add
 Alpha 1
 States
 {
  Spawn:
   YFLR A 5 Bright
   YFLR AAAAAAAAAA 1 Bright A_Fadeout(0.1)
   Stop
 }
}

Actor BarrelFire1
{
 +NoGravity
 +NoInteraction
 +NoBlockmap
 +NoTeleport
 +ForceXYBillboard
 Radius 0
 Height 0
 RenderStyle Add
 Scale 0.185
 States
 {
  Spawn:
   FIY1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
   Stop
 }
}

Actor BarrelFire2
{
 +NoGravity
 +NoInteraction
 +NoBlockmap
 +NoTeleport
 +ForceXYBillboard
 Radius 0
 Height 0
 RenderStyle Add
 Scale 0.185
 States
 {
  Spawn:
   FIY2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
   Stop
 }
}

ACTOR NewTeleportFog : TeleportFog replaces TeleportFog
{
Scale 0.75
Alpha 0.75
States
{
Spawn:
  TFOG ABABC 4 Bright A_SpawnItem("TeleportSFXSpawner",0,0,0,0)
  TFOG DEF 6 Bright
  Stop
  }
}

ACTOR TeleportFogLightning
{
RenderStyle Add
Scale 0.16
Alpha 0.5
+MISSILE
+NOGRAVITY
+NOBLOCKMAP
+NOINTERACTION
+NOTELEPORT
+DONTSPLASH
+CLIENTSIDEONLY
-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)
	GRL1 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
	GRL2 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
	GRL3 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
	GRL4 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
Death:
	"----" A 1 Bright
	Stop
	}
}

ACTOR TeleportFogSmoke
{
Speed 0
Scale 0.5
Alpha 0.65
PROJECTILE
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+NOGRAVITY
+MISSILE
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NOINTERACTION
+NOCLIP
States
{
Spawn:
  TNT1 A 0
  TFOG ABABCDEF 3 Bright A_FadeOut(0.025)
  Stop
  }
}

ACTOR TeleportSFXSpawner
{
+CLIENTSIDEONLY
+NOGRAVITY
States
{
Spawn:
	TNT1 A 0
    TNT1 A 0 Bright A_SpawnItemEx("TeleportFogSmoke",0,0,15,Random(1,-1),Random(1,-1),Random(1,-1),0,128,0)		
	TNT1 A 2 Bright A_SpawnItemEx("TeleportFogLightning",0,0,Random(20,30),0,0,0,0,128,0)
    TNT1 A 0 Bright A_SpawnItemEx("TeleportFogSmoke",0,0,15,Random(2,-2),Random(2,-2),Random(2,-2),0,128,0)		
	TNT1 A 3 Bright A_SpawnItemEx("TeleportFogLightning",0,0,Random(20,30),0,0,0,0,128,0) 
    TNT1 A 0 Bright A_SpawnItemEx("TeleportFogSmoke",0,0,15,Random(1,-1),Random(1,-1),Random(1,-1),0,128,0)
	TNT1 A 6 Bright A_SpawnItemEx("TeleportFogLightning",0,0,Random(20,30),0,0,0,0,128,0)
	TNT1 AAAAA 8 Bright A_SpawnItemEx("TeleportFogLightning",0,0,Random(20,30),0,0,0,0,128,0) 	
    Stop
    }
}

//==================
// Item Respawn Fog
//==================

ACTOR NewItemFog : ItemFog replaces ItemFog
{
RenderStyle Add
States
{
Spawn:
  IFOG ABABCDE 4 Bright A_SpawnItem("ItemSFXSpawner",0,0,0,0)
  Stop
  }
}

ACTOR ItemFogLightning : TeleportFogLightning
{
Scale 0.06
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)
	BLL1 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
	BLL2 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
	BLL3 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
	BLL4 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
Death:
	"----" A 1 Bright
	Stop
	}
}

ACTOR ItemFogSmoke
{
Speed 0
Scale 0.25
PROJECTILE
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+NOGRAVITY
+MISSILE
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NOINTERACTION
+NOCLIP
States
{
Spawn:
  TNT1 A 0
  IFOG ABABCDE 3 Bright A_FadeOut(0.025)
  Stop
  }
}

ACTOR ItemSFXSpawner
{
+CLIENTSIDEONLY
+NOGRAVITY
States
{
Spawn:
	TNT1 A 0
	TNT1 A 0 Bright A_SpawnItemEx("ItemFogSmoke",0,0,10,Random(1,-1),Random(1,-1),Random(1,-1),0,128,0)
	TNT1 A 2 Bright A_SpawnItemEx("ItemFogLightning",Random(4,-4),Random(4,-4),Random(10,20),0,0,0,0,128,0)
	TNT1 A 0 Bright A_SpawnItemEx("ItemFogSmoke",0,0,10,Random(1,-1),Random(1,-1),Random(1,-1),0,128,0)
	TNT1 A 3 Bright A_SpawnItemEx("ItemFogLightning",Random(4,-4),Random(4,-4),Random(10,20),0,0,0,0,128,0) 
	TNT1 A 6 Bright A_SpawnItemEx("ItemFogLightning",Random(4,-4),Random(4,-4),Random(10,20),0,0,0,0,128,0) 
	TNT1 AAAAA 8 Bright A_SpawnItemEx("ItemFogLightning",Random(4,-4),Random(4,-4),Random(10,20),0,0,0,0,128,0) 	
    Stop
    }
}

ACTOR MissileExpSmoke
{ 
    Scale 0.65
    Alpha 0.6
    RenderStyle Normal
    +NOINTERACTION
    +NOGRAVITY
    +THRUGHOST
    +DONTSPLASH
    States
    {
    Spawn:
      SMKE A 0
      SMKE A 0 A_FadeOut(0.1)
      SMKE A 0 A_Jump(255,"SmokeA","SmokeB","SmokeC","SmokeD","SmokeE","SmokeF","SmokeG","SmokeH","SmokeI","SmokeJ","SmokeK")
    SmokeA:
      SMKE A 0 A_FadeOut(0.025)
      SMKE A 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeB:
      SMKE A 0 A_FadeOut(0.025)
      SMKE B 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeC:
      SMKE A 0 A_FadeOut(0.025)
      SMKE C 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeD:
      SMKE A 0 A_FadeOut(0.025)
      SMKE D 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeE:
      SMKE A 0 A_FadeOut(0.025)
      SMKE E 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeF:
      SMKE A 0 A_FadeOut(0.025)
      SMKE F 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeG:
      SMKE A 0 A_FadeOut(0.025)
      SMKE G 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeH:
      SMKE A 0 A_FadeOut(0.025)
      SMKE H 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeI:
      SMKE A 0 A_FadeOut(0.025)
      SMKE I 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeJ:
      SMKE A 0 A_FadeOut(0.025)
      SMKE J 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    SmokeK:
      SMKE A 0 A_FadeOut(0.025)
      SMKE A 3 A_SetScale(ScaleX +0.005, ScaleY +0.005)
      Loop
    }
}

ACTOR DeathHeadSmoke : MissileExpSmoke
{ 
    Scale 1.25
    Alpha 0.5
}

ACTOR DeathHeadExploder
{ 
    +NOINTERACTION
    +FORCERADIUSDMG
    +NOGRAVITY
    ReactionTime 10
    States
    {
    Spawn:
    TNT1 A 0
    TNT1 A 0 A_Countdown
    TNT1 A 0 A_Explode(25,192,0,1)
    TNT1 A 2 A_SpawnItemEx("DeathHeadExp", random(28,-28), random(28,-28), random(28,-28), 0, 0, 0, 0, 128, 0)
    Loop
    Death:
    TNT1 A 1
    Stop
    }
}

ACTOR DeathHeadExp
{
  Radius 1
  Height 1
  +NOGRAVITY
  +NOINTERACTION
  +THRUGHOST
  +DONTSPLASH
  Renderstyle Add
  Scale 3.25
  states
  {
  Spawn:
    TNT1 A 1
    TNT1 A 0 A_Jump(255,"Exp1","Exp2")
    stop
  Exp1:
    TNT1 A 0
    EXP1 ABCDEFGHIJKLMNOP 1 Bright
    Goto Death
  Exp2:
    TNT1 A 0
    EXP2 ABCDEFGHIJKLMNOP 1 Bright
    Goto Death
  Death:
    TNT1 A 1
    stop
  }
}

ACTOR DeatheadAfterboom : DeathHeadSmoke
{ 
    Scale 1
    Alpha 0.6
}

ACTOR DeathHeadAfterSmoke
{ 
    +NOINTERACTION
    +NOGRAVITY
    States
    {
    Spawn:
    TNT1 A 0
    TNT1 AAAAAA 5 A_SpawnItemEx("DeathHeadSmoke", random(25,-25), random(25,-25), random(25,-25), 0.1*random(2,3), 0.1*random(2,3), 0.1*random(2,3), random(0,360),0,0)
    Stop
    }
}

ACTOR PushkaExplode
{ 
    +NOINTERACTION
    +NOGRAVITY
    States
    {
    Spawn:
    TNT1 A 0
    TNT1 A 0 A_Quake(5, 18, 0, 328, none)
    TNT1 AA 0 A_SpawnItemEx("DeathHeadSmoke", random(35,-35), random(35,-35), random(35,-35), 0.1*random(4,6), 0.1*random(4,6), 0.1*random(3,5), random(0,360),0,0)
    TNT1 AAAA 0 A_SpawnItemEx("PushkaExploder", random(2,-2), random(2,-2), random(2,-2), random(1,-1), random(1,-1), random(1,-1), random(0,360), SXF_TRANSFERPOINTERS, 0)
    TNT1 A 1
    TNT1 A 0 A_SpawnItemEx("DeathHeadAfterSmoke",0,0,0,0,0,0,0,128,0)
    TNT1 AAAAAAA 6 A_SpawnItemEx("DeatheadAfterboom", random(20,-20), random(20,-20), random(20,-20), 0.1*random(3,4), 0.1*random(3,4), 0.1*random(2,3), random(0,360), 128, 0)
    Stop
    }
}

ACTOR PushkaExploder : DeathHeadExploder
{ 
    +NOINTERACTION
    +FORCERADIUSDMG
    +NOGRAVITY
    ReactionTime 5
    States
    {
    Spawn:
    TNT1 A 0
    TNT1 A 0 A_Countdown
    TNT1 A 0 A_Explode(25,192,0,1)
    TNT1 A 2 A_SpawnItemEx("DeathHeadExp", random(28,-28), random(28,-28), random(28,-28), 0, 0, 0, 0, 128, 0)
    Loop
    Death:
    TNT1 A 1
    Stop
    }
}

ACTOR PushkaExplodeSmall : PushkaExplode
{ 
    +NOINTERACTION
    +NOGRAVITY
    States
    {
    Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("DeathHeadSmoke", random(16,-16), random(16,-16), random(16,-16), 0.1*random(4,6), 0.1*random(4,6), 0.1*random(3,5), random(0,360),0,0)
    TNT1 AAA 0 A_SpawnItemEx("PushkaExploder", random(4,-4), random(4,-4), random(4,-4), random(1,-1), random(1,-1), random(1,-1), random(0,360), 128, 0)
    TNT1 A 1
    TNT1 A 0 A_SpawnItemEx("DeathHeadAfterSmoke",0,0,0,0,0,0,0,128,0)
    TNT1 AAAA 1 A_SpawnItemEx("DeatheadAfterboom", random(5,-5), random(5,-5), random(5,-5), 0.1*random(2,3), 0.1*random(2,3), 0.1*random(2,3), random(0,360),0,0)
    Stop
    }
}