actor RGAChaingun_2 : RGAMonster
{
  Obituary "%o was perforated by a commando."
  Health 90
  GibHealth 100
  Radius 20
  Height 56
  Mass 110
  Speed 8
  PainChance 120
  PainChance "Dragon", 60
  PainChance "DragonF", 60
  PainChance "Dragonsplosion", 60
  PainChance "RGAFire", 60
  PainChance "Knife", 255
  PainChance "Explosion", 255
  PainChance "ExplosionF", 255
  PainChance "ExplosionC", 255
  PainChance "NormalExplode", 255
  PainChance "Stun", 255
  PainChance "Stun2", 255
  PainChance "Stun3", 255
  DamageFactor "Knife", 1.4
  SeeSound "chainguy/sight"
  PainSound "chainguy/pain"
  DeathSound "chainguy/death"
  ActiveSound "chainguy/active"
  Species "Chaingunzombie"
  MONSTER
  +FLOORCLIP
  Translation "112:127=[224,31,31]:[0,0,0]"
  Tag "Commando"
  States
  {
  Spawn:
    CZOM A 0
    CZOM A 0 A_CheckFlag("Friendly","Idle")
    CZOM A 0 Thing_SetSpecial(0,226,613,0,random(7,14))
  Idle:
    CZOM A 10 A_Look
    Loop
  See:
    CZOM A 0 A_JumpIfInventory("MonHold",1,"Death")
    CZOM A 0 A_JumpIfInventory("BlindCheck",2,"SeeBlind")
    CZOM AABBCCDDAABBCC 3 A_Chase
    CZOM DD 3 A_Chase("","Missile")
    CZOM AABBCCDDAABBCC 3 A_Chase
    CZOM DD 3 A_Chase("","Missile")
    CZOM D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    Loop
  SeeBlind:
    CZOM A 0 A_Jump(112,"MissileBlind","SeeBlind2","SeeBlind2")
    CZOM AAB 3 A_Wander
    CZOM B 0 A_Jump(224,2)
    CZOM B 0 A_Pain
    CZOM B 3 A_Wander
    CZOM B 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+6
    CZOM CCDD 3 A_Wander
    CZOM D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    goto See
  SeeBlind2:
    CZOM A 0 A_Jump(256,1,2,3)
    CZOM AAA 3
    CZOM A 0 A_Jump(224,2)
    CZOM A 0 A_Pain
    CZOM A 3
    CZOM A 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+2
    CZOM A 0 A_Jump(256,1,2,3,4)
    CZOM AAAA 3
    goto See
  MissileBlind:
    CZOM E 2
    CZOM E 8 A_PlayWeaponSound("mp5k/bolt")
    CZOM E 0 A_JumpIfInventory("BlindCheck",2,1)
    goto Missile+2
    CZOM F 0 BRIGHT A_PlayWeaponSound("mp5k/fire")
    CZOM F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 10, 1, 7, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZOM F 2 
    CZOM E 0 BRIGHT A_PlayWeaponSound("mp5k/fire")
    CZOM E 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 10, 1, 7, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZOM E 2
    CZOM F 0 A_Jump(64,"See")
    goto MissileBlind+2
  Melee:
  Missile:
    CZOM E 2 A_FaceTarget
    CZOM E 8 A_PlayWeaponSound("mp5k/bolt")
    CZOM F 0 BRIGHT A_FaceTarget
    CZOM F 0 BRIGHT A_PlayWeaponSound("mp5k/fire")
    CZOM F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 5, 1, 7, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZOM F 2
    CZOM E 0 BRIGHT A_FaceTarget
    CZOM E 0 BRIGHT A_PlayWeaponSound("mp5k/fire")
    CZOM E 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 5, 1, 7, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZOM E 2
    CZOM F 0 A_MonsterRefire(80,"See")
    goto Missile+2
  Pain.Stun3:
    CZOM G 0 ACS_NamedExecuteAlways("RefStun",0,2,0,0)
    goto Pain
  Pain.Stun2:
    CZOM G 0 ACS_NamedExecuteAlways("RefStun",0,1,0,0)
    goto Pain
  Pain.Stun:
    CZOM G 0 ACS_NamedExecuteAlways("RefStun",0,0,0,0)
    goto Pain
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    CZOM G 3
    CZOM G 6 A_Pain
    goto See
  Pain:
    CZOM G 3
    CZOM G 3 A_Pain
    goto See
  Death.Shotgungib:
    CZOM H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZOM H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZOM H 0
    CZOM H 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    CZOM H 0 A_Jump(18,"Death2")
    CZOM H 5 A_Jump(96,"Death1")
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("MP5Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death.Burnt:
    "####" # 0 A_Jump(128,2)
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
  Death.Crush:
  Death.Sniper:
    CZOM H 5
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("MP5Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death.Knife:
    CZOM H 5
    CZOM I 5
    CZOM I 0 A_SpawnItemEx("MP5Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CZOM J 5 A_NoBlocking
    CZOM J 0 A_PlaySound("body/splats")
    CZOM KL 5 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" G 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(80,"Death.Burnt")
    "####" A 0 A_ChangeFlag("FRIGHTENED",1)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Chase("","")
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Chase("","")
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Chase("","")
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Chase("","")
    "####" A 0 A_ChangeFlag("FRIGHTENED",0)
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" D 0 A_Jump(32,"Death.Burnt")
  Death.FireCont:
    "####" A 0 A_Jump(48,2)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
	"####" D 0 A_JumpIfInventory("MonHold",5,"Death.Burnt")
    "####" D 0 A_Jump(160,"Death.Burnt")
	"####" D 0 A_GiveInventory("MonHold",1)
    goto Death.FireCont
  Death.Ice:
    "####" # 0 A_SpawnItemEx("MP5Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    "####" # 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 5 A_GenericFreezeDeath
    "----" A 1 A_FreezeDeathChunks
    wait
  Death.BarrelBoom:
    CZOM H 0 A_JumpIfCloser(128, "XDeath")
  Death.NormalExplode:
  Death.Cyber:
  Death.ExplosionF:
  Death.ExplosionC:
  Death.Explosion:
    CZOM H 5 A_JumpIfHealthLower(-100, "XDeath")
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("MP5Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death1:
    CDTH A 5
    CDTH B 5 A_Scream
    CDTH B 0 A_SpawnItemEx("MP5Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CDTH B 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CDTH C 5 A_NoBlocking
    CDTH D 5
    CDTH EF 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CDTH G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    CDTH G -1
    Stop
  Death2:
    CDTH A 5
    CDTH B 5 A_Pain
    CDTH C 5 A_NoBlocking
    CDTH DE 5//F 5
    //CDTH G 5
    TNT1 A 0 A_Stop
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_2_LastStand",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    TNT1 A 15 A_JumpIfInventory("Blinded",1,"LastDeath")
    Wait
  XDeath:
    GPOS P 6
    GPOS Q 6 A_XScream
    GPOS Q 0 A_SpawnItemEx("MP5Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    GPOS Q 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    GPOS R 6 A_NoBlocking
    GPOS S 6
    GPOS T 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    GPOS T -1
    Stop
    GPOS TTTTTT 5250 CanRaise
    GPOS TTTTTTTTT 2 A_FadeOut(0.1)
    Stop
  LastDeath:
    CDTH G 5
    CDTH G 15 A_TakeInventory("Blinded",1)
    CDTH G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CDTH G -1
    Stop
  DeathClean:
    CZOM NNNNNN 5250 CanRaise
    CZOM NNNNNNNNN 2 A_FadeOut(0.1)
    Stop
  DeathClean2:
    CDTH GGGGGG 5250 CanRaise
    CDTH GGGGGGGGG 2 A_FadeOut(0.1)
    Stop
  Raise:
    CZOM N 0
    CZOM N 0 A_ChangeFlag("FRIGHTENED",0)
    CZOM N 0 A_TakeInventory("MonHold",35)
    CZOM N 5 Thing_SetSpecial(0,226,613,0,random(4,13))
    CZOM MLKJIH 5
    goto See
  }
}

actor RGAChaingun_3 : RGAChaingun_2
{
  Translation "112:127=[131,62,31]:[0,0,0]"
  States
  {
  MissileBlind:
    CZOM E 1
    CZOM E 9 A_PlayWeaponSound("p90/bolt")
    CZOM E 0 A_JumpIfInventory("BlindCheck",2,1)
    goto Missile+2
    CZOM F 0 BRIGHT A_PlayWeaponSound("p90/fire")
    CZOM F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 10, 1, 5, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZOM F 1
    CZOM E 0 BRIGHT A_PlayWeaponSound("p90/fire")
    CZOM E 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 10, 1, 5, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZOM E 1
    CZOM F 0 A_Jump(64,"See")
    goto MissileBlind+2
  Melee:
  Missile:
    CZOM E 1 A_FaceTarget
    CZOM E 9 A_PlayWeaponSound("p90/bolt")
    CZOM F 0 BRIGHT A_FaceTarget
    CZOM F 0 BRIGHT A_PlayWeaponSound("p90/fire")
    CZOM F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 5, 1, 5, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZOM F 1
    CZOM E 0 BRIGHT A_FaceTarget
    CZOM E 0 BRIGHT A_PlayWeaponSound("p90/fire")
    CZOM E 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 5, 1, 5, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZOM E 1
    CZOM F 0 A_MonsterRefire(80,"See")
    goto Missile+2
  Death.Shotgungib:
    CZOM H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZOM H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZOM H 0
    CZOM H 0 A_CheckFlag("Boss",3)
    CZOM H 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    CZOM H 0 A_Jump(18,"Death2")
    CZOM H 5 A_Jump(96,"Death1")
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("P90Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death.Burnt:
    "####" # 0 A_Jump(128,2)
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
  Death.Crush:
  Death.Sniper:
    CZOM H 5
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("P90Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death.Knife:
    CZOM H 5
    CZOM I 5
    CZOM I 0 A_SpawnItemEx("P90Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CZOM J 5 A_NoBlocking
    CZOM J 0 A_PlaySound("body/splats")
    CZOM KL 5 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" G 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(80,"Death.Burnt")
    "####" A 0 A_ChangeFlag("FRIGHTENED",1)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Chase("","")
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Chase("","")
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Chase("","")
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Chase("","")
    "####" A 0 A_ChangeFlag("FRIGHTENED",0)
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" D 0 A_Jump(32,"Death.Burnt")
  Death.FireCont:
    "####" A 0 A_Jump(48,2)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
	"####" D 0 A_JumpIfInventory("MonHold",5,"Death.Burnt")
    "####" D 0 A_Jump(160,"Death.Burnt")
	"####" D 0 A_GiveInventory("MonHold",1)
    goto Death.FireCont
  Death.Ice:
    "####" # 0 A_SpawnItemEx("P90Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    "####" # 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 5 A_GenericFreezeDeath
    "----" A 1 A_FreezeDeathChunks
    wait
  Death.BarrelBoom:
    CZOM H 0 A_JumpIfCloser(128, "XDeath")
  Death.NormalExplode:
  Death.Cyber:
  Death.ExplosionF:
  Death.ExplosionC:
  Death.Explosion:
    CZOM H 5 A_JumpIfHealthLower(-100, "XDeath")
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("P90Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death1:
    CDTH A 5
    CDTH B 5 A_Scream
    CDTH B 0 A_SpawnItemEx("P90Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CDTH B 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CDTH C 5 A_NoBlocking
    CDTH D 5
    CDTH EF 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CDTH G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    CDTH G -1
    Stop
  Death2:
    CDTH A 5
    CDTH B 5 A_Pain
    CDTH C 5 A_NoBlocking
    CDTH DE 5//F 5
    //CDTH G 5
    TNT1 A 0 A_Stop
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_3_LastStand",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    TNT1 A 15 A_JumpIfInventory("Blinded",1,"LastDeath")
    Wait
  XDeath:
    GPOS P 6
    GPOS Q 6 A_XScream
    GPOS Q 0 A_SpawnItemEx("P90Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    GPOS Q 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    GPOS R 6 A_NoBlocking
    GPOS S 6
    GPOS T 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    GPOS T -1
    Stop
    GPOS TTTTTT 5250 CanRaise
    GPOS TTTTTTTTT 2 A_FadeOut(0.1)
    Stop
  DeathClean:
    CZOM NNNNNN 5250 CanRaise
    CZOM NNNNNNNNN 2 A_FadeOut(0.1)
    Stop
  DeathClean2:
    CDTH GGGGGG 5250 CanRaise
    CDTH GGGGGGGGG 2 A_FadeOut(0.1)
    Stop
  }
}

actor RGAChaingun_4 : RGAMonster
{
  Obituary "%o was minced by a commando."
  Health 100
  GibHealth 100
  Radius 20
  Height 56
  Mass 110
  Speed 8
  Scale 1.02
  PainChance 120
  PainChance "Dragon", 60
  PainChance "DragonF", 60
  PainChance "Dragonsplosion", 60
  PainChance "RGAFire", 60
  PainChance "Knife", 255
  PainChance "Explosion", 255
  PainChance "ExplosionF", 255
  PainChance "ExplosionC", 255
  PainChance "NormalExplode", 255
  PainChance "Stun", 255
  PainChance "Stun2", 255
  PainChance "Stun3", 255
  DamageFactor "Knife", 1.4
  SeeSound "chainguy/sight"
  PainSound "chainguy/pain"
  DeathSound "chainguy/death"
  ActiveSound "chainguy/active"
  Species "Chaingunzombie"
  MONSTER
  +FLOORCLIP
  Translation "112:127=[224,31,31]:[0,0,0]"
  Tag "Commando"
  States
  {
  Spawn:
    CZM2 A 0
    CZM2 A 0 A_CheckFlag("Friendly","Idle")
    CZM2 A 0 Thing_SetSpecial(0,226,613,0,random(8,16))
  Idle:
    CZM2 A 10 A_Look
    Loop
  See:
    CZM2 A 0 A_JumpIfInventory("MonHold",1,"Death")
    CZM2 A 0 A_JumpIfInventory("BlindCheck",2,"SeeBlind")
    CZM2 AABBCCDDAABBCC 3 A_Chase
    CZM2 DD 3 A_Chase("","Missile")
    CZM2 AABBCCDDAABBCC 3 A_Chase
    CZM2 DD 3 A_Chase("","Missile")
    CZM2 D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    Goto See+1
  SeeBlind:
    CZM2 A 0 A_Jump(112,"MissileBlind","SeeBlind2","SeeBlind2")
    CZM2 AAB 3 A_Wander
    CZM2 B 0 A_Jump(224,2)
    CZM2 B 0 A_Pain
    CZM2 B 3 A_Wander
    CZM2 B 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+6
    CZM2 CCDD 3 A_Wander
    CZM2 D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    goto See
  SeeBlind2:
    CZM2 A 0 A_Jump(256,1,2,3)
    CZM2 AAA 3
    CZM2 A 0 A_Jump(224,2)
    CZM2 A 0 A_Pain
    CZM2 A 3
    CZM2 A 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+2
    CZM2 A 0 A_Jump(256,1,2,3,4)
    CZM2 AAAA 3
    goto See
  MissileBlind:
    CZM2 E 1
    CZM2 E 9 A_PlayWeaponSound("ump45/bolt")
    CZM2 E 0 A_JumpIfInventory("BlindCheck",2,1)
    goto Missile+2
    CZM2 F 0 BRIGHT A_PlayWeaponSound("ump45/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 10, 1, 6, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZM2 E 1 //BRIGHT
    CZM2 F 0 BRIGHT A_PlayWeaponSound("ump45/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 20, 1, 6, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZM2 E 2 //BRIGHT
    CZM2 F 0 BRIGHT A_PlayWeaponSound("ump45/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 10, 1, 6, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZM2 E 1 //BRIGHT
    CZM2 F 0 BRIGHT A_PlayWeaponSound("ump45/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 20, 1, 6, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZM2 E 2 //BRIGHT
    CZM2 F 0 A_Jump(64,"See")
    goto MissileBlind+2
  Melee:
  Missile:
    CZM2 E 1 A_FaceTarget
    CZM2 E 9 A_PlayWeaponSound("ump45/bolt")
    CZM2 F 0 BRIGHT A_FaceTarget
    CZM2 F 0 BRIGHT A_PlayWeaponSound("ump45/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 5, 1, 6, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZM2 E 1 //BRIGHT
    CZM2 F 0 BRIGHT A_PlayWeaponSound("ump45/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 10, 1, 6, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZM2 E 2 //BRIGHT
    CZM2 F 0 BRIGHT A_FaceTarget
    CZM2 F 0 BRIGHT A_PlayWeaponSound("ump45/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 5, 1, 6, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZM2 E 1 //BRIGHT
    CZM2 F 0 BRIGHT A_PlayWeaponSound("ump45/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 10, 1, 6, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZM2 E 2 //BRIGHT
    CZM2 E 0 A_MonsterRefire(80,"See")
    goto Missile+2
  Pain.Stun3:
    CZM2 G 0 ACS_NamedExecuteAlways("RefStun",0,2,0,0)
    goto Pain
  Pain.Stun2:
    CZM2 G 0 ACS_NamedExecuteAlways("RefStun",0,1,0,0)
    goto Pain
  Pain.Stun:
    CZM2 G 0 ACS_NamedExecuteAlways("RefStun",0,0,0,0)
    goto Pain
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    CZM2 G 3
    CZM2 G 6 A_Pain
    goto See
  Pain:
    CZM2 G 3
    CZM2 G 3 A_Pain
    goto See
  Death.Shotgungib:
    CZM2 H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZM2 H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZM2 H 0
    CZM2 H 0 A_CheckFlag("Boss",3)
    CZM2 H 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    CZM2 H 0 A_Jump(18,"Death2")
    CZM2 H 5 A_Jump(96,"Death1")
    CZM2 I 5 A_Scream
    CZM2 I 0 A_SpawnItemEx("UMP45Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  Death.Burnt:
    "####" # 0 A_Jump(128,2)
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
  Death.Crush:
  Death.Sniper:
    CZM2 H 5
    CZM2 I 5 A_Scream
    CZM2 I 0 A_SpawnItemEx("UMP45Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  Death.Knife:
    CZM2 H 5
    CZM2 I 5
    CZM2 I 0 A_SpawnItemEx("UMP45Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 J 0 A_PlaySound("body/splats")
    CZM2 KL 5 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" G 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(80,"Death.Burnt")
    "####" A 0 A_ChangeFlag("FRIGHTENED",1)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Chase("","")
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Chase("","")
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Chase("","")
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Chase("","")
    "####" A 0 A_ChangeFlag("FRIGHTENED",0)
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" D 0 A_Jump(32,"Death.Burnt")
  Death.FireCont:
    "####" A 0 A_Jump(48,2)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
	"####" D 0 A_JumpIfInventory("MonHold",5,"Death.Burnt")
    "####" D 0 A_Jump(160,"Death.Burnt")
	"####" D 0 A_GiveInventory("MonHold",1)
    goto Death.FireCont
  Death.Ice:
    "####" # 0 A_SpawnItemEx("UMP45Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    "####" # 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 5 A_GenericFreezeDeath
    "----" A 1 A_FreezeDeathChunks
    wait
  Death.BarrelBoom:
    CZM2 H 0 A_JumpIfCloser(128, "XDeath")
  Death.NormalExplode:
  Death.Cyber:
  Death.ExplosionF:
  Death.ExplosionC:
  Death.Explosion:
    CZM2 H 5 A_JumpIfHealthLower(-100, "XDeath")
    CZM2 I 5 A_Scream
    CZM2 I 0 A_SpawnItemEx("UMP45Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  Death1:
    CDTH A 5
    CDTH B 5 A_Scream
    CDTH B 0 A_SpawnItemEx("UMP45Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CDTH B 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CDTH C 5 A_NoBlocking
    CDTH D 5
    CDTH EF 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CDTH G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    CDTH G -1
    Stop
  Death2:
    CDTH A 5
    CDTH B 5 A_Pain
    CDTH C 5 A_NoBlocking
    CDTH DE 5//F 5
    //CDTH G 5
    TNT1 A 0 A_Stop
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_4_LastStand",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    TNT1 A 15 A_JumpIfInventory("Blinded",1,"LastDeath")
    Wait
  XDeath:
    GPOS P 6
    GPOS Q 6 A_XScream
    GPOS Q 0 A_SpawnItemEx("UMP45Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    GPOS Q 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    GPOS R 6 A_NoBlocking
    GPOS S 6
    GPOS T 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    GPOS T -1
    Stop
    GPOS TTTTTT 5250 CanRaise
    GPOS TTTTTTTTT 2 A_FadeOut(0.1)
    Stop
  LastDeath:
    CDTH G 5
    CDTH G 15 A_TakeInventory("Blinded",1)
    CDTH G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CDTH G -1
    Stop
  DeathClean:
    CZM2 NNNNNN 5250 CanRaise
    CZM2 NNNNNNNNN 2 A_FadeOut(0.1)
    Stop
  DeathClean2:
    CDTH GGGGGG 5250 CanRaise
    CDTH GGGGGGGGG 2 A_FadeOut(0.1)
    Stop
  Raise:
    CZM2 N 0
    CZM2 N 0 A_ChangeFlag("FRIGHTENED",0)
    CZM2 N 0 A_TakeInventory("MonHold",35)
    CZM2 N 5 Thing_SetSpecial(0,226,613,0,random(4,8))
    CZM2 MLKJIH 5
    goto See
  }
}

actor RGAChaingun_5 : RGAChaingun_4
{
  Translation "112:127=[131,62,31]:[0,0,0]"
  States
  {
  MissileBlind:
    CZM2 E 1
    CZM2 E 9 A_PlayWeaponSound("uzi/bolt")
    CZM2 E 0 A_JumpIfInventory("BlindCheck",2,1)
    goto Missile+2
    CZM2 F 0 BRIGHT A_PlayWeaponSound("uzi/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 10, 1, 4, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZM2 F 0 BRIGHT A_PlayWeaponSound("uzi/fire")
    CZM2 F 1 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 20, 1, 4, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZM2 E 2 //BRIGHT 
    CZM2 F 0 BRIGHT A_PlayWeaponSound("uzi/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 10, 1, 4, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZM2 F 0 BRIGHT A_PlayWeaponSound("uzi/fire")
    CZM2 F 1 BRIGHT Light("RGAATK") A_CustomBulletAttack(45, 20, 1, 4, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CZM2 E 2 //BRIGHT 
    CZM2 F 0 A_Jump(64,"See")
    goto MissileBlind+2
  Melee:
  Missile:
    CZM2 E 1 A_FaceTarget
    CZM2 E 9 A_PlayWeaponSound("uzi/bolt")
    CZM2 F 0 BRIGHT A_FaceTarget
    CZM2 F 0 BRIGHT A_PlayWeaponSound("uzi/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 5, 1, 4, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZM2 F 0 BRIGHT A_PlayWeaponSound("uzi/fire")
    CZM2 F 1 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 10, 1, 4, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZM2 E 2 //BRIGHT 
    CZM2 F 0 BRIGHT A_FaceTarget
    CZM2 F 0 BRIGHT A_PlayWeaponSound("uzi/fire")
    CZM2 F 2 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 5, 1, 4, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZM2 F 0 BRIGHT A_PlayWeaponSound("uzi/fire")
    CZM2 F 1 BRIGHT Light("RGAATK") A_CustomBulletAttack(22.5, 10, 1, 4, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CZM2 E 2 //BRIGHT 
    CZM2 E 0 A_MonsterRefire(80,"See")
    goto Missile+2
  Death.Shotgungib:
    CZM2 H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZM2 H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZM2 H 0
    CZM2 H 0 A_CheckFlag("Boss",3)
    CZM2 H 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    CZM2 H 0 A_Jump(18,"Death2")
    CZM2 H 5 A_Jump(96,"Death1")
    CZM2 I 5 A_Scream
    CZM2 I 0 A_SpawnItemEx("MiniUziDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  Death.Burnt:
    "####" # 0 A_Jump(128,2)
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
  Death.Crush:
  Death.Sniper:
    CZM2 H 5
    CZM2 I 5 A_Scream
    CZM2 I 0 A_SpawnItemEx("MiniUziDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  Death.Knife:
    CZM2 H 5
    CZM2 I 5
    CZM2 I 0 A_SpawnItemEx("MiniUziDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 J 0 A_PlaySound("body/splats")
    CZM2 KL 5 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" G 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(80,"Death.Burnt")
    "####" A 0 A_ChangeFlag("FRIGHTENED",1)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Chase("","")
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Chase("","")
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Chase("","")
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Chase("","")
    "####" A 0 A_ChangeFlag("FRIGHTENED",0)
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" D 0 A_Jump(32,"Death.Burnt")
  Death.FireCont:
    "####" A 0 A_Jump(48,2)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
	"####" D 0 A_JumpIfInventory("MonHold",5,"Death.Burnt")
    "####" D 0 A_Jump(160,"Death.Burnt")
	"####" D 0 A_GiveInventory("MonHold",1)
    goto Death.FireCont
  Death.Ice:
    "####" # 0 A_SpawnItemEx("MiniUziDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    "####" # 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 5 A_GenericFreezeDeath
    "----" A 1 A_FreezeDeathChunks
    wait
  Death.BarrelBoom:
    CZM2 H 0 A_JumpIfCloser(128, "XDeath")
  Death.NormalExplode:
  Death.Cyber:
  Death.ExplosionF:
  Death.ExplosionC:
  Death.Explosion:
    CZM2 H 5 A_JumpIfHealthLower(-100, "XDeath")
    CZM2 I 5 A_Scream
    CZM2 I 0 A_SpawnItemEx("MiniUziDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  Death1:
    CDTH A 5
    CDTH B 5 A_Scream
    CDTH B 0 A_SpawnItemEx("MiniUziDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CDTH B 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CDTH C 5 A_NoBlocking
    CDTH D 5
    CDTH EF 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CDTH G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    CDTH G -1
    Stop
  Death2:
    CDTH A 5
    CDTH B 5 A_Pain
    CDTH C 5 A_NoBlocking
    CDTH DE 5//F 5
    //CDTH G 5
    TNT1 A 0 A_Stop
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_5_LastStand",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    TNT1 A 15 A_JumpIfInventory("Blinded",1,"LastDeath")
    Wait
  XDeath:
    GPOS P 6
    GPOS Q 6 A_XScream
    GPOS Q 0 A_SpawnItemEx("MiniUziDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    GPOS Q 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    GPOS R 6 A_NoBlocking
    GPOS S 6
    GPOS T 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    GPOS T -1
    Stop
    GPOS TTTTTT 5250 CanRaise
    GPOS TTTTTTTTT 2 A_FadeOut(0.1)
    Stop
  DeathClean:
    CZM2 NNNNNN 5250 CanRaise
    CZM2 NNNNNNNNN 2 A_FadeOut(0.1)
    Stop
  DeathClean2:
    CDTH GGGGGG 5250 CanRaise
    CDTH GGGGGGGGG 2 A_FadeOut(0.1)
    Stop
  }
}

actor GrenadeGuy_2 : RGAMonster
{
  Obituary "%o was popped by a grenadier."
  Health 120
  GibHealth 100
  Radius 20
  Height 56
  Mass 110
  Speed 8
  PainChance 100
  PainChance "Dragon", 50
  PainChance "DragonF", 60
  PainChance "Dragonsplosion", 50
  PainChance "RGAFire", 50
  PainChance "Knife", 255
  PainChance "Explosion", 255
  PainChance "ExplosionF", 255
  PainChance "ExplosionC", 255
  PainChance "NormalExplode", 255
  PainChance "Stun", 255
  PainChance "Stun2", 255
  PainChance "Stun3", 255
  DamageFactor "Knife", 1.65
  SeeSound "chainguy/sight"
  PainSound "chainguy/pain"
  DeathSound "chainguy/death"
  ActiveSound "chainguy/active"
  Species "Chaingunzombie"
  MONSTER
  +FLOORCLIP
  Translation "112:127=[131,123,75]:[0,0,0]"
  Tag "Grenadier"
  States
  {
  Spawn:
    CZOM A 0
    CZOM A 0 A_CheckFlag("Friendly","Idle")
    CZOM A 0 Thing_SetSpecial(0,226,613,0,random(8,16))
  Idle:
    CZOM A 10 A_Look
    Loop
  See:
    CZOM A 0 A_JumpIfInventory("MonHold",1,"Death")
    CZOM A 0 A_JumpIfInventory("BlindCheck",2,"SeeBlind")
    CZOM AABBCCDDAABBCC 3 A_Chase
    CZOM DD 3 A_Chase("","Missile")
    CZOM AABBCCDDAABBCC 3 A_Chase
    CZOM DD 3 A_Chase("","Missile")
    CZOM D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    Goto See+1
  SeeBlind:
    CZOM A 0 A_Jump(96,"MissileBlind","SeeBlind2","SeeBlind2","SeeBlind2")
    CZOM AAB 3 A_Wander
    CZOM B 0 A_Jump(224,2)
    CZOM B 0 A_Pain
    CZOM B 3 A_Wander
    CZOM B 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+6
    CZOM CCDD 3 A_Wander
    CZOM D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    goto See
  SeeBlind2:
    CZOM A 0 A_Jump(256,1,2,3)
    CZOM AAA 3
    CZOM A 0 A_Jump(224,2)
    CZOM A 0 A_Pain
    CZOM A 3
    CZOM A 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+2
    CZOM A 0 A_Jump(256,1,2,3,4)
    CZOM AAAA 3
    goto See
  MissileBlind:
    CZOM E 3
    CZOM E 8 A_PlayWeaponSound("m79/open")
    CZOM E 9 A_PlayWeaponSound("m79/close")
    CZOM F 0 BRIGHT A_PlayWeaponSound("m203/fire")
    CZOM F 8 BRIGHT Light("RGAATK") A_CustomMissile("GrenadeGuyShell",32,10,random(-3000,3000)/100.00,2,random(-1000,2000)/100.00)
    CZOM E 4
    CZOM E 0 A_Jump(84,"SeeBlind2")
    goto SeeBlind+1
  Missile1:
    CZOM E 4
  Melee:
  Missile:
    CZOM E 3 A_FaceTarget
    CZOM E 8 A_PlayWeaponSound("m79/open")
    CZOM E 9 A_PlayWeaponSound("m79/close")
    CZOM E 0 BRIGHT A_FaceTarget
    CZOM F 0 BRIGHT A_PlayWeaponSound("m203/fire")
    CZOM F 8 BRIGHT Light("RGAATK") A_CustomMissile("GrenadeGuyShell",32,10,random(-1000,1000)/100.00,0,random(-333,667)/100.00)
    CZOM E 4
    CZOM E 0 A_MonsterRefire(80,"MissileCont")
    CZOM E 0 A_Jump(24,"Missile1")
  MissileCont:
    CZOM AABB 3 A_Chase("","")
    CZOM CCDD 3 A_Chase("","Missile")
    goto See
  Pain.Stun3:
    CZOM G 0 ACS_NamedExecuteAlways("RefStun",0,2,0,0)
    goto Pain
  Pain.Stun2:
    CZOM G 0 ACS_NamedExecuteAlways("RefStun",0,1,0,0)
    goto Pain
  Pain.Stun:
    CZOM G 0 ACS_NamedExecuteAlways("RefStun",0,0,0,0)
    goto Pain
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    CZOM G 4
    CZOM G 8 A_Pain
    goto See
  Pain:
    CZOM G 4
    CZOM G 4 A_Pain
    goto See
  Death.Shotgungib:
    CZOM H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZOM H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZOM H 0
    CZOM H 0 A_CheckFlag("Boss",3)
    CZOM H 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    CZOM H 0 A_Jump(18,"Death2")
    CZOM H 5 A_Jump(96,"Death1")
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("ThumperDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("ExplosiveAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,159)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death.Burnt:
    "####" # 0 A_Jump(96,"XDeath.Boom")
    "####" # 0 A_Jump(128,2)
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
  Death.Crush:
  Death.Sniper:
    CZOM H 5
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("ThumperDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("ExplosiveAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,159)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death.Knife:
    CZOM H 5
    CZOM I 5
    CZOM I 0 A_SpawnItemEx("ThumperDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("ExplosiveAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,159)
    CZOM J 5 A_NoBlocking
    CZOM J 0 A_PlaySound("body/splats")
    CZOM KL 5 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" G 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(80,"Death.Burnt")
    "####" A 0 A_ChangeFlag("FRIGHTENED",1)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Chase("","")
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Chase("","")
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Chase("","")
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Chase("","")
    "####" A 0 A_ChangeFlag("FRIGHTENED",0)
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" D 0 A_Jump(32,"Death.Burnt")
  Death.FireCont:
    "####" A 0 A_Jump(48,2)
    "####" A 0 A_Pain
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" AA 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" AA 2 A_Wander
    "####" BB 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" BB 2 A_Wander
    "####" CC 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" CC 2 A_Wander
    "####" DD 0 A_SpawnItemEx("FireFlare", random(-2,2), random(-2,2), random(12,20), random(-1,1), random(-3,1), random(1,2), 0, 128, 24)
    "####" DD 2 A_Wander
    "####" D 0 A_JumpIfInventory("MonHold",5,"Death.Burnt")
    "####" D 0 A_Jump(160,"Death.Burnt")
    "####" D 0 A_GiveInventory("MonHold",1)
    goto Death.FireCont
  Death.Ice:
    "####" # 0 A_SpawnItemEx("ThumperDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    "####" # 0 A_SpawnItemEx("ExplosiveAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,159)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    "####" # 5 A_GenericFreezeDeath
    "----" A 1 A_FreezeDeathChunks
    wait
  Death.BarrelBoom:
    CZOM H 0 A_Jump(64, "XDeath.Boom")
    CZOM H 0 A_JumpIfCloser(128, "XDeath")
	goto Death.Explosion+1
  Death.NormalExplode:
  Death.Cyber:
  Death.ExplosionF:
  Death.ExplosionC:
  Death.Explosion:
    CZOM H 0 A_Jump(64, "XDeath.Boom")
    CZOM H 5 A_JumpIfHealthLower(-100, "XDeath")
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("ThumperDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("ExplosiveAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,159)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  Death1:
    CDTH A 5
    CDTH B 5 A_Scream
    CDTH B 0 A_SpawnItemEx("ThumperDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CDTH B 0 A_SpawnItemEx("ExplosiveAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,159)
    CDTH C 5 A_NoBlocking
    CDTH D 5
    CDTH EF 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CDTH G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    CDTH G -1
    Stop
  Death2:
    CDTH A 5
    CDTH B 5 A_Pain
    CDTH C 5 A_NoBlocking
    CDTH DE 5//F 5
    //CDTH G 5
    TNT1 A 0 A_Stop
    TNT1 A 15 A_SpawnItemEx("GrenadeGuy_LastStand",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    TNT1 A 15 A_JumpIfInventory("Blinded",1,"LastDeath")
    Wait
  XDeath.Boom:
    GPOS P 0 A_SpawnItemEx("ExplosionMain2",0,0,0,0,0,3,0,128,0)
    GPOS P 0 Radius_Quake(2,15,0,8,0)
    GPOS P 0 A_Explode(20,64,0)
    GPOS P 0 A_Explode(20,128,0)
  XDeath:
    GPOS P 6
    GPOS Q 6 A_XScream
    GPOS Q 0 A_SpawnItemEx("ThumperDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    GPOS Q 0 A_SpawnItemEx("ExplosiveAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,159)
    GPOS R 6 A_NoBlocking
    GPOS S 6
    GPOS T 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    GPOS T -1
    Stop
    GPOS TTTTTT 5250 CanRaise
    GPOS TTTTTTTTT 2 A_FadeOut(0.1)
    Stop
  LastDeath:
    CDTH G 5
    CDTH G 15 A_TakeInventory("Blinded",1)
    CDTH G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CDTH G -1
    Stop
  DeathClean:
    CZOM NNNNNN 5250 CanRaise
    CZOM NNNNNNNNN 2 A_FadeOut(0.1)
    Stop
  DeathClean2:
    CDTH GGGGGG 5250 CanRaise
    CDTH GGGGGGGGG 2 A_FadeOut(0.1)
    Stop
  Raise:
    CZOM N 0
    CZOM N 0 A_ChangeFlag("FRIGHTENED",0)
    CZOM N 0 A_TakeInventory("MonHold",35)
    CZOM N 5 Thing_SetSpecial(0,226,613,0,random(4,8))
    CZOM MLKJIH 5
    goto See
  }
}

actor GrenadeGuyShell
{
  Radius 5
  Height 5
  Speed 25
  Damage (15)
  Decal RevenantScorch
  damagetype "NormalExplode"
  PROJECTILE
  -NOGRAVITY
  +NOEXTREMEDEATH
  +FORCERADIUSDMG
  +CANBOUNCEWATER
  Scale 0.05
  gravity 0.0
  bouncefactor 0.5
  States
  {
  Spawn:
    G69X AAAAAAAAA 1 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    G69X A 0 A_GiveInventory("M203Armed",1)
    loop
  Death:
    TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed")
    TNT1 A 0 A_Explode(50,16,0)
    TNT1 A 0 A_SpawnItemEx("M203ShellUnarmedDrop",0,0,0,-2,0,2,random(-8,8),0,0)
    TNT1 A 20 A_PlaySoundEx("generic/ricochets","SoundSlot5")
    Stop
  DeathArmed:
    TNT1 A 0
    TNT1 A 0 Radius_Quake(2,15,0,8,0)
    TNT1 A 0 A_Explode(20,64,0)
    TNT1 A 0 A_Explode(20,128,0)
    TNT1 A 0 A_SpawnItemEx("ExplosionMain2")
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0)
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0)
    TNT1 A 10
    TNT1 A 15
    Stop
  }
}

actor RaisingRGAChaingun_2 : RGAMonster
{
  Translation "112:127=[224,31,31]:[0,0,0]"
  States
  {
  Spawn:
    POL5 A 5 A_LookEx(LOF_NOSOUNDCHECK,0,256,0,360)
    loop
  See:
    POL5 A 90
    POL5 A 0 A_PlayWeaponSound("brain/spit")
    POL5 A 15 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    POL5 BCDE 5
    POL5 F 5 A_FaceTarget
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  }
}

actor RaisingRGAChaingun_3 : RGAMonster
{
  Translation "112:127=[131,62,31]:[0,0,0]"
  States
  {
  Spawn:
    POL5 A 5 A_LookEx(LOF_NOSOUNDCHECK,0,256,0,360)
    loop
  See:
    POL5 A 90
    POL5 A 0 A_PlayWeaponSound("brain/spit")
    POL5 A 15 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    POL5 BCDE 5
    POL5 F 5 A_FaceTarget
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_3",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  }
}

actor RaisingRGAChaingun_4 : RGAMonster
{
  Scale 1.02
  Translation "112:127=[224,31,31]:[0,0,0]"
  States
  {
  Spawn:
    POL5 A 5 A_LookEx(LOF_NOSOUNDCHECK,0,256,0,360)
    loop
  See:
    POL5 A 90
    POL5 A 0 A_PlayWeaponSound("brain/spit")
    POL5 A 15 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    POL5 BCDE 5
    POL5 F 5 A_FaceTarget
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  }
}

actor RaisingRGAChaingun_5 : RGAMonster
{
  Scale 1.02
  Translation "112:127=[131,62,31]:[0,0,0]"
  States
  {
  Spawn:
    POL5 A 5 A_LookEx(LOF_NOSOUNDCHECK,0,256,0,360)
    loop
  See:
    POL5 A 90
    POL5 A 0 A_PlayWeaponSound("brain/spit")
    POL5 A 15 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    POL5 BCDE 5
    POL5 F 5 A_FaceTarget
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_5",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  }
}

actor RaisingGrenadeGuy : RGAMonster
{
  Translation "112:127=[131,123,75]:[0,0,0]"
  States
  {
  Spawn:
    POL5 A 5 A_LookEx(LOF_NOSOUNDCHECK,0,256,0,360)
    loop
  See:
    POL5 A 90
    POL5 A 0 A_PlayWeaponSound("brain/spit")
    POL5 A 15 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    POL5 BCDE 5
    POL5 F 5 A_FaceTarget
    TNT1 A 15 A_SpawnItemEx("GrenadeGuy_2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  }
}

actor GibbedChaingunGuy : RGAMonster
{
  States
  {
  Spawn:
    PLAY W 5 A_LookEx(LOF_NOSOUNDCHECK,0,256,0,360)
    loop
  See:
    PLAY W 90
    PLAY W 0 A_PlayWeaponSound("brain/spit")
    PLAY W 15 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    GPOS TSRQ 5
    GPOS P 5 A_FaceTarget
    GPOS P 0 A_Jump(136,4,5,6)
    GPOS P 0 A_Jump(256,1,2)
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_3",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
    TNT1 A 15 A_SpawnItemEx("RGAChaingun_5",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
    TNT1 A 15 A_SpawnItemEx("GrenadeGuy_2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  }
}

actor RGAChaingun_2_LastStand : RGAMonster
{
  Obituary "%o was perforated by a last stand commando!"
  Health 50
  //GibHealth 90
  Radius 20
  Height 32
  DeathHeight 14
  BurnHeight 14
  Mass 2200
  Speed 0
  PainChance 120
  PainChance "Dragon", 60
  PainChance "DragonF", 60
  PainChance "Dragonsplosion", 60
  PainChance "RGAFire", 60
  PainChance "Knife", 255
  PainChance "Explosion", 255
  PainChance "ExplosionF", 255
  PainChance "ExplosionC", 255
  PainChance "NormalExplode", 255
  PainChance "Stun", 255
  PainChance "Stun2", 255
  PainChance "Stun3", 255
  DamageFactor "Knife", 0.9
  SeeSound "chainguy/sight"
  AttackSound "u45/fire"
  PainSound "chainguy/pain"
  DeathSound "chainguy/death"
  ActiveSound "chainguy/pain"
  Translation "112:127=[224,31,31]:[0,0,0]"
  DamageFactor "Step", 0.0
  Species "Chaingunzombie"
  MONSTER
  +MISSILEMORE
  +FLOORCLIP
  -COUNTKILL
  -SOLID
  +NOICEDEATH
  DropItem "MP5Drop" 64
  DropItem "SubAmmo" 176
  Tag "Commando"
  States
  {
  Spawn:
    CDTH I 0
    CDTH I 0 A_CheckFlag("Friendly",2)
    CDTH I 0 Thing_SetSpecial(0,226,613,0,random(4,7))
    CDTH I 18
  Idle:
    CDTH I 6 A_Look
    CDTH I 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH I 0 A_GiveInventory("LastStandHP",1)
    CDTH IH 6 A_Look
    CDTH H 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH H 0 A_GiveInventory("LastStandHP",1)
    CDTH H 6 A_Look
    loop
  See2:
    CDTH H 6
  See:
    CDTH I 0 A_JumpIfInventory("BlindCheck",2,"MissileBlind")
    CDTH II 3 A_Chase("","")
    CDTH I 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH I 0 A_GiveInventory("LastStandHP",1)
    CDTH IIHH 3 A_Chase
    CDTH H 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH H 0 A_GiveInventory("LastStandHP",1)
    CDTH HH 3 A_Chase
    loop
  Die:
    CDTH H 0 A_Die
    goto Death
  SeeBlind:
    CDTH II 3
    CDTH I 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH I 0 A_GiveInventory("LastStandHP",1)
    CDTH I 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+5
    CDTH IIHH 3 A_Jump(32,"MissileBlind")
    CDTH H 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH H 0 A_GiveInventory("LastStandHP",1)
    CDTH H 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+11
    CDTH HH 3 A_Jump(32,"MissileBlind")
    goto See
  MissileBlind:
    CDTH H 8
    CDTH J 5 BRIGHT A_CustomBulletAttack(26, 4, 1, 7, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CDTH H 0 A_Jump(168,"See2")
    CDTH H 5
    CDTH J 5 BRIGHT A_CustomBulletAttack(26, 4, 1, 7, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    CDTH H 0 A_Jump(216,"See2")
    CDTH H 5
    CDTH J 5 BRIGHT A_CustomBulletAttack(26, 4, 1, 7, "MonsterBulletPuff", 0, CBAF_AIMFACING || FBF_NORANDOM)
    goto See2
  Missile:
    CDTH H 8 A_FaceTarget
    CDTH J 5 BRIGHT A_CustomBulletAttack(13, 2, 1, 7, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CDTH H 0 A_Jump(112,"See2")
    CDTH H 5 A_FaceTarget
    CDTH J 5 BRIGHT A_CustomBulletAttack(13, 2, 1, 7, "MonsterBulletPuff", 0, FBF_NORANDOM)
    CDTH H 0 A_Jump(144,"See2")
    CDTH H 5 A_FaceTarget
    CDTH J 5 BRIGHT A_CustomBulletAttack(13, 2, 1, 7, "MonsterBulletPuff", 0, FBF_NORANDOM)
    goto See2
  Pain.Stun:
    CDTH H 0 ACS_NamedExecuteAlways("RefStun",0,0,0,0)
    goto Pain
  Pain.Stun2:
    CDTH H 0 ACS_NamedExecuteAlways("RefStun",0,1,0,0)
    goto Pain
  Pain.Stun3:
    CDTH H 0 ACS_NamedExecuteAlways("RefStun",0,2,0,0)
    goto Pain
  Pain:
    CDTH H 3
    CDTH H 3 A_Pain
    goto See
  Death:
    CDTH H 5 A_Scream
    CDTH E 5 A_NoBlocking
    CDTH FFF 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CDTH G 20 A_GiveInventory("Blinded",1,AAPTR_MASTER)
    Stop
  Death.Knife:
    CDTH H 5
    CDTH E 5 A_NoBlocking
    CDTH FFF 2 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CDTH G 20 A_GiveInventory("Blinded",1,AAPTR_MASTER)
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" # 0 A_Jump(128,"Death")
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
    goto Death
  }
}

actor RGAChaingun_3_LastStand : RGAChaingun_2_LastStand
{
  Translation "112:127=[131,62,31]:[0,0,0]"
  DropItem "P90Drop" 64
  DropItem "SubAmmo" 176
}

actor RGAChaingun_4_LastStand : RGAChaingun_2_LastStand
{
  Scale 1.02
  Obituary "%o was minced by a last stand commando!"
  Translation "112:127=[224,31,31]:[0,0,0]"
  DropItem "UMP45Drop" 72
  DropItem "SubAmmo" 192
  States
  {
  Spawn:
    CDTH I 0
    CDTH I 0 A_CheckFlag("Friendly",2)
    CDTH I 0 Thing_SetSpecial(0,226,613,0,random(4,8))
    CDTH I 18
  Idle:
    CDTH I 6 A_Look
    CDTH I 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH I 0 A_GiveInventory("LastStandHP",1)
    CDTH IH 6 A_Look
    CDTH H 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH H 0 A_GiveInventory("LastStandHP",1)
    CDTH H 6 A_Look
    loop
  }
}

actor RGAChaingun_5_LastStand : RGAChaingun_2_LastStand
{
  Scale 1.02
  Obituary "%o was minced by a last stand commando!"
  Translation "112:127=[131,62,31]:[0,0,0]"
  DropItem "MiniUziDrop" 72
  DropItem "SubAmmo" 192
  States
  {
  Spawn:
    CDTH I 0
    CDTH I 0 A_CheckFlag("Friendly",2)
    CDTH I 0 Thing_SetSpecial(0,226,613,0,random(4,8))
    CDTH I 18
  Idle:
    CDTH I 6 A_Look
    CDTH I 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH I 0 A_GiveInventory("LastStandHP",1)
    CDTH IH 6 A_Look
    CDTH H 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH H 0 A_GiveInventory("LastStandHP",1)
    CDTH H 6 A_Look
    loop
  }
}

actor GrenadeGuy_LastStand : RGAChaingun_2_LastStand
{
  Obituary "%o was popped by a last stand grenadier!"
  Translation "112:127=[131,123,75]:[0,0,0]"
  DropItem "ThumperDrop" 64
  DropItem "ExplosiveAmmo" 96
  Tag "Grenadier"
  States
  {
  Spawn:
    CDTH I 0
    CDTH I 0 A_CheckFlag("Friendly",2)
    CDTH I 0 Thing_SetSpecial(0,226,613,0,random(4,8))
    CDTH I 18
  Idle:
    CDTH I 6 A_Look
    CDTH I 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH I 0 A_GiveInventory("LastStandHP",1)
    CDTH IH 6 A_Look
    CDTH H 0 A_JumpIfInventory("LastStandHP",50,"Die")
    CDTH H 0 A_GiveInventory("LastStandHP",1)
    CDTH H 6 A_Look
    loop
  }
}

actor RGAChaingun_2Stealth : RGAChaingun_2
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.Shotgungib:
    CZOM H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZOM H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZOM H 0
    CZOM H 5 A_Jump(120,"Death1")
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("UMP45Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  }
}

actor RGAChaingun_3Stealth : RGAChaingun_3
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.Shotgungib:
    CZOM H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZOM H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZOM H 0
    CZOM H 5 A_Jump(120,"Death1")
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("P90Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,111)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  }
}

actor RGAChaingun_4Stealth : RGAChaingun_4
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.Shotgungib:
    CZM2 H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZM2 H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZM2 H 0
    CZM2 H 5 A_Jump(120,"Death1")
    CZM2 I 5 A_Scream
    CZM2 I 0 A_SpawnItemEx("UMP45Drop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  }
}

actor RGAChaingun_5Stealth : RGAChaingun_5
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.Shotgungib:
    CZM2 H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZM2 H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZM2 H 0
    CZM2 H 5 A_Jump(120,"Death1")
    CZM2 I 5 A_Scream
    CZM2 I 0 A_SpawnItemEx("MiniUziDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,187)
    CZM2 I 0 A_SpawnItemEx("SubAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,95)
    CZM2 J 5 A_NoBlocking
    CZM2 KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZM2 M 5
    CZM2 N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZM2 N -1
    Stop
  }
}

actor GrenadeGuy_2Stealth : GrenadeGuy_2
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.Shotgungib:
    CZOM H 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    CZOM H 0 A_JumpIfHealthLower(-50, "XDeath")
  Death:
    CZOM H 0
    CZOM H 5 A_Jump(120,"Death1")
    CZOM I 5 A_Scream
    CZOM I 0 A_SpawnItemEx("ThumperDrop",0,0,0,random(-2,2),random(-2,2),3,0,0,191)
    CZOM I 0 A_SpawnItemEx("ExplosiveAmmo",0,0,0,random(-2,2),random(-2,2),3,0,0,159)
    CZOM J 5 A_NoBlocking
    CZOM KL 5 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    CZOM M 5
    CZOM N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    CZOM N -1
    Stop
  }
}