actor RGUWeapon : Weapon
{
  Obituary "%o was killed by %k."
  inventory.pickupmessage "Snagged an item that doesn't exist!"
  weapon.selectionorder 500
  //weapon.kickback 35
  +NOAUTOFIRE
  +NOALERT
  +NOLMS
  +NOAUTOAIM
  +NOEXTREMEDEATH
  +UNDROPPABLE
  scale 0.15
  Weapon.BobSpeed 2.1
  Weapon.BobStyle Alpha
}

actor FragGrenade
{
  Obituary "%o caught %k's hot potato."
  radius 5
  height 5
  speed 25
  damage (5)
  PROJECTILE
  -NOGRAVITY
  +NOEXTREMEDEATH
  +FORCERADIUSDMG
  +CANBOUNCEWATER
  +BOUNCEONACTORS
  +ALLOWBOUNCEONACTORS
  +ROCKETTRAIL
  +FORCEXYBILLBOARD
  -NOTELEPORT
  -TELESTOMP
  +THRUSPECIES
  species "Player"
  Scale 0.25
  gravity 0.4
  bouncefactor 0.4
  wallbouncefactor 0.5
  ReactionTime 2
  bouncetype "hexen"
  bouncesound "grenade/lob"
  WallBounceSound "grenade/lobwall"
  DamageType "NormalExplode"//"Explosion"
  ProjectileKickBack 35
  States
  {
  Spawn:
    FRGX A 5
    FRGX B 5 A_GiveInventory("M203Armed",1)
    FRGX CDEFG 5
    FRGX H 5 A_Countdown
    loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed")
    TNT1 A 0 A_SetDamageType("Explosion")
    TNT1 A 0 A_Explode(80,56,0)
    TNT1 A 0 A_Explode(60,96)
	TNT1 A 0 A_PlaySoundEx("generic/explosionsmall","SoundSlot5")
	TNT1 A 0 A_PlaySoundEx("distant/explosionsmall","SoundSlot6")
    TNT1 A 0 A_SpawnItemEx("ExplosionSmall",0,0,0,0,0,0,0,128,0)
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-16,16), random(-16,16), random(-8,12), random(-3,3), random(-3,3), random(-1,2), 0, 128, 0)
    TNT1 A 10
    TNT1 A 15 A_AlertMonsters(192)
    Stop
  DeathArmed:
    TNT1 A 0
    TNT1 A 0 Radius_Quake(2,11,0,8,0)
    TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("FragGrenadeExplosion",-1,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-16,24), random(-5,5), random(-5,5), random(-3,4), 0, 128, 0)
    TNT1 A 10
    TNT1 A 15 A_AlertMonsters(600)
    Stop
  }
}

actor FragGrenadeDropped : FragGrenade
{
  speed 2
  damage 0
  States
  {
  Spawn:
    FRGX A 5
    FRGX B 5 A_GiveInventory("M203Armed",1)
    FRGX CDEFG 5
    FRGX H 5 A_Countdown
    loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed")
    TNT1 A 0 A_SetDamageType("Explosion")
    TNT1 A 0 A_Explode(80,56,0)
    TNT1 A 0 A_Explode(60,96,0)
	TNT1 A 0 A_PlaySoundEx("generic/explosionsmall","SoundSlot5")
	TNT1 A 0 A_PlaySoundEx("distant/explosionsmall","SoundSlot6")
    TNT1 A 0 A_SpawnItemEx("ExplosionSmall",0,0,0,0,0,0,0,128,0)
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-16,16), random(-16,16), random(-8,12), random(-3,3), random(-3,3), random(-1,2), 0, 128, 0)
    TNT1 AA 15
    Stop
  DeathArmed:
    TNT1 A 0
    TNT1 A 0 Radius_Quake(2,11,0,8,0)
    TNT1 A 0 A_SpawnItemEx("ExplosionMain")
    TNT1 A 0 A_SpawnItemEx("FragGrenadeExplosionDropped",-1,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-16,24), random(-5,5), random(-5,5), random(-3,4), 0, 128, 0)
    TNT1 AA 15
    Stop
  }
}
actor FragGrenadeExplosion
{
  RenderStyle None
  +NOCLIP
  PROJECTILE
  +NOTONAUTOMAP
  +FORCERADIUSDMG
  Speed 1
  Damage 0
  Scale 0.7
  Obituary "%o almost dodged %k's grenade."
  DamageType "Explosion"
  ProjectileKickBack 35
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Explode(50,170,0)
    TNT1 A 0 A_Explode(50,170)
    TNT1 A 0 A_Explode(100,300)
    TNT1 A 15 A_Explode(100,300)
    Stop
  }
}
actor FragGrenadeExplosionDropped : FragGrenadeExplosion
{
  Obituary "%o didn't see %k's grenade."
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 AA 0 A_Explode(50,170,0)
    TNT1 A 0 A_Explode(100,300,0)
    TNT1 A 15 A_Explode(100,300,0)
    Stop
  }
}

actor StunGrenade
{
  Obituary "%o's face was redecorated by %k's powderbomb."
  radius 5
  height 5
  speed 25
  damage (3)
  PROJECTILE
  -NOGRAVITY
  +NOEXTREMEDEATH
  +FORCERADIUSDMG
  +CANBOUNCEWATER
  +BOUNCEONACTORS
  +ALLOWBOUNCEONACTORS
  +ROCKETTRAIL
  +FORCEXYBILLBOARD
  -NOTELEPORT
  -TELESTOMP
  +THRUSPECIES
  species "Player"
  Scale 0.18
  gravity 0.4
  bouncefactor 0.4
  wallbouncefactor 0.5
  ReactionTime 2
  bouncetype "hexen"
  bouncesound "grenade/lob"
  WallBounceSound "grenade/lobwall"
  DamageType "NormalExplode"//"Explosion"
  ProjectileKickBack 35
  States
  {
  Spawn:
    GRNX AC 3
    GRNX E 3 A_GiveInventory("M203Armed",1)
    GRNX FHJL 3
    GRNX N 3 A_Countdown
    loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed")
    TNT1 A 0 A_Explode(15,16,0)
    TNT1 A 15 A_SpawnItemEx("StunGrenadeDrop",0,0,0,-2,0,2,random(-8,8),0,0)
    Stop
  DeathArmed:
    TNT1 A 0
    TNT1 A 0 A_PlaySoundEx("stun/explosion","SoundSlot5")
    TNT1 A 0 A_PlaySoundEx("distant/explosionsmall","SoundSlot6")
    TNT1 A 0 A_SpawnItemEx("StunExplosionMain",-1,0,1)
    TNT1 A 0 A_SpawnItemEx("StunGrenadeExplosion",-1,0,2,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 A 0 A_SpawnItemEx("StunGrenadeExplosion2",-1,0,2,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 A 0 A_SpawnItemEx("StunGrenadeExplosion3",-1,0,2,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 A 0 Radius_Quake(3,15,0,16,0)
    TNT1 A 10
    TNT1 A 15 A_AlertMonsters(1536)
    Stop
  }
}

actor StunGrenadeDrop
{
  Speed 2
  Height 1
  Radius 0
  Scale 0.18
  gravity 0.4
  bouncefactor 0.5
  bouncecount 3
  bouncetype "Doom"
  +MISSILE
  +FORCERADIUSDMG
  +FORCEXYBILLBOARD
  +THRUSPECIES
  species "Player"
  ProjectileKickBack 35
  States
  {
  Spawn:
    GRNX A 0
    GRNX AAAAA 5
    GRNX A -1
    Loop
  Death:
    GRNX A 45
    TNT1 A 0 A_PlaySoundEx("stun/explosion","SoundSlot5")
    TNT1 A 0 A_PlaySoundEx("distant/explosionsmall","SoundSlot6")
    TNT1 A 0 A_SpawnItemEx("StunExplosionMain",-1,0,1)
    TNT1 A 0 A_SpawnItemEx("StunGrenadeExplosion",-1,0,2,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 A 0 A_SpawnItemEx("StunGrenadeExplosion2",-1,0,2,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 A 0 A_SpawnItemEx("StunGrenadeExplosion3",-1,0,2,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 A 0 Radius_Quake(3,15,0,16,0)
    TNT1 A 10
    TNT1 A 15 A_AlertMonsters(1536)
    Stop
  }
}

actor StunGrenadeExplosion
{
  RenderStyle None
  +NOCLIP
  PROJECTILE
  +NOTONAUTOMAP
  +FORCERADIUSDMG
  +NODAMAGETHRUST
  +NOEXTREMEDEATH
  Speed 1
  Damage 0
  //Scale 0.7
  Obituary "%o couldn't handle %k's powderbomb."
  DamageType "Stun"
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 15 A_Explode(20,768)
    Stop
  }
}

actor StunGrenadeExplosion2 : StunGrenadeExplosion
{
  DamageType "Stun2"
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 15 A_Explode(20,512)
    Stop
  }
}

actor StunGrenadeExplosion3 : StunGrenadeExplosion
{
  DamageType "Stun3"
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 15 A_Explode(30,256,0)
    Stop
  }
}

actor StunExplosionMain
{
  RenderStyle Add
  //Alpha 1.0
  +NOCLIP
  +NOGRAVITY
  +FORCEXYBILLBOARD
  Scale 1
  States
  {
  Spawn:
	FLAR A 0
    FLAR AAAAAAAA 0 A_SpawnItemEx("StunExplosionSpark",random(-64,64), random(-64,64), random(-56,64), random(-6,6), random(-6,6), random(-1,9), 0, 128, 0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(0,3),3,0,random(-1,1),45,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(0,3),3,0,random(-1,1),90,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(0,3),3,0,random(-1,1),135,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(0,3),3,0,random(-1,1),180,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(0,3),3,0,random(-1,1),225,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(0,3),3,0,random(-1,1),270,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(0,3),3,0,random(-1,1),315,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(0,3),3,0,random(-1,1),360,128,0)
    FLAR A 2 BRIGHT
    FLAR AAAAAAAA 0 A_SpawnItemEx("StunExplosionSpark",random(-60,60), random(-60,60), random(-52,60), random(-6,6), random(-6,6), random(-1,9), 0, 128, 0)
    FLAR A 2 BRIGHT
    FLAR AAAAAAA 0 A_SpawnItemEx("StunExplosionSpark",random(-56,56), random(-56,56), random(-48,56), random(-5,5), random(-5,5), random(-1,8), 0, 128, 0)
    FLAR A 2 BRIGHT
    FLAR BBBBBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-52,52), random(-52,52), random(-44,52), random(-5,5), random(-5,5), random(-1,8), 0, 128, 0)
    FLAR B 2 BRIGHT
    FLAR BBBBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-48,48), random(-48,48), random(-40,48), random(-4,4), random(-4,4), random(-1,7), 0, 128, 0)
    FLAR B 2 BRIGHT
    FLAR BBBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-44,44), random(-44,44), random(-36,44), random(-4,4), random(-4,4), random(-1,7), 0, 128, 0)
    FLAR B 2 BRIGHT
    FLAR CCCC 0 A_SpawnItemEx("StunExplosionSpark",random(-40,40), random(-40,40), random(-32,40), random(-3,3), random(-3,3), random(-1,6), 0, 128, 0)
    FLAR CCCCDDDDEEEE 1 BRIGHT A_FadeOut(0.08)
    Stop
  }
}

actor StunExplosionMain2 : StunExplosionMain
{
  Scale 0.8
  States
  {
  Spawn:
	FLAR A 0
    FLAR AAAAAAA 0 A_SpawnItemEx("StunExplosionSpark",random(-48,48), random(-48,48), random(-40,48), random(-6,6), random(-6,6), random(-1,6), 0, 128, 0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(0,3),3,0,random(-1,1),45,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(0,3),3,0,random(-1,1),90,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(0,3),3,0,random(-1,1),135,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(0,3),3,0,random(-1,1),180,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(0,3),3,0,random(-1,1),225,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(0,3),3,0,random(-1,1),270,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(0,3),3,0,random(-1,1),315,128,0)
    FLAR A 0 A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(0,3),3,0,random(-1,1),360,128,0)
    FLAR A 2 BRIGHT
    FLAR AAAAAAA 0 A_SpawnItemEx("StunExplosionSpark",random(-44,44), random(-44,44), random(-40,44), random(-6,6), random(-6,6), random(-1,6), 0, 128, 0)
    FLAR A 2 BRIGHT
    FLAR AAAAAA 0 A_SpawnItemEx("StunExplosionSpark",random(-40,40), random(-40,40), random(-36,40), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0)
    FLAR A 2 BRIGHT
    FLAR BBBBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-36,36), random(-36,36), random(-32,36), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0)
    FLAR B 2 BRIGHT
    FLAR BBBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-32,32), random(-32,32), random(-28,32), random(-4,4), random(-4,4), random(-1,4), 0, 128, 0)
    FLAR B 2 BRIGHT
    FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-28,28), random(-28,28), random(-24,28), random(-4,4), random(-4,4), random(-1,4), 0, 128, 0)
    FLAR B 2 BRIGHT
    FLAR CCC 0 A_SpawnItemEx("StunExplosionSpark",random(-24,24), random(-24,24), random(-20,24), random(-3,3), random(-3,3), random(-1,3), 0, 128, 0)
    FLAR CCCCDDDDEEEE 1 BRIGHT A_FadeOut(0.08)
    Stop
  }
}

actor StunExplosionSpark
{
  RenderStyle Add
  Alpha 0.3
  PROJECTILE
  +NOCLIP
  -NOGRAVITY
  +FORCEXYBILLBOARD
  Gravity 0.4
  Speed 1
  Damage 0
  Scale 0.035
  States
  {
  Spawn:
    FLAR A 1 BRIGHT
    FLAR AA 1 BRIGHT A_Fadein(0.3)
    FLAR A 0 BRIGHT A_Jump(256,1,5,7,11,13,14,15,16,17)//1-8
    FLAR AAAAAAAAA 2 BRIGHT A_SetTranslucent(0.12+(random(0,3)*0.2),1)
    FLAR BBBBBB 2 BRIGHT A_SetTranslucent(0.1+(random(0,3)*0.15),1)
    FLAR CCCCCC 2 BRIGHT A_SetTranslucent(0.08+(random(0,3)*0.1),1)
    Stop//17a1
  }
}

actor IncGrenade
{
  Obituary "%k made sure %o felt the heat."
  radius 5
  height 5
  speed 23
  damage (3)
  PROJECTILE
  -NOGRAVITY
  +NOEXTREMEDEATH
  +FORCERADIUSDMG
  +CANBOUNCEWATER
  //+BOUNCEONACTORS
  //+ALLOWBOUNCEONACTORS
  +ROCKETTRAIL
  +FORCEXYBILLBOARD
  -NOTELEPORT
  -TELESTOMP
  +THRUSPECIES
  species "Player"
  Scale 0.2
  gravity 0.4
  bouncefactor 0.4
  wallbouncefactor 0.5
  //ReactionTime 3
  bouncetype "hexen"
  bouncesound "grenade/lob"
  WallBounceSound "grenade/lobwall"
  DamageType "Explosion"
  ProjectileKickBack 35
  States
  {
  Spawn:
    GRNX A 4
    GRNX C 4 A_GiveInventory("M203Armed",1)
    GRNX EFHJL 4
    GRNX N 4 A_Countdown
    loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed")
    TNT1 A 0 A_Explode(30,24,0)
    TNT1 A 0 A_Explode(25,88)
	TNT1 A 0 A_PlaySoundEx("generic/explosionsmall","SoundSlot5")
    TNT1 A 0 A_PlaySoundEx("distant/explosionsmaller","SoundSlot6")
    TNT1 A 0 A_SpawnItemEx("ExplosionSmall",0,0,0,0,0,0,0,128,0)
    TNT1 AAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-16,16), random(-16,16), random(-8,12), random(-3,3), random(-3,3), random(-1,2), 0, 128, 0)
    TNT1 AAAAAAA 0 A_SpawnItemEx("IncGrenadeFire", random(-32,32), random(-32,32), random(0,16), random(-15,15)/10.0, random(-15,15)/10.0, random(4,5), 0, SXF_TRANSFERPOINTERS, 0)
    TNT1 AAAAAAA 0 A_SpawnItemEx("IncGrenadeFireLight", random(-32,32), random(-32,32), random(0,16), random(-15,15)/10.0, random(-15,15)/10.0, random(4,5), 0, 128, 0)
    TNT1 AAAAAAA 0 A_SpawnItemEx("IncGrenadeFireLight", random(-32,32), random(-32,32), random(0,16), random(-15,15)/10.0, random(-15,15)/10.0, random(4,5), 0, 128, 0)
    TNT1 A 10
    TNT1 A 15 A_AlertMonsters(176)
    Stop
  DeathArmed:
    TNT1 A 0
    TNT1 A 0 Radius_Quake(2,10,0,6,0)
	TNT1 A 0 A_PlaySound("dragon/fire")
    TNT1 A 0 A_SpawnItemEx("ExplosionMain2")
    TNT1 A 0 A_SpawnItemEx("IncGrenadeExplosion",-1,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-24,24), random(-24,24), random(-12,18), random(-4,4), random(-4,4), random(-2,3), 0, 128, 0)
    TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("IncGrenadeFire", random(-32,32), random(-32,32), random(0,16), random(-25,25)/10.0, random(-25,25)/10.0, random(4,5), 0, SXF_TRANSFERPOINTERS, 0)
    TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("IncGrenadeFireLight", random(-32,32), random(-32,32), random(0,16), random(-25,25)/10.0, random(-25,25)/10.0, random(4,5), 0, 128, 0)
    TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("IncGrenadeFireLight", random(-32,32), random(-32,32), random(0,16), random(-25,25)/10.0, random(-25,25)/10.0, random(4,5), 0, 128, 0)
    TNT1 A 10
    TNT1 A 15 A_AlertMonsters(512)
    Stop
  }
}

actor IncGrenadeExplosion
{
  RenderStyle None
  +NOCLIP
  PROJECTILE
  +NOTONAUTOMAP
  +FORCERADIUSDMG
  Speed 1
  Damage 0
  Scale 0.7
  Obituary "%o felt %k's burn."
  DamageType "Explosion"
  ProjectileKickBack 35
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 AA 0 A_Explode(25,144,0)
    TNT1 A 5 A_Explode(40,256)
    Stop
  }
}

actor IncGrenadeFire
{
  RenderStyle Add
  Alpha 0.3//0.4//0.3
  Scale 0.42//0.7
  Gravity 0.6
  +FORCERADIUSDMG
  +FORCEXYBILLBOARD
  +NODAMAGETHRUST
  +NOEXTREMEDEATH
  +NOTELEPORT
  -TELESTOMP
  -BLOODSPLATTER
  +BLOODLESSIMPACT
  ReactionTime 4
  Obituary "%o melted on %k's turf."
  DamageType "Dragonsplosion"
  States
  {
  Spawn:
    FLMC A 0
    FLMC A 0 A_Jump(256,1,3,5,7,9,11,13,15,17,22,30,32,36,40,44)
    FLMC ABCDEFGHABCDEFGH 3 BRIGHT Light("RGADragon7")
    FLMC A 0 BRIGHT A_Explode(9,96)
    FLMC AAABBB 1 BRIGHT Light("RGADragon6") A_FadeIn(0.05)
    FLMC CCCDDD 1 BRIGHT Light("RGADragon5") A_FadeIn(0.05)
    FLMC E 3 BRIGHT Light("RGADragon4") A_Explode(9,96)
    FLMC FGH 3 BRIGHT Light("RGADragon4")
    FLMC A 3 BRIGHT Light("RGADragon4") A_Explode(9,96)
    FLMC BCD 3 BRIGHT Light("RGADragon4")
    FLMC E 3 BRIGHT Light("RGADragon4") A_Explode(9,96)
    FLMC F 3 BRIGHT Light("RGADragon4")
	FLMC G 0 BRIGHT A_Jump(233,2)//step 41
	FLMC G 0 BRIGHT A_PlaySound("dragon/fire3")
    FLMC GH 3 BRIGHT Light("RGADragon4")
    FLMC A 3 BRIGHT Light("RGADragon4") A_Explode(9,96)
    FLMC B 3 BRIGHT Light("RGADragon4")
	FLMC C 0 BRIGHT A_Jump(233,2)
	FLMC C 0 BRIGHT A_PlaySound("dragon/fire3")
    FLMC CD 3 BRIGHT Light("RGADragon4")
    FLMC E 3 BRIGHT Light("RGADragon4") A_Explode(9,96)
    FLMC F 3 BRIGHT Light("RGADragon4")
	FLMC G 0 BRIGHT A_Jump(233,2)
	FLMC G 0 BRIGHT A_PlaySound("dragon/fire3")
    FLMC GH 3 BRIGHT Light("RGADragon4")
    FLMC A 3 BRIGHT Light("RGADragon4") A_Explode(9,96)
    FLMC B 3 BRIGHT Light("RGADragon4")
	FLMC C 0 BRIGHT A_Jump(233,2)
	FLMC C 0 BRIGHT A_PlaySound("dragon/fire3")
    FLMC CD 3 BRIGHT Light("RGADragon4")
    FLMC E 3 BRIGHT Light("RGADragon4") A_Explode(9,96)
    FLMC F 3 BRIGHT Light("RGADragon4")
	FLMC G 0 BRIGHT A_Jump(191,2)
	FLMC G 0 BRIGHT A_CountDown
	FLMC G 0 BRIGHT A_CountDown
	Goto Spawn+41
  Death:
    FLMC G 0 BRIGHT A_Explode(8,80)
    FLMC GHAB 3 BRIGHT Light("RGADragon5") A_FadeOut(0.08)
    FLMC C 0 BRIGHT A_Explode(7,64)
    FLMC CDEF 3 BRIGHT Light("RGADragon6") A_FadeOut(0.07)
    FLMC G 0 BRIGHT A_Explode(6,48)
    FLMC GHAB 3 BRIGHT Light("RGADragon6") A_FadeOut(0.08)
    FLMC C 0 BRIGHT A_Explode(5,32)
    FLMC CDEF 3 BRIGHT Light("RGADragon7") A_FadeOut(0.07)
    FLMC G 0 BRIGHT A_Explode(4,16)
    FLMC GH 3 BRIGHT Light("RGADragon7") A_FadeOut(0.08)
    FLMC AB 3 BRIGHT Light("RGADragon7") A_FadeOut(0.07)
	Stop
  }
}

actor IncGrenadeFireLight
{
  RenderStyle Add
  Alpha 0.2//0.1
  Scale 0.33//<-0.27//0.45
  Gravity 0.65
  +FORCEXYBILLBOARD
  +NODAMAGETHRUST
  +NOTELEPORT
  -TELESTOMP
  +CLIENTSIDEONLY
  ReactionTime 4
  States
  {
  Spawn:
    FLMC A 0
    FLMC A 0 A_Jump(256,1,3,5,7,9,11,13,15,17,22,30,32,36,40,44)
    FLMC ABCDEFGHABCDEFGH 3 BRIGHT
    FLMC A 0 BRIGHT
    FLMC AAABBBCCCDDD 1 BRIGHT A_FadeIn(0.05)
    FLMC EFGHABCDEF 3 BRIGHT
	FLMC G 0 BRIGHT A_Jump(233,2)//step 41
	FLMC G 0 BRIGHT A_PlaySound("dragon/fire3")
    FLMC GHAB 3 BRIGHT
	FLMC C 0 BRIGHT A_Jump(233,2)
	FLMC C 0 BRIGHT A_PlaySound("dragon/fire3")
    FLMC CDEF 3 BRIGHT
	FLMC G 0 BRIGHT A_Jump(233,2)
	FLMC G 0 BRIGHT A_PlaySound("dragon/fire3")
    FLMC GHAB 3 BRIGHT
	FLMC C 0 BRIGHT A_Jump(233,2)
	FLMC C 0 BRIGHT A_PlaySound("dragon/fire3")
    FLMC CDEF 3 BRIGHT
	FLMC A 0 BRIGHT A_Jump(191,2)
	FLMC A 0 BRIGHT A_CountDown
	FLMC A 0 BRIGHT A_CountDown
	Goto Spawn+41
  Death:
    FLMC GHAB 3 BRIGHT A_FadeOut(0.08)
    FLMC CDEF 3 BRIGHT A_FadeOut(0.07)
    FLMC GHAB 3 BRIGHT A_FadeOut(0.08)
    FLMC CDEF 3 BRIGHT A_FadeOut(0.07)
    FLMC GH 3 BRIGHT A_FadeOut(0.08)
    FLMC AB 3 BRIGHT A_FadeOut(0.07)
	Stop
  }
}

actor MonsterBulletPuff : BulletPuff
{
  RenderStyle None
  Decal BulletChipRGA
  DamageType "Normal"
  +NOBLOCKMAP
  +NOGRAVITY
  -ALLOWPARTICLES
  +NOTONAUTOMAP
  +BLOODSPLATTER
  +NOEXTREMEDEATH
  +PUFFONACTORS
  +PUFFGETSOWNER
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff_2", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  XDeath:
    TNT1 A 0
    TNT1 A 5 A_PlaySound("generic/ricochets")
    Stop
  Crash:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  }
}

actor MonsterShotgunPuff : MonsterBulletPuff
{
  Decal ShotChip
}

actor ScriptedBulletPuff : MonsterBulletPuff replaces BulletPuff
{
  DamageType "ScriptedMarine"
}

actor HHBulletPuff : BulletPuff
{
  RenderStyle None
  Decal BulletChipRGA
  DamageType "RGABullet"
  +NOBLOCKMAP
  +NOGRAVITY
  -ALLOWPARTICLES
  +NOTONAUTOMAP
  +BLOODSPLATTER
  +NOEXTREMEDEATH
  +PUFFONACTORS
  +PUFFGETSOWNER
  ProjectileKickBack 70
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff_2", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  XDeath:
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 5 A_PlaySound("generic/ricochets")
    Stop
  Crash:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  }
}

actor HHTag : BulletPuff
{
  RenderStyle None
  +NOBLOCKMAP
  +NOGRAVITY
  -ALLOWPARTICLES
  +NOTONAUTOMAP
  -BLOODSPLATTER
  +NOEXTREMEDEATH
  +NODAMAGETHRUST
  +PIERCEARMOR
  States
  {
  Spawn:
    TNT1 A 5
    Stop
  XDeath:
    TNT1 A 5
    Stop
  Crash:
    TNT1 A 5
    Stop
  }
}


actor RiflePuff : HHBulletPuff
{
  DamageType "Rifle"
}

actor ShotgunPuff : HHBulletPuff
{
  Decal none
  DamageType "Shotgun"
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_Jump(192,2)
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
	TNT1 A 0 A_Jump(48,2)
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff_3", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  XDeath:
    TNT1 A 0
	TNT1 A 0 A_Jump(192,2)
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 5 A_PlaySound("generic/ricochets")
    Stop
  Crash:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff_2", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  }
}
actor ShotgunPuff2 : ShotgunPuff
{
  Decal ShotChip
}

actor SniperPuff : HHBulletPuff
{
  DamageType "Sniper"
}

actor KnifePuff : HHBulletPuff
{
  Obituary "%o was shanked by %k."
  HitObituary "%o was shanked by %k."
  Decal KnifeCut
  DamageType "Knife"
  +NODAMAGETHRUST
  +PIERCEARMOR
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
  Crash:
    TNT1 A 0
    TNT1 A 0 A_PlaySound("knife/wall")
    TNT1 AA 0 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(0,2), random(-1,1), random(-1,3), 0, 128, 64)
    TNT1 A 1 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(0,2), random(-1,1), random(-1,3), 0, 128, 64)
    TNT1 AA 0 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(1,3), random(-2,2), random(-2,4), 0, 128, 64)
    TNT1 A 4 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(1,3), random(-2,2), random(-2,4), 0, 128, 64)
    Stop
  Melee: //in Zan 3.0, this is hitting nonbleeding actors
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 0 A_PlaySound("knife/wall")
    TNT1 AA 0 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(0,2), random(-1,1), random(-1,3), 0, 128, 64)
    TNT1 A 1 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(0,2), random(-1,1), random(-1,3), 0, 128, 64)
    TNT1 AA 0 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(1,3), random(-2,2), random(-2,4), 0, 128, 64)
    TNT1 A 4 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(1,3), random(-2,2), random(-2,4), 0, 128, 64)
	TNT1 A 10 A_AlertMonsters(136)
    Stop
  XDeath: //bleeding actors
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 5 A_PlaySound("knife/flesh")
	TNT1 A 10 A_AlertMonsters(136)
    Stop
  }
}

actor LMGPuff : HHBulletPuff
{
  DamageType "LMG"
}

actor BigPistolPuff : HHBulletPuff
{
  DamageType "BigPistol"
}

actor ShotgunFirePuff : HHBulletPuff
{
  Decal none
  +FORCERADIUSDMG
  DamageType "Dragon"
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_Jump(144,2)
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 0 A_SpawnItemEx("FireballPuff",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_PlaySound("generic/ricochet")
    TNT1 AA 12 A_Explode(2,32,0)
    Stop
  XDeath:
    TNT1 A 0
	TNT1 A 0 A_Jump(144,2)
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 0 A_SpawnItemEx("FireballPuff",0,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_Jump(32,2)
    TNT1 A 0 A_PlaySound("generic/ricochets")
    TNT1 AA 12 A_Explode(2,32,0)
    Stop
  Crash:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("FireballPuff",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_PlaySound("generic/ricochet")
    TNT1 AA 12 A_Explode(2,32,0)
    Stop
  }
}

actor FlameThrowerFire
{
  RenderStyle Add
  Alpha 0.01
  Scale 0.85
  Radius 3//1
  Height 3//1
  Speed 13//14//13
  Damage (0)
  Projectile
  +RIPPER
  +FORCERADIUSDMG
  +FORCEXYBILLBOARD
  +NODAMAGETHRUST
  +NOEXTREMEDEATH
  -RANDOMIZE
  -BLOODSPLATTER
  +BLOODLESSIMPACT
  DamageType "Dragon"
  States
  {
  Spawn:
    FLMD A 0
    FLMD A 0 A_ScaleVelocity(frandom(0.95,1.05))
    FLMD A 1
    FLMD A 2 A_Explode(4,76,0)
    FLMD A 0 BRIGHT A_Explode(5,70,0)
    FLMD A 1 BRIGHT A_FadeIn(0.13)
    FLMD AA 1 BRIGHT A_FadeIn(0.15)
    FLMD B 0 BRIGHT A_Explode(5,64,0)
    FLMD BBB 1 BRIGHT A_FadeIn(0.12)
    FLMD CDEFG 3 BRIGHT A_Explode(5,64,0)
    FLMD H 0 BRIGHT A_Explode(4,64,0)
    FLMD HH 2 BRIGHT A_FadeOut(0.1)
    FLMD I 0 BRIGHT A_Explode(3,56,0)
    FLMD II 2 BRIGHT A_FadeOut(0.15)
    FLMD J 0 BRIGHT A_Explode(2,48,0)
    FLMD J 3 BRIGHT A_FadeOut(0.15)
	TNT1 A 15 BRIGHT A_ScaleVelocity(0)
    Stop
  Death:
    "####" # 0 BRIGHT A_SpawnItemEx("FireballPuff",0,0,0,0,0,0,0,128,0)
    "####" # 0 BRIGHT A_Explode(5,59,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 0 BRIGHT A_Explode(4,56,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 0 BRIGHT A_Explode(4,53,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 0 BRIGHT A_Explode(4,50,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 0 BRIGHT A_Explode(3,47,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    Stop
  }
}
actor FlameThrowerFire2 : FlameThrowerFire
{
}
actor FlameThrowerFire3 : FlameThrowerFire
{
  Scale 0.8
  -FORCERADIUSDMG
  States
  {
  Spawn:
    FLMD A 0
    FLMD A 0 A_ScaleVelocity(frandom(0.95,1.05))
    FLMD A 1
    FLMD A 2
    FLMD A 1 BRIGHT A_FadeIn(0.13)
    FLMD AA 1 BRIGHT A_FadeIn(0.1)
    FLMD BBB 1 BRIGHT A_FadeIn(0.12)
    FLMD CDEFG 3 BRIGHT
    FLMD HH 2 BRIGHT A_FadeOut(0.1)
    FLMD II 2 BRIGHT A_FadeOut(0.1)
    FLMD J 3 BRIGHT A_FadeOut(0.15)
	TNT1 A 15 BRIGHT A_ScaleVelocity(0)
    Stop
  Death:
    "####" # 0 BRIGHT A_SpawnItemEx("FireballPuff",0,0,0,0,0,0,0,128,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    Stop
  }
}

actor FlameThrowerFireLight : FlameThrowerFire
{
  States
  {
  Spawn:
    FLMD A 0
    FLMD A 0 A_ScaleVelocity(frandom(0.95,1.05))
    FLMD A 1
    FLMD A 2 A_Explode(5,76,0)
    FLMD A 0 BRIGHT A_Explode(5,70,0)
    FLMD A 1 BRIGHT A_FadeIn(0.13)
    FLMD AA 1 BRIGHT A_FadeIn(0.1)
    FLMD B 0 BRIGHT A_Explode(5,64,0)
    FLMD BBB 1 BRIGHT A_FadeIn(0.12)
    FLMD CDEFG 3 BRIGHT A_Explode(5,64,0)
    FLMD H 0 BRIGHT A_Explode(4,64,0)
    FLMD HH 2 BRIGHT A_FadeOut(0.1)
    FLMD I 0 BRIGHT A_Explode(3,56,0)
    FLMD II 2 BRIGHT A_FadeOut(0.1)
    FLMD J 0 BRIGHT A_Explode(2,48,0)
    FLMD J 3 BRIGHT A_FadeOut(0.15)
	TNT1 A 15 BRIGHT A_ScaleVelocity(0)
    Stop
  Death:
    "####" # 0 BRIGHT A_SpawnItemEx("FireballPuff",0,0,0,0,0,0,0,128,0)
    "####" # 0 BRIGHT A_Explode(5,59,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 0 BRIGHT A_Explode(4,56,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 0 BRIGHT A_Explode(4,53,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 0 BRIGHT A_Explode(4,50,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 0 BRIGHT A_Explode(3,47,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    Stop
  }
}
actor FlameThrowerFireLight2 : FlameThrowerFireLight
{
}
actor FlameThrowerFireLight3 : FlameThrowerFireLight
{
  Scale 0.8
  -FORCERADIUSDMG
  States
  {
  Spawn:
    FLMD A 0
    FLMD A 0 A_ScaleVelocity(frandom(0.95,1.05))
    FLMD A 1
    FLMD A 2
    FLMD A 1 BRIGHT A_FadeIn(0.12)
    FLMD AA 1 BRIGHT A_FadeIn(0.1)
    FLMD BBB 1 BRIGHT A_FadeIn(0.11)
    FLMD CDEFG 3 BRIGHT
    FLMD HH 2 BRIGHT A_FadeOut(0.1)
    FLMD II 2 BRIGHT A_FadeOut(0.1)
    FLMD J 3 BRIGHT A_FadeOut(0.13)
	TNT1 A 15 BRIGHT A_ScaleVelocity(0)
    Stop
  Death:
    "####" # 0 BRIGHT A_SpawnItemEx("FireballPuff",0,0,0,0,0,0,0,128,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    "####" # 2 BRIGHT A_FadeOut(0.1,0)
    "####" # 3 BRIGHT A_FadeOut(0.1,0)
    Stop
  }
}

actor FireballPuff
{
  RenderStyle Add
  Alpha 0.95
  PROJECTILE
  Speed 2
  Damage 0
  Scale 0.3//0.5
  +NOCLIP
  +NOINTERACTION
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    FLMC A 0 BRIGHT
    FLMC A 0 BRIGHT	A_Jump(128,"Spawn2")
    FLMC A 2 BRIGHT
    FLMC A 2 BRIGHT ThrustThingZ(0,5,0,1)
    FLMC BBCCDDEEFFGGH 2 BRIGHT A_FadeOut(0.07)
    Stop
  Spawn2:
    FLMC E 2 BRIGHT
    FLMC E 2 BRIGHT ThrustThingZ(0,5,0,1)
    FLMC FFGGHHAABBCCD 2 BRIGHT A_FadeOut(0.07)
    Stop
  }
}

actor HHBullet : FastProjectile
{
  RenderStyle None
  Radius 1
  Height 1
  Speed 500
  Projectile
  DamageType "RGABullet"
  Species "Player"
  +NOTONAUTOMAP
  +BLOODSPLATTER
  -ALLOWPARTICLES
  +THRUSPECIES
  +NOEXTREMEDEATH
  +NOTIMEFREEZE
  +FORCEXYBILLBOARD
  +THRUGHOST
  ProjectileKickBack 70
  Decal BulletchipRGA//
  States
  {
  Spawn:
    TNT1 A -1
	loop
  Death:
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  XDeath:
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 5 A_PlaySound("generic/ricochets")
    Stop
  Crash:
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff_2", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  }
}

actor HHBlood : Blood Replaces Blood
{
  +FORCEXYBILLBOARD
  Scale 1.25
  Gravity 0.8
}

actor HHBloodSplatter : BloodSplatter Replaces BloodSplatter//blood replaces splatter
{
  +FORCEXYBILLBOARD
  Scale 1.25
  Gravity 0.8
}

actor ExplosionMain
{
  RenderStyle Add
  //Alpha 0.9
  +NOGRAVITY
  +FORCEXYBILLBOARD
  Scale 1.25//1.15
  States
  {
  Spawn:
	EXP1 A 0 BRIGHT
    EXP1 AAAA 0 BRIGHT A_SpawnItemEx("ExplosionSmall",random(-8,8),random(-8,8),random(1,8),random(-2,2),random(-2,2),random(0,3),0,129,0)
    EXP1 A 0 BRIGHT A_PlayWeaponSound("generic/explosion")
    EXP1 A 0 BRIGHT A_PlaySoundEx("distant/explosion","SoundSlot6")
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(1,8),3,0,0,0,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(1,8),3,0,0,45,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(1,8),3,0,0,90,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(1,8),3,0,0,135,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(1,8),3,0,0,180,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(1,8),3,0,0,225,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(1,8),3,0,0,270,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(1,8),3,0,0,315,128,0)
    EXP1 A 3 BRIGHT
    EXP1 AA 0 BRIGHT A_SpawnItemEx("ExplosionSmall",random(-8,8),random(-8,8),random(1,8),random(-2,2),random(-2,2),random(0,3),0,129,0)
    EXP1 B 3 BRIGHT
    EXP1 BB 0 BRIGHT A_SpawnItemEx("ExplosionSmall",random(-8,8),random(-8,8),random(1,8),random(-2,2),random(-2,2),random(0,3),0,129,0)
    EXP1 C 3 BRIGHT
    EXP1 CC 0 BRIGHT A_SpawnItemEx("ExplosionSmall",random(-8,8),random(-8,8),random(1,8),random(-2,2),random(-2,2),random(0,3),0,129,0)
    EXP1 D 3 BRIGHT
    EXP1 DD 0 BRIGHT A_SpawnItemEx("ExplosionSmall",random(-8,8),random(-8,8),random(1,8),random(-2,2),random(-2,2),random(0,3),0,129,0)
    EXP1 EFGHIJ 3 BRIGHT
    Stop
  }
}

actor ExplosionMain2 : ExplosionMain
{
  Scale 1.04//0.95
  States
  {
  Spawn:
	EXP1 A 0 BRIGHT
    EXP1 AAAA 0 BRIGHT A_SpawnItemEx("ExplosionSmall2",random(-5,5),random(-5,5),random(1,5),random(-2,2),random(-2,2),random(0,2),0,129,0)
    EXP1 A 0 BRIGHT A_PlayWeaponSound("generic/explosionsmall")
    EXP1 A 0 BRIGHT A_PlaySoundEx("distant/explosionsmall","SoundSlot6")
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(1,5),2.5,0,0,0,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(1,5),2.5,0,0,45,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(1,5),2.5,0,0,90,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(1,5),2.5,0,0,135,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(1,5),2.5,0,0,180,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(1,5),2.5,0,0,225,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(1,5),2.5,0,0,270,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff2",random(-5,5),random(-5,5),random(1,5),2.5,0,0,315,128,0)
    EXP1 A 3 BRIGHT
    EXP1 AA 0 BRIGHT A_SpawnItemEx("ExplosionSmall2",random(-5,5),random(-5,5),random(1,5),random(-2,2),random(-2,2),random(0,2),0,129,0)
    EXP1 B 3 BRIGHT
    EXP1 BB 0 BRIGHT A_SpawnItemEx("ExplosionSmall2",random(-5,5),random(-5,5),random(1,5),random(-2,2),random(-2,2),random(0,2),0,129,0)
    EXP1 C 3 BRIGHT
    EXP1 CC 0 BRIGHT A_SpawnItemEx("ExplosionSmall2",random(-5,5),random(-5,5),random(1,5),random(-2,2),random(-2,2),random(0,2),0,129,0)
    EXP1 D 3 BRIGHT
    EXP1 DD 0 BRIGHT A_SpawnItemEx("ExplosionSmall2",random(-5,5),random(-5,5),random(1,5),random(-2,2),random(-2,2),random(0,2),0,129,0)
    EXP1 EFGHIJ 3 BRIGHT
    Stop
  }
}

actor ExplosionMain3 : ExplosionMain
{
  Scale 0.83//0.75
  States
  {
  Spawn:
	EXP1 A 0 BRIGHT
    EXP1 AAAA 0 BRIGHT A_SpawnItemEx("ExplosionSmall3",random(-3,3),random(-3,3),random(1,3),random(-1,1),random(-1,1),random(0,1),0,129,0)
    EXP1 A 0 BRIGHT A_PlayWeaponSound("generic/explosionsmaller")
    EXP1 A 0 BRIGHT A_PlaySoundEx("distant/explosionsmaller","SoundSlot6")
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(1,3),2,0,0,0,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(1,3),2,0,0,45,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(1,3),2,0,0,90,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(1,3),2,0,0,135,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(1,3),2,0,0,180,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(1,3),2,0,0,225,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(1,3),2,0,0,270,128,0)
    EXP1 A 0 BRIGHT A_SpawnItemEx("ExplosionSmokePuff3",random(-3,3),random(-3,3),random(1,3),2,0,0,315,128,0)
    EXP1 A 3 BRIGHT
    EXP1 AA 0 BRIGHT A_SpawnItemEx("ExplosionSmall3",random(-3,3),random(-3,3),random(1,3),random(-1,1),random(-1,1),random(0,1),0,129,0)
    EXP1 B 3 BRIGHT
    EXP1 BB 0 BRIGHT A_SpawnItemEx("ExplosionSmall3",random(-3,3),random(-3,3),random(1,3),random(-1,1),random(-1,1),random(0,1),0,129,0)
    EXP1 C 3 BRIGHT
    EXP1 CC 0 BRIGHT A_SpawnItemEx("ExplosionSmall3",random(-3,3),random(-3,3),random(1,3),random(-1,1),random(-1,1),random(0,1),0,129,0)
    EXP1 D 3 BRIGHT
    EXP1 DD 0 BRIGHT A_SpawnItemEx("ExplosionSmall3",random(-3,3),random(-3,3),random(1,3),random(-1,1),random(-1,1),random(0,1),0,129,0)
    EXP1 EFGHIJ 3 BRIGHT
    Stop
  }
}

actor ExplosionSmall
{
  RenderStyle Add
  //Alpha 0.9
  //+NOCLIP
  +NOINTERACTION
  PROJECTILE
  //-MISSILE
  Speed 5
  Damage 0
  Scale 0.7
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    EXP1 A 0 BRIGHT
    EXP1 A 0 BRIGHT A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
  Spawn1:
    EXP1 AABCDEFGHIJ 2 BRIGHT
    Stop
  Spawn2:
    EXP2 A 0 BRIGHT A_SetScale(0.8,0.8)
    EXP2 ABCDEFG 3 BRIGHT
    Stop
  Spawn3:
    EXP3 A 0 BRIGHT A_SetScale(0.8,0.8)
    EXP3 ABCDEFG 3 BRIGHT
    Stop
  Spawn4:
    EXP4 A 0 BRIGHT A_SetScale(0.75,0.75)
    EXP4 ABCDEFGH 3 BRIGHT
    Stop
  Spawn5:
    EXP5 A 0 BRIGHT A_SetScale(0.75,0.75)
    EXP5 AABCDEFGHIJ 2 BRIGHT
    Stop
  }
}
actor ExplosionSmall2 : ExplosionSmall
{
  Scale 0.5
  States
  {
  Spawn:
    EXP1 A 0 BRIGHT
    EXP1 A 0 BRIGHT A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
  Spawn1:
    EXP1 AABCDEFGHIJ 2 BRIGHT
    Stop
  Spawn2:
    EXP2 A 0 BRIGHT A_SetScale(0.58,0.58)
    EXP2 ABCDEFG 3 BRIGHT
    Stop
  Spawn3:
    EXP3 A 0 BRIGHT A_SetScale(0.58,0.58)
    EXP3 ABCDEFG 3 BRIGHT
    Stop
  Spawn4:
    EXP4 A 0 BRIGHT A_SetScale(0.54,0.54)
    EXP4 ABCDEFGH 3 BRIGHT
    Stop
  Spawn5:
    EXP5 A 0 BRIGHT A_SetScale(0.54,0.54)
    EXP5 AABCDEFGHIJ 2 BRIGHT
    Stop
  }
}
actor ExplosionSmall3 : ExplosionSmall
{
  Scale 0.36
  States
  {
  Spawn:
    EXP1 A 0 BRIGHT
    EXP1 A 0 BRIGHT A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
  Spawn1:
    EXP1 AABCDEFGHIJ 2 BRIGHT
    Stop
  Spawn2:
    EXP2 A 0 BRIGHT A_SetScale(0.42,0.42)
    EXP2 ABCDEFG 3 BRIGHT
    Stop
  Spawn3:
    EXP3 A 0 BRIGHT A_SetScale(0.42,0.42)
    EXP3 ABCDEFG 3 BRIGHT
    Stop
  Spawn4:
    EXP4 A 0 BRIGHT A_SetScale(0.39,0.39)
    EXP4 ABCDEFGH 3 BRIGHT
    Stop
  Spawn5:
    EXP5 A 0 BRIGHT A_SetScale(0.39,0.39)
    EXP5 AABCDEFGHIJ 2 BRIGHT
    Stop
  }
}
actor ExplosionSmall4 : ExplosionSmall
{
  Scale 0.23
  States
  {
  Spawn:
    EXP1 A 0 BRIGHT
    EXP1 A 0 BRIGHT A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
  Spawn1:
    EXP1 AABCDEFGHIJ 2 BRIGHT
    Stop
  Spawn2:
    EXP2 A 0 BRIGHT A_SetScale(0.29,0.29)
    EXP2 ABCDEFG 3 BRIGHT
    Stop
  Spawn3:
    EXP3 A 0 BRIGHT A_SetScale(0.29,0.29)
    EXP3 ABCDEFG 3 BRIGHT
    Stop
  Spawn4:
    EXP4 A 0 BRIGHT A_SetScale(0.26,0.26)
    EXP4 ABCDEFGH 3 BRIGHT
    Stop
  Spawn5:
    EXP5 A 0 BRIGHT A_SetScale(0.26,0.26)
    EXP5 AABCDEFGHIJ 2 BRIGHT
    Stop
  }
}

actor ExplosionSmokePuff
{
  RenderStyle Add
  Alpha 0.85//0.95
  //+NOCLIP
  +NOINTERACTION
  PROJECTILE
  Speed 2
  Damage 0
  Scale 1.75//3.5 // 4.0
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  translation "80:107=98:111", "108:111=5:8", "3:3=110:110"
  States
  {
  Spawn:
    SMK1 A 1
    SMK1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
  Spawn1:
    SMK1 ABCDEFGHIJKLMNOP 3 A_FadeOut(0.05)
    Stop
  Spawn2:
    SMK2 ABCDEFGHIJKLMNOP 3 A_FadeOut(0.05)
    Stop
  Spawn3:
    SMK3 ABCDEFGHIJKLMNOP 3 A_FadeOut(0.05)
    Stop
  Spawn4:
    SMK4 ABCDEFGHIJKLMNOP 3 A_FadeOut(0.05)
    Stop
  Spawn5:
    SMK5 ABCDEFGHIJKLMNOP 3 A_FadeOut(0.05)
    Stop
  Spawn6:
    SMK6 ABCDEFGHIJKLMNOP 3 A_FadeOut(0.05)
    Stop
  }
}
actor ExplosionSmokePuff2 : ExplosionSmokePuff
{
  Alpha 0.8
  Scale 1.375//2.75
}

actor ExplosionSmokePuff3 : ExplosionSmokePuff
{
  Alpha 0.75
  Scale 0.75//1.5
}

actor ImpactSmokePuff
{
  RenderStyle Add
  Alpha 0.8//0.7
  //+NOCLIP
  +NOINTERACTION
  PROJECTILE
  +NOTONAUTOMAP
  Speed 2
  Damage 0
  Scale 0.375//0.75
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    SMK1 A 1
    SMK1 AAAAAA 0 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(2,4), random(-2,2), random(-1,3), 0, 128, 80)
    SMK1 A 0 A_Jump(92,"Spawn1a","Spawn2a","Spawn3a","Spawn4a","Spawn5a","Spawn6a")
    SMK1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
	Goto Spawn1
  Spawn1:
    SMK1 ABCDEFGHIJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn2:
    SMK2 ABCDEFGHIJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn3:
    SMK3 ABCDEFGHIJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn4:
    SMK4 ABCDEFGHIJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn5:
    SMK5 ABCDEFGHIJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn6:
    SMK6 ABCDEFGHIJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn1a:
    SMK1 AB 2 Light("RGAMLIT7") A_FadeOut(0.05)
    SMK1 CD 2 Light("RGAMLIT8") A_FadeOut(0.05)
    SMK1 EF 2 Light("RGAMLIT9") A_FadeOut(0.05)
    SMK1 GH 2 Light("RGAMLIT0") A_FadeOut(0.05)
    SMK1 IJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn2a:
    SMK2 AB 2 Light("RGAMLIT7") A_FadeOut(0.05)
    SMK2 CD 2 Light("RGAMLIT8") A_FadeOut(0.05)
    SMK2 EF 2 Light("RGAMLIT9") A_FadeOut(0.05)
    SMK2 GH 2 Light("RGAMLIT0") A_FadeOut(0.05)
    SMK2 IJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn3a:
    SMK3 AB 2 Light("RGAMLIT7") A_FadeOut(0.05)
    SMK3 CD 2 Light("RGAMLIT8") A_FadeOut(0.05)
    SMK3 EF 2 Light("RGAMLIT9") A_FadeOut(0.05)
    SMK3 GH 2 Light("RGAMLIT0") A_FadeOut(0.05)
    SMK3 IJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn4a:
    SMK4 AB 2 Light("RGAMLIT7") A_FadeOut(0.05)
    SMK4 CD 2 Light("RGAMLIT8") A_FadeOut(0.05)
    SMK4 EF 2 Light("RGAMLIT9") A_FadeOut(0.05)
    SMK4 GH 2 Light("RGAMLIT0") A_FadeOut(0.05)
    SMK4 IJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn5a:
    SMK5 ABC 2 Light("RGAMLIT7") A_FadeOut(0.05)
    SMK5 DEF 2 Light("RGAMLIT8") A_FadeOut(0.05)
    SMK5 GHI 2 Light("RGAMLIT9") A_FadeOut(0.05)
    SMK5 JKL 2 Light("RGAMLIT0") A_FadeOut(0.05)
    SMK5 IJKLMNOP 2 A_FadeOut(0.05)
    Stop
  Spawn6a:
    SMK6 ABC 2 Light("RGAMLIT7") A_FadeOut(0.05)
    SMK6 DEF 2 Light("RGAMLIT8") A_FadeOut(0.05)
    SMK6 GHI 2 Light("RGAMLIT9") A_FadeOut(0.05)
    SMK6 JKL 2 Light("RGAMLIT0") A_FadeOut(0.05)
    SMK6 IJKLMNOP 2 A_FadeOut(0.05)
    Stop
  }
}

actor ImpactSmokePuff_2 : ImpactSmokePuff
{
  Alpha 0.7//0.6
  Scale 0.325//0.275//0.55
  States
  {
  Spawn:
    SMK1 A 1
    SMK1 AAAAA 0 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(2,4), random(-2,2), random(-1,3), 0, 128, 72)
    SMK1 A 0 A_Jump(68,"Spawn1a","Spawn2a","Spawn3a","Spawn4a","Spawn5a","Spawn6a")
    SMK1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
	Goto Spawn1
  }
}

actor ImpactSmokePuff_3 : ImpactSmokePuff
{
  Alpha 0.6//0.5
  Scale 0.225//0.175//0.35
  States
  {
  Spawn:
    SMK1 A 1
    SMK1 AAAA 0 A_SpawnItemEx("ImpactSpark3", -2, 0, 0, random(2,4), random(-2,2), random(-1,3), 0, 128, 64)
    SMK1 A 0 A_Jump(56,"Spawn1a","Spawn2a","Spawn3a","Spawn4a","Spawn5a","Spawn6a")
    SMK1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
	Goto Spawn1
  }
}

actor ImpactSpark
{
  RenderStyle Add
  Alpha 0.95
  Radius 1
  Height 1
  PROJECTILE
  Speed 2
  Damage 0
  Scale 0.24//0.06//0.05
  +NOCLIP
  +NOTONAUTOMAP
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  +NOINTERACTION
  +DONTSPLASH
  +NOTIMEFREEZE
  States
  {
  Spawn:
    SPRK A 1 BRIGHT
	SPRK A 1 BRIGHT A_SetScale(0.212)//0.053
	SPRK A 1 BRIGHT A_SetScale(0.184)//0.046
	SPRK A 1 BRIGHT A_SetScale(0.156)//0.039
	SPRK A 1 BRIGHT A_SetScale(0.128)//0.032
	SPRK A 1 BRIGHT A_SetScale(0.1)//0.025
	SPRK A 1 BRIGHT A_SetScale(0.072)//0.018
	SPRK A 1 BRIGHT A_SetScale(0.044)//0.011
	stop
  }
}

actor ImpactSpark3 : ImpactSpark
{
  Alpha 1
  Scale 0.2//0.05
  -NOCLIP
  -NOINTERACTION
  -NOGRAVITY
  +BOUNCEONWALLS
  +BOUNCEONFLOORS
  Gravity 0.4//1.2
  BounceFactor 0.7
  WallBounceFactor 0.75
  States
  {
  Spawn:
    SPRK A 0 BRIGHT 
    SPRK A 0 BRIGHT A_Jump(256,1,2,3,4)
    SPRK AAAAA 4 BRIGHT
	SPRK A 2 BRIGHT A_SetScale(0.16)//0.04
	SPRK A 2 BRIGHT A_SetScale(0.12)//0.03
	SPRK A 2 BRIGHT A_SetScale(0.08)//0.02
	SPRK A 2 BRIGHT A_SetScale(0.04)//0.01
	stop
  }
}

actor ImpactSparkGreen : ImpactSpark
{
  Scale 0.32//0.08
  States
  {
  Spawn:
    SPRK B 3 BRIGHT
	SPRK B 2 BRIGHT A_SetScale(0.28)//0.07
	SPRK B 2 BRIGHT A_SetScale(0.24)//0.06
	SPRK B 2 BRIGHT A_SetScale(0.2)//0.05
	SPRK B 2 BRIGHT A_SetScale(0.16)//0.04
	SPRK B 2 BRIGHT A_SetScale(0.12)//0.03
	SPRK B 2 BRIGHT A_SetScale(0.08)//0.02
	SPRK B 2 BRIGHT A_SetScale(0.04)//0.01
	stop
  }
}

actor ImpactSparkBGreen : ImpactSparkGreen
{
  States
  {
  Spawn:
    SPRK C 3 BRIGHT
	SPRK C 2 BRIGHT A_SetScale(0.212)//0.053
	SPRK C 2 BRIGHT A_SetScale(0.184)//0.046
	SPRK C 2 BRIGHT A_SetScale(0.156)//0.039
	SPRK C 2 BRIGHT A_SetScale(0.128)//0.032
	SPRK C 2 BRIGHT A_SetScale(0.1)//0.025
	SPRK C 2 BRIGHT A_SetScale(0.072)//0.018
	SPRK C 2 BRIGHT A_SetScale(0.044)//0.011
	stop
  }
}

actor ImpactSparkRed : ImpactSparkGreen
{
  Alpha 1
  Translation "112:127=172:191"//2
}

actor ImpactSparkBlue : ImpactSparkGreen
{
  Alpha 1
  Scale 0.36//0.09
  Translation "112:127=196:207"
}

actor ImpactSparkDBlue : ImpactSparkBlue
{
  Scale 0.4//0.1
  Translation "112:127=200:207"
}

actor ImpactSpark2
{
  RenderStyle Add
  Alpha 0.95
  Radius 1
  Height 1
  PROJECTILE
  Speed 2
  Damage 0
  Scale 0.96//0.24//0.16//0.08
  +NOCLIP
  +NOTONAUTOMAP
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  +NOINTERACTION
  +DONTSPLASH
  +NOTIMEFREEZE
  States
  {
  Spawn:
    SPRK A 5 BRIGHT //A 0
	SPRK A 2 BRIGHT A_SetScale(0.92)//0.145
	SPRK A 2 BRIGHT A_SetScale(0.84)//0.13
	SPRK A 2 BRIGHT A_SetScale(0.76)//0.115
	SPRK A 2 BRIGHT A_SetScale(0.68)//0.1
	SPRK A 2 BRIGHT A_SetScale(0.6)//0.085
	SPRK A 2 BRIGHT A_SetScale(0.52)//0.07
	SPRK A 2 BRIGHT A_SetScale(0.44)//0.055
	SPRK A 2 BRIGHT A_SetScale(0.36)//0.04
	SPRK A 2 BRIGHT A_SetScale(0.28)//0.025
	SPRK A 2 BRIGHT A_SetScale(0.2)//0.01
	stop
  }
}

actor ImpactSpark2Green : ImpactSpark2
{
  States
  {
  Spawn:
    SPRK B 4 BRIGHT
	SPRK B 2 BRIGHT A_SetScale(0.92)//0.145
	SPRK B 2 BRIGHT A_SetScale(0.84)//0.13
	SPRK B 2 BRIGHT A_SetScale(0.76)//0.115
	SPRK B 2 BRIGHT A_SetScale(0.68)//0.1
	SPRK B 2 BRIGHT A_SetScale(0.6)//0.085
	SPRK B 2 BRIGHT A_SetScale(0.52)//0.07
	SPRK B 2 BRIGHT A_SetScale(0.44)//0.055
	SPRK B 2 BRIGHT A_SetScale(0.36)//0.04
	SPRK B 2 BRIGHT A_SetScale(0.28)//0.025
	SPRK B 2 BRIGHT A_SetScale(0.2)//0.01
	stop
  }
}

actor ImpactSpark2BGreen : ImpactSpark2Green
{
  States
  {
  Spawn:
    SPRK C 4 BRIGHT
	SPRK C 2 BRIGHT A_SetScale(0.92)//0.145
	SPRK C 2 BRIGHT A_SetScale(0.84)//0.13
	SPRK C 2 BRIGHT A_SetScale(0.76)//0.115
	SPRK C 2 BRIGHT A_SetScale(0.68)//0.1
	SPRK C 2 BRIGHT A_SetScale(0.6)//0.085
	SPRK C 2 BRIGHT A_SetScale(0.52)//0.07
	SPRK C 2 BRIGHT A_SetScale(0.44)//0.055
	SPRK C 2 BRIGHT A_SetScale(0.36)//0.04
	SPRK C 2 BRIGHT A_SetScale(0.28)//0.025
	SPRK C 2 BRIGHT A_SetScale(0.2)//0.01
	stop
  }
}

actor ImpactSpark2Red : ImpactSpark2Green
{
  Alpha 1
  Translation "112:127=172:191"//2
}

actor ImpactSpark2Blue : ImpactSpark2Green
{
  Alpha 1
  Scale 1.08//0.27//0.18
  Translation "112:127=196:207"
  States
  {
  Spawn:
    SPRK B 4 BRIGHT
	SPRK B 2 BRIGHT A_SetScale(0.99)//0.163
	SPRK B 2 BRIGHT A_SetScale(0.9)//0.146
	SPRK B 2 BRIGHT A_SetScale(0.81)//0.129
	SPRK B 2 BRIGHT A_SetScale(0.72)//0.112
	SPRK B 2 BRIGHT A_SetScale(0.63)//0.095
	SPRK B 2 BRIGHT A_SetScale(0.54)//0.078
	SPRK B 2 BRIGHT A_SetScale(0.45)//0.061
	SPRK B 2 BRIGHT A_SetScale(0.36)//0.044
	SPRK B 2 BRIGHT A_SetScale(0.27)//0.027
	SPRK B 2 BRIGHT A_SetScale(0.18)//0.01
	stop
  }
}

actor ImpactSpark2DBlue : ImpactSpark2Blue
{
  Scale 1.2//0.3//0.2
  Translation "112:127=200:207"
  States
  {
  Spawn:
    SPRK B 4 BRIGHT
	SPRK B 2 BRIGHT A_SetScale(1.1)//0.181
	SPRK B 2 BRIGHT A_SetScale(1.0)//0.162
	SPRK B 2 BRIGHT A_SetScale(0.9)//0.143
	SPRK B 2 BRIGHT A_SetScale(0.8)//0.124
	SPRK B 2 BRIGHT A_SetScale(0.7)//0.105
	SPRK B 2 BRIGHT A_SetScale(0.6)//0.086
	SPRK B 2 BRIGHT A_SetScale(0.5)//0.067
	SPRK B 2 BRIGHT A_SetScale(0.4)//0.028
	SPRK B 2 BRIGHT A_SetScale(0.3)//0.029
	SPRK B 2 BRIGHT A_SetScale(0.2)//0.02
	stop
  }
}

actor WeaponSmokePuff
{
  RenderStyle None
  Radius 4
  Height 8
  Speed 28
  Damage 0
  PROJECTILE
  +NOCLIP
  +NOTIMEFREEZE
  +NOTONAUTOMAP
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 15 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0)
    Stop
  }
}

actor WeaponSmokePuffLight : WeaponSmokePuff
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_SpawnItemEx("MuzzleFlashLight", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 15 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0)
    Stop
  }
}

actor WeaponSmokePuff_LMGMuzzle : WeaponSmokePuff
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 15 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0)
    Stop
  }
}

actor WeaponSmokePuff_LMGMuzzleLight : WeaponSmokePuff
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_SpawnItemEx("MuzzleFlash2Light", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 15 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0)
    Stop
  }
}

actor WeaponSmokePuff_BigMuzzle : WeaponSmokePuff
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_SpawnItemEx("MuzzleFlash3", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 15 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0)
    Stop
  }
}

actor WeaponSmokePuff_ShotMuzzle : WeaponSmokePuff
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_SpawnItemEx("MuzzleFlash4", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 15 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0)
    Stop
  }
}

actor WeaponSmokePuff_ShotMuzzleLight : WeaponSmokePuff
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_SpawnItemEx("MuzzleFlash4Light", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 15 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0)
    Stop
  }
}

actor WeaponSmokePuffLong : WeaponSmokePuff
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 15 A_SpawnItemEx("WeaponSmokePuffLong_Spawned", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    Stop
  }
}

actor WeaponSmokePuffShotgun : WeaponSmokePuff
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 15 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    Stop
  }
}

actor WeaponSmokePuff_Spawned
{
  RenderStyle Add
  Alpha 0.3
  Scale 0.75//1.5
  Radius 4
  Height 8
  Speed 0
  Damage 0
  PROJECTILE
  +NOCLIP
  +NOTONAUTOMAP
  +CLIENTSIDEONLY
  +FORCEXYBILLBOARD
  +NOTIMEFREEZE
  States
  {
  Spawn:
    SMK1 A 0
    SMK1 AAA 0 A_SpawnItemEx("ImpactSpark", 0, 0, 0, random(2,4), random(-3,3), random(-3,3), 0, 128, 96)
    SMK1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
  Spawn1:
    SMK1 AB 2 A_FadeOut(0.05)
    SMK1 B 0 ThrustThingZ(0,1,0,1)
    SMK1 CD 2 A_FadeOut(0.05)
    SMK1 D 0 ThrustThingZ(0,1,0,1)
    SMK1 E 2 A_FadeOut(0.05)
    //SMK1 ABCDE 2 A_FadeOut(0.05)
    Stop
  Spawn2:
    SMK2 AB 2 A_FadeOut(0.05)
    SMK2 B 0 ThrustThingZ(0,1,0,1)
    SMK2 CD 2 A_FadeOut(0.05)
    SMK2 D 0 ThrustThingZ(0,1,0,1)
    SMK2 E 2 A_FadeOut(0.05)
    //SMK2 ABCDE 2 A_FadeOut(0.05)
    Stop
  Spawn3:
    SMK3 AB 2 A_FadeOut(0.05)
    SMK3 B 0 ThrustThingZ(0,1,0,1)
    SMK3 CD 2 A_FadeOut(0.05)
    SMK3 D 0 ThrustThingZ(0,1,0,1)
    SMK3 E 2 A_FadeOut(0.05)
    //SMK3 ABCDE 2 A_FadeOut(0.05)
    Stop
  Spawn4:
    SMK4 AB 2 A_FadeOut(0.05)
    SMK4 B 0 ThrustThingZ(0,1,0,1)
    SMK4 CD 2 A_FadeOut(0.05)
    SMK4 D 0 ThrustThingZ(0,1,0,1)
    SMK4 E 2 A_FadeOut(0.05)
    //SMK4 ABCDE 2 A_FadeOut(0.05)
    Stop
  Spawn5:
    SMK5 AB 2 A_FadeOut(0.05)
    SMK5 B 0 ThrustThingZ(0,1,0,1)
    SMK5 CD 2 A_FadeOut(0.05)
    SMK5 D 0 ThrustThingZ(0,1,0,1)
    SMK5 E 2 A_FadeOut(0.05)
    //SMK5 ABCDE 2 A_FadeOut(0.05)
    Stop
  Spawn6:
    SMK6 AB 2 A_FadeOut(0.05)
    SMK6 B 0 ThrustThingZ(0,1,0,1)
    SMK6 CD 2 A_FadeOut(0.05)
    SMK6 D 0 ThrustThingZ(0,1,0,1)
    SMK6 E 2 A_FadeOut(0.05)
    //SMK6 ABCDE 2 A_FadeOut(0.05)
    Stop
  }
}

actor WeaponSmokePuffLong_Spawned
{
  RenderStyle Add
  Alpha 0.3
  Scale 1.0//2.0
  Radius 4
  Height 8
  Speed 0
  Damage 0
  PROJECTILE
  +NOCLIP
  +NOTONAUTOMAP
  +CLIENTSIDEONLY
  +FORCEXYBILLBOARD
  +NOTIMEFREEZE
  States
  {
  Spawn:
    SMK1 A 0
    SMK1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
  Spawn1:
    SMK1 A 4 A_FadeOut(0.05)
    SMK1 A 0 ThrustThingZ(0,1,0,1)
    SMK1 B 4 A_FadeOut(0.05)
    SMK1 B 0 ThrustThingZ(0,1,0,1)
    SMK1 C 4 A_FadeOut(0.05)
    SMK1 C 0 ThrustThingZ(0,1,0,1)
    SMK1 D 4 A_FadeOut(0.05)
    SMK1 D 0 ThrustThingZ(0,1,0,1)
    SMK1 E 4 A_FadeOut(0.05)
    //SMK1 ABCDE 4 A_FadeOut(0.05)
    Stop
  Spawn2:
    SMK2 A 4 A_FadeOut(0.05)
    SMK2 A 0 ThrustThingZ(0,1,0,1)
    SMK2 B 4 A_FadeOut(0.05)
    SMK2 B 0 ThrustThingZ(0,1,0,1)
    SMK2 C 4 A_FadeOut(0.05)
    SMK2 C 0 ThrustThingZ(0,1,0,1)
    SMK2 D 4 A_FadeOut(0.05)
    SMK2 D 0 ThrustThingZ(0,1,0,1)
    SMK2 E 4 A_FadeOut(0.05)
    //SMK2 ABCDE 4 A_FadeOut(0.05)
    Stop
  Spawn3:
    SMK3 A 4 A_FadeOut(0.05)
    SMK3 A 0 ThrustThingZ(0,1,0,1)
    SMK3 B 4 A_FadeOut(0.05)
    SMK3 B 0 ThrustThingZ(0,1,0,1)
    SMK3 C 4 A_FadeOut(0.05)
    SMK3 C 0 ThrustThingZ(0,1,0,1)
    SMK3 D 4 A_FadeOut(0.05)
    SMK3 D 0 ThrustThingZ(0,1,0,1)
    SMK3 E 4 A_FadeOut(0.05)
    //SMK3 ABCDE 4 A_FadeOut(0.05)
    Stop
  Spawn4:
    SMK4 A 4 A_FadeOut(0.05)
    SMK4 A 0 ThrustThingZ(0,1,0,1)
    SMK4 B 4 A_FadeOut(0.05)
    SMK4 B 0 ThrustThingZ(0,1,0,1)
    SMK4 C 4 A_FadeOut(0.05)
    SMK4 C 0 ThrustThingZ(0,1,0,1)
    SMK4 D 4 A_FadeOut(0.05)
    SMK4 D 0 ThrustThingZ(0,1,0,1)
    SMK4 E 4 A_FadeOut(0.05)
    //SMK4 ABCDE 4 A_FadeOut(0.05)
    Stop
  Spawn5:
    SMK5 A 4 A_FadeOut(0.05)
    SMK5 A 0 ThrustThingZ(0,1,0,1)
    SMK5 B 4 A_FadeOut(0.05)
    SMK5 B 0 ThrustThingZ(0,1,0,1)
    SMK5 C 4 A_FadeOut(0.05)
    SMK5 C 0 ThrustThingZ(0,1,0,1)
    SMK5 D 4 A_FadeOut(0.05)
    SMK5 D 0 ThrustThingZ(0,1,0,1)
    SMK5 E 4 A_FadeOut(0.05)
    //SMK5 ABCDE 4 A_FadeOut(0.05)
    Stop
  Spawn6:
    SMK6 A 4 A_FadeOut(0.05)
    SMK6 A 0 ThrustThingZ(0,1,0,1)
    SMK6 B 4 A_FadeOut(0.05)
    SMK6 B 0 ThrustThingZ(0,1,0,1)
    SMK6 C 4 A_FadeOut(0.05)
    SMK6 C 0 ThrustThingZ(0,1,0,1)
    SMK6 D 4 A_FadeOut(0.05)
    SMK6 D 0 ThrustThingZ(0,1,0,1)
    SMK6 E 4 A_FadeOut(0.05)
    //SMK6 ABCDE 4 A_FadeOut(0.05)
    Stop
  }
}

actor WeaponSmokePuffShotgun_Spawned
{
  RenderStyle Add
  Alpha 0.3
  Scale 1.0//2.0
  Radius 4
  Height 8
  Speed 0
  Damage 0
  PROJECTILE
  +NOCLIP
  +NOTONAUTOMAP
  +CLIENTSIDEONLY
  +FORCEXYBILLBOARD
  +NOTIMEFREEZE
  States
  {
  Spawn:
    SMK1 A 0
    SMK1 AAA 0 A_SpawnItemEx("ImpactSpark", 0, 0, 0, random(2,4), random(-3,3), random(-3,3), 0, 128, 0)
    SMK1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
  Spawn1:
    SMK1 A 3 A_FadeOut(0.05)
    SMK1 A 0 ThrustThingZ(0,1,0,1)
    SMK1 BC 3 A_FadeOut(0.05)
    SMK1 C 0 ThrustThingZ(0,1,0,1)
    SMK1 D 3 A_FadeOut(0.05)
    SMK1 D 0 ThrustThingZ(0,1,0,1)
    SMK1 E 3 A_FadeOut(0.05)
    //SMK1 ABCDE 3 A_FadeOut(0.05)
    Stop
  Spawn2:
    SMK2 A 3 A_FadeOut(0.05)
    SMK2 A 0 ThrustThingZ(0,1,0,1)
    SMK2 BC 3 A_FadeOut(0.05)
    SMK2 C 0 ThrustThingZ(0,1,0,1)
    SMK2 D 3 A_FadeOut(0.05)
    SMK2 D 0 ThrustThingZ(0,1,0,1)
    SMK2 E 3 A_FadeOut(0.05)
    //SMK2 ABCDE 3 A_FadeOut(0.05)
    Stop
  Spawn3:
    SMK3 A 3 A_FadeOut(0.05)
    SMK3 A 0 ThrustThingZ(0,1,0,1)
    SMK3 BC 3 A_FadeOut(0.05)
    SMK3 C 0 ThrustThingZ(0,1,0,1)
    SMK3 D 3 A_FadeOut(0.05)
    SMK3 D 0 ThrustThingZ(0,1,0,1)
    SMK3 E 3 A_FadeOut(0.05)
    //SMK3 ABCDE 3 A_FadeOut(0.05)
    Stop
  Spawn4:
    SMK4 A 3 A_FadeOut(0.05)
    SMK4 A 0 ThrustThingZ(0,1,0,1)
    SMK4 BC 3 A_FadeOut(0.05)
    SMK4 C 0 ThrustThingZ(0,1,0,1)
    SMK4 D 3 A_FadeOut(0.05)
    SMK4 D 0 ThrustThingZ(0,1,0,1)
    SMK4 E 3 A_FadeOut(0.05)
    //SMK4 ABCDE 3 A_FadeOut(0.05)
    Stop
  Spawn5:
    SMK5 A 3 A_FadeOut(0.05)
    SMK5 A 0 ThrustThingZ(0,1,0,1)
    SMK5 BC 3 A_FadeOut(0.05)
    SMK5 C 0 ThrustThingZ(0,1,0,1)
    SMK5 D 3 A_FadeOut(0.05)
    SMK5 D 0 ThrustThingZ(0,1,0,1)
    SMK5 E 3 A_FadeOut(0.05)
    //SMK5 ABCDE 3 A_FadeOut(0.05)
    Stop
  Spawn6:
    SMK6 A 3 A_FadeOut(0.05)
    SMK6 A 0 ThrustThingZ(0,1,0,1)
    SMK6 BC 3 A_FadeOut(0.05)
    SMK6 C 0 ThrustThingZ(0,1,0,1)
    SMK6 D 3 A_FadeOut(0.05)
    SMK6 D 0 ThrustThingZ(0,1,0,1)
    SMK6 E 3 A_FadeOut(0.05)
    //SMK6 ABCDE 3 A_FadeOut(0.05)
    Stop
  }
}

actor FlightSmokePuff
{
  RenderStyle Add
  Alpha 0.5//0.75//0.85
  Scale 0.25//0.5
  Radius 4
  Height 8
  Speed 0
  Damage 0
  PROJECTILE
  +NOCLIP
  -RANDOMIZE
  +CLIENTSIDEONLY
  +NOINTERACTION
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
    SMK1 A 2
    SMK1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
  Spawn1:
    SMK1 AB 2 BRIGHT A_FadeOut(0.03)
    SMK1 B 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK1 CD 2 BRIGHT A_FadeOut(0.03)
    SMK1 D 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK1 EF 2 BRIGHT A_FadeOut(0.03)
    SMK1 F 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK1 GH 2 BRIGHT A_FadeOut(0.03)
    SMK1 H 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK1 IJ 2 BRIGHT A_FadeOut(0.03)
    SMK1 J 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK1 KLMNOP 2 BRIGHT A_FadeOut(0.03)
    //SMK1 ABCDEFGHIJKLMNOP 2 Bright A_FadeOut(0.05)
    Stop
  Spawn2:
    SMK2 AB 2 BRIGHT A_FadeOut(0.03)
    SMK2 B 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK2 CD 2 BRIGHT A_FadeOut(0.03)
    SMK2 D 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK2 EF 2 BRIGHT A_FadeOut(0.03)
    SMK2 F 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK2 GH 2 BRIGHT A_FadeOut(0.03)
    SMK2 H 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK2 IJ 2 BRIGHT A_FadeOut(0.03)
    SMK2 J 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK2 KLMNOP 2 BRIGHT A_FadeOut(0.03)
    //SMK2 ABCDEFGHIJKLMNOP 2 Bright A_FadeOut(0.05)
    Stop
  Spawn3:
    SMK3 AB 2 BRIGHT A_FadeOut(0.03)
    SMK3 B 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK3 CD 2 BRIGHT A_FadeOut(0.03)
    SMK3 D 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK3 EF 2 BRIGHT A_FadeOut(0.03)
    SMK3 F 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK3 GH 2 BRIGHT A_FadeOut(0.03)
    SMK3 H 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK3 IJ 2 BRIGHT A_FadeOut(0.03)
    SMK3 J 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK3 KLMNOP 2 BRIGHT A_FadeOut(0.03)
    //SMK3 ABCDEFGHIJKLMNOP 2 Bright A_FadeOut(0.05)
    Stop
  Spawn4:
    SMK4 AB 2 BRIGHT A_FadeOut(0.03)
    SMK4 B 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK4 CD 2 BRIGHT A_FadeOut(0.03)
    SMK4 D 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK4 EF 2 BRIGHT A_FadeOut(0.03)
    SMK4 F 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK4 GH 2 BRIGHT A_FadeOut(0.03)
    SMK4 H 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK4 IJ 2 BRIGHT A_FadeOut(0.03)
    SMK4 J 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK4 KLMNOP 2 BRIGHT A_FadeOut(0.03)
    //SMK4 ABCDEFGHIJKLMNOP 2 Bright A_FadeOut(0.05)
    Stop
  Spawn5:
    SMK5 AB 2 BRIGHT A_FadeOut(0.03)
    SMK5 B 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK5 CD 2 BRIGHT A_FadeOut(0.03)
    SMK5 D 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK5 EF 2 BRIGHT A_FadeOut(0.03)
    SMK5 F 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK5 GH 2 BRIGHT A_FadeOut(0.03)
    SMK5 H 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK5 IJ 2 BRIGHT A_FadeOut(0.03)
    SMK5 J 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK5 KLMNOP 2 BRIGHT A_FadeOut(0.03)
    //SMK5 ABCDEFGHIJKLMNOP 2 Bright A_FadeOut(0.05)
    Stop
  Spawn6:
    SMK6 AB 2 BRIGHT A_FadeOut(0.03)
    SMK6 B 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK6 CD 2 BRIGHT A_FadeOut(0.03)
    SMK6 D 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK6 EF 2 BRIGHT A_FadeOut(0.03)
    SMK6 F 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK6 GH 2 BRIGHT A_FadeOut(0.03)
    SMK6 H 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK6 IJ 2 BRIGHT A_FadeOut(0.03)
    SMK6 J 0 BRIGHT ThrustThingZ(0,1,0,1)
    SMK6 KLMNOP 2 BRIGHT A_FadeOut(0.03)
    //SMK6 ABCDEFGHIJKLMNOP 2 Bright A_FadeOut(0.05)
    Stop
  }
}

ACTOR RGATracerSmoke : RevenantTracerSmoke replaces RevenantTracerSmoke
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  RenderStyle Add
  Alpha 0.2
  States
  {	
  Spawn:
    PUFF ABC 2
    Stop
  }
}

actor MuzzleFlash
{
  RenderStyle Add
  //Alpha 0.9//0.8//0.7
  Scale 0.215//0.265//0.53
  Speed 2
  Radius 4
  Height 8
  Damage 0
  PROJECTILE
  +NOCLIP
  +NOTONAUTOMAP
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  +NOINTERACTION
  +NOTIMEFREEZE
  States
  {
  Spawn:
    E1_A B 0
    E1_A B 0
    E1_A B 0 BRIGHT A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
  Spawn1:
	E1_A B 1 BRIGHT
	E1_A C 1 BRIGHT A_Fadeout(0.4)//0.1
	//E1_A CDEFGH 1 BRIGHT A_Fadeout(0.2)//0.1
    Stop
  Spawn2:
    E2_A B 1 BRIGHT
	E2_A C 1 BRIGHT A_Fadeout(0.4)//0.1
	//E2_A CDEFGH 1 BRIGHT A_Fadeout(0.2)
    Stop
  Spawn3:
    E3_A B 1 BRIGHT
	E3_A C 1 BRIGHT A_Fadeout(0.4)//0.1
	//E3_A CDEFGH 1 BRIGHT A_Fadeout(0.2)
    Stop
  Spawn4:
    E4_A B 1 BRIGHT
	E4_A C 1 BRIGHT A_Fadeout(0.4)//0.1
	//E4_A CDEFGH 1 BRIGHT A_Fadeout(0.2)
    Stop
  Spawn5:
    E5_A B 1 BRIGHT
	E5_A C 1 BRIGHT A_Fadeout(0.4)//0.1
	//E5_A CDEFGH 1 BRIGHT A_Fadeout(0.2)
    Stop
  }
}

actor MuzzleFlashLight : MuzzleFlash
{
  Alpha 0.7//0.6//0.55
}

actor MuzzleFlash2 : MuzzleFlash
{
  Scale 0.25//0.3//0.6
}

actor MuzzleFlash2Light : MuzzleFlash2
{
  Alpha 0.7//0.6//0.55
}

actor MuzzleFlash3 : MuzzleFlash
{
  Scale 0.27//0.32//0.64
}

actor MuzzleFlash4 : MuzzleFlash3
{
  Scale 0.295//
  States
  {
  Spawn:
    E1_A B 0
    E1_A B 0 BRIGHT A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
  Spawn1:
	E1_A B 2 BRIGHT
	E1_A CCD 1 BRIGHT A_Fadeout(0.25)
	//E1_A CCDDEEFFGGHH 1 BRIGHT A_Fadeout(0.13)//.12 at 2 tics
    Stop
  Spawn2:
    E2_A B 2 BRIGHT
	E2_A CCD 1 BRIGHT A_Fadeout(0.25)
    //E2_A CCDDEEFFGGHH 1 BRIGHT A_Fadeout(0.13)
    Stop
  Spawn3:
    E3_A B 2 BRIGHT
	E3_A CCD 1 BRIGHT A_Fadeout(0.25)
    //E3_A CCDDEEFFGGHH 1 BRIGHT A_Fadeout(0.13)
    Stop
  Spawn4:
    E4_A B 2 BRIGHT
	E4_A CCD 1 BRIGHT A_Fadeout(0.25)
    //E4_A CCDDEEFFGGHH 1 BRIGHT A_Fadeout(0.13)
    Stop
  Spawn5:
    E5_A B 2 BRIGHT
	E5_A CCD 1 BRIGHT A_Fadeout(0.25)
    //E5_A CCDDEEFFGGHH 1 BRIGHT A_Fadeout(0.13)
    Stop
  }
}
actor MuzzleFlash4Light : MuzzleFlash4
{
  Alpha 0.7//0.6
}

actor MissileExhaust : MuzzleFlash
{
  Alpha 0.9
  States
  {
  Spawn:
    E1_A B 0
    E1_A B 0
    E1_A B 0 BRIGHT A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
  Spawn1:
	E1_A CDEF 1 BRIGHT A_Fadeout(0.2)
    Stop
  Spawn2:
	E2_A CDEF 1 BRIGHT A_Fadeout(0.2)
    Stop
  Spawn3:
	E3_A CDEF 1 BRIGHT A_Fadeout(0.2)
    Stop
  Spawn4:
	E4_A CDEF 1 BRIGHT A_Fadeout(0.2)
    Stop
  Spawn5:
	E5_A CDEF 1 BRIGHT A_Fadeout(0.2)
    Stop
  }
}

actor MissileExhaust2 : MissileExhaust
{
  Scale 0.165
}

actor HitIndicator : CustomInventory
{
  inventory.maxamount 9999
  +ALWAYSPICKUP
  States
  {
  Spawn:
    TNT1 A 5
    Stop
  Pickup:
    TNT1 A 0 ACS_NamedExecute("RefHInd",0,0,0,0)
    Stop
  }
}

actor HitIndicatorJugg : CustomInventory
{
  inventory.maxamount 9999
  +ALWAYSPICKUP
  States
  {
  Spawn:
    TNT1 A 5
    Stop
  Pickup:
    TNT1 A 0 ACS_NamedExecute("RefHInd",0,1,0,0)
    Stop
  }
}

actor HitIndicatorKill : CustomInventory
{
  inventory.maxamount 9999
  +ALWAYSPICKUP
  States
  {
  Spawn:
    TNT1 A 5
    Stop
  Pickup:
    TNT1 A 0 ACS_NamedExecute("RefKInd",0,0,0,0)
    Stop
  }
}

actor RefReviver : CustomInventory
{
  inventory.maxamount 9999
  +ALWAYSPICKUP
  States
  {
  Spawn:
    TNT1 A 5
    Stop
  Pickup:
    TNT1 A 0
    TNT1 A 0 A_JumpIfInventory("InLastStand",1,1)
    Stop
    TNT1 A 0 ACS_NamedExecute("RefRevive",0,0,0,0)
    Stop
  }
}