actor DoomImp_2 : DoomImp//RGAMonster
{

  Obituary "%o was burned by an imp."
  HitObituary "%o was slashed by an imp."
  Health 90
  Radius 20
  Height 56
  Mass 100
  Speed 8
  PainChance 150
  PainChance "Dragon", 50
  PainChance "DragonF", 50
  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 "RGABullet", 1.3
  DamageFactor "Shotgungib", 1.0
  DamageFactor "Shotgun", 1.0
  DamageFactor "Dragon", 1.2
  DamageFactor "DragonF", 1.2
  DamageFactor "Dragonsplosion", 1.0
  DamageFactor "Rifle", 1.45
  DamageFactor "Sniper", 1.6
  DamageFactor "LMG", 1.8
  DamageFactor "BigPistol", 1.9
  DamageFactor "Explosion", 1.6
  DamageFactor "ExplosionF", 1.6
  DamageFactor "ExplosionC", 1.6
  DamageFactor "Stun", 1.2
  DamageFactor "Stun2", 1.2
  DamageFactor "Stun3", 1.2
  DamageFactor "Step", 10.0
  DamageFactor "Revive", 0.0
  DamageFactor "Knife", 1.65
  DamageFactor "Normal", 1.5
  DamageFactor "NormalExplode", 1.5
  DamageFactor "BarrelBoom", 3.0
  DamageFactor "Ice", 1.5
  DamageFactor "Fire", 1.5
  DamageFactor "RGAFire", 1.5
  DamageFactor "RevenantBall", 1.5
  DamageFactor "Cyber", 2.85
  DamageFactor "ScriptedMarine", 0.9
  DamageFactor "BuildFriendDamage", 1.5
  DamageFactor "SewUpYou", 1.5
  SeeSound "imp/sight"
  PainSound "imp/pain"
  DeathSound "imp/death"
  ActiveSound "imp/active"
  MONSTER
  +FLOORCLIP
  +DONTHARMSPECIES
  Species "Imp"
  Tag "Imp"
  States
  {
  Spawn:
    TROO A 0
    TROO A 0 A_CheckFlag("Friendly","Idle")
    TROO A 0 Thing_SetSpecial(0,226,613,0,random(6,12))
  Idle:
    TROO AABB 10 A_Look
    Loop
  See:
    TROO A 0 A_JumpIfInventory("MonHold",1,"Death")
    TROO A 0 A_JumpIfInventory("BlindCheck",2,"SeeBlind")
    TROO AABBCCDDAABBCCDD 3 A_Chase
    TROO AABBCCDDAABBCCDD 3 A_Chase
    TROO D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    Goto See+1
  SeeBlind:
    TROO A 0 A_Jump(144,"MissileBlind","SeeBlind2","SeeBlind2")
    TROO AAB 3 A_Wander
    TROO B 0 A_Jump(224,2)
    TROO B 0 A_Pain
    TROO B 3 A_Wander
    TROO A 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+8
    TROO CCDD 3 A_Wander
    TROO D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    goto See
  SeeBlind2:
    TROO A 0 A_Jump(256,1,2,3)
    TROO AAA 3
    TROO A 0 A_Jump(224,2)
    TROO A 0 A_Pain
    TROO A 3
    TROO A 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+2
    TROO A 0 A_Jump(256,1,2,3,4)
    TROO AAAA 3
    goto See
  MissileBlind:
    TROO EF 8
    TROO G 6 A_CustomMissile("DoomImpBall2",32,0,random(-1500,1500)/100.00,2,random(-750,750)/100.00)
    goto See
  Melee:
  Missile:
    TROO E 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"MissileDumb2")
    TROO EF 8 A_FaceTarget
    TROO G 6 A_CustomComboAttack("DoomImpBall2",32,9,"imp/melee")
    goto See
  MissileDumb2:
    TROO EEEF 8 A_FaceTarget
    TROO G 6 A_CustomComboAttack("DoomImpBall2",32,9,"imp/melee")
    goto See
  Pain.Stun3:
    TROO H 0 ACS_NamedExecuteAlways("RefStun",0,2,0,0)
    goto Pain
  Pain.Stun2:
    TROO H 0 ACS_NamedExecuteAlways("RefStun",0,1,0,0)
    goto Pain
  Pain.Stun:
    TROO H 0 ACS_NamedExecuteAlways("RefStun",0,0,0,0)
    goto Pain
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    TROO H 2
    TROO H 4 A_Pain
    goto See
  Pain:
    TROO H 2
    TROO H 2 A_Pain
    goto See
  Death.BarrelBoom:
    TROO I 0 A_JumpIfCloser(128, "XDeath")
    Goto Death
  Death.Shotgungib:
    TROO I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    TROO I 0 A_JumpIfHealthLower(-45, "XDeath")
  Death:
    TROO I 0
    TROO I 0 A_CheckFlag("Boss",3)
    TROO I 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    TROO I 0 A_Jump(15,"Death2")
    TROO I 8
    TROO J 8 A_Scream
    TROO K 6 A_NoBlocking
    TROO LL 3 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO M -1
    Stop
    TROO MMMMMM 5250 CanRaise
    TROO M 0 A_KillChildren("Respawn")
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death2:
    TROO I 8
    TROO J 8 A_Pain
    TROO K 6 A_NoBlocking
    TROO L 6
    TROO L 0 A_Jump(256,1,2,3)
    TROO MMMMM 60 CanRaise
    TROO M 0 A_PlayWeaponSound("brain/spit")
    TROO M 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0)  % 2) == 1, 3)
    TROO M 5 A_SpawnItemEx("DoomImpRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    TROO M -15 A_AlertMonsters(16,2)
    Stop
    TROO M 5 A_SpawnItemEx("DoomImpRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    TROO M 2545 CanRaise A_AlertMonsters(16,2)
    TROO MMMMM 5250 CanRaise
    TROO M 0 A_KillChildren("Respawn")
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death.Crush:
  Death.Sniper:
    TROO I 8
    TROO J 8 A_Scream
    TROO K 6 A_NoBlocking
    TROO LL 3 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO M 6
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO M -1
    Stop
    TROO MMMMMM 5250 CanRaise
    TROO M 0 A_KillChildren("Respawn")
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death.Knife:
    TROO I 8
    TROO J 8
    TROO K 6 A_NoBlocking
    TROO LL 3 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO M 6 A_PlaySound("body/splats")
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO M -1
    Stop
    TROO MMMMMM 5250 CanRaise
    TROO M 0 A_KillChildren("Respawn")
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" H 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
    "####" A 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("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.Burnt:
    "####" # 0 A_Jump(128,"Death")
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
    goto Death
  XDeath:
    TROO N 5
    TROO O 5 A_XScream
    TROO P 5
    TROO Q 5 A_NoBlocking
    TROO RST 5
    TROO U 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO U -1
    Stop
    TROO UUUUUU 5250 CanRaise
    TROO U 0 A_KillChildren("Respawn")
    TROO UUUUUUUUU 2 A_FadeOut(0.1)
    Stop
  Raise:
    TROO M 0
    TROO M 0 A_KillChildren("Respawn")
    TROO M 0 A_ChangeFlag("FRIGHTENED",0)
	TROO M 0 A_TakeInventory("MonHold",35)
    TROO M 0 A_CheckFlag("Friendly",2)
    TROO M 0 Thing_SetSpecial(0,226,613,0,random(3,6))
    TROO MLKJI 8
    goto See
  }
}
actor DoomImpRes : RGAMonster
{
  Obituary "%o was burned by an imp wraith."
  HitObituary "%o was slashed by an imp wraith."
  Health 65//60
  Radius 20
  Height 56
  Mass 500
  Speed 6
  ReactionTime 11
  MinMissileChance 218
  PainChance 75
  PainChance "Dragon", 25
  PainChance "DragonF", 25
  PainChance "Dragonsplosion", 25
  PainChance "RGAFire", 25
  PainChance "Knife", 255
  PainChance "Explosion", 255
  PainChance "ExplosionF", 255
  PainChance "ExplosionC", 255
  PainChance "NormalExplode", 255
  PainChance "Step", 0
  PainChance "Stun", 0
  PainChance "Stun2", 0
  PainChance "Stun3", 0
  SeeSound "nightmare/sight"
  PainSound "nightmare/pain"
  DeathSound "nightmare/death"
  ActiveSound "nightmare/active"
  MONSTER
  +FLOORCLIP
  -SOLID
  +NOBLOOD
  +NOPAIN
  +SHADOW
  +DONTHARMSPECIES
  -COUNTKILL
  +NOICEDEATH
  +DONTGIB
  +BRIGHT
  DamageFactor "Step", 0.0
  DamageFactor "Stun", 0.0
  DamageFactor "Stun2", 0.0
  DamageFactor "Stun3", 0.0
  DamageFactor "Normal", 1.5
  DamageFactor "NormalExplode", 1.5
  DamageFactor "BarrelBoom", 3.0
  DamageFactor "Ice", 1.5
  DamageFactor "Fire", 1.5
  DamageFactor "RGAFire", 1.5
  DamageFactor "RevenantBall", 1.5
  DamageFactor "Cyber", 2.85
  DamageFactor "BuildFriendDamage", 1.5
  DamageFactor "SewUpYou", 1.5
  Renderstyle Add
  Alpha 0.12//0.4
  Scale 0.85//
  Species "Imp"
  Tag "Imp Wraith"
  States
  {
  Spawn:
    NMRE A 0
    NMRE A 0 A_CheckFlag("Friendly",2)
    NMRE A 0 Thing_SetSpecial(0,226,613,0,random(4,8))
    NMRE AAA 2 A_FadeIn(0.16)//0.15x6//0.1
    NMRE A 0 A_ChangeFlag("NOPAIN",0)
    NMRE AAAAAAA 2
  Idle:
    NMRE A 0 A_SetTranslucent (0.6, 1)
    NMRE A 0 A_Look
    NMRE AA 5 A_Wander
    NMRE A 0 A_Look
    NMRE AA 5 A_Wander
    NMRE B 0 A_Look
    NMRE BB 5 A_Wander
    NMRE B 0 A_Look
    NMRE BB 5 A_Wander
    Goto Idle+1
  See:
    NMRE A 0 A_SetTranslucent (0.6, 1)
    NMRE A 2 A_Chase
    NMRE A 2 A_Chase("Melee","")
    NMRE BBC 2 A_Chase
    NMRE C 2 A_Chase("Melee","")
    NMRE DD 2 A_Chase
    Goto See+1
  Melee:
  Missile:
    NMRE EF 8 A_FaceTarget
    NMRE G 6 A_CustomComboAttack("DarkImpBallRes",32,5,"nightmare/melee")//5
    goto See+1
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    NMRE H 0 A_SetTranslucent (0.6, 1)
    NMRE H 2
    NMRE H 4 A_Pain
    goto See+1
  Pain:
    NMRE H 0 A_SetTranslucent (0.6, 1)
    NMRE H 2
    NMRE H 2 A_Pain
    goto See+1
  Death.Ice:
  Death:
    NMRE H 0 A_SetTranslucent (0.6, 1)
    NMRE H 2
    NMRE H 6 A_Scream
    NMRE H 4 A_FadeOut(0.1)//0.15
    NMRE H 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    NMRE H 4 A_FadeOut(0.1)
    NMRE H 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    NMRE H 4 A_FadeOut(0.1)
    NMRE H 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    NMRE H 4 A_FadeOut(0.1)
    wait
  Death.Knife:
    NMRE H 0 A_SetTranslucent (0.6, 1)
    NMRE H 8
    NMRE H 4 A_FadeOut(0.1)//0.15
    NMRE H 0 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    NMRE H 4 A_FadeOut(0.1)
    NMRE H 0 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    NMRE H 4 A_FadeOut(0.1)
    NMRE H 0 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    NMRE H 4 A_FadeOut(0.1)
    wait
  Death.Respawn:
    "####" # 0 A_SetTranslucent (0.6, 1)
    "####" # 2
    "####" # 2 A_FadeOut(0.1)//0.15
    wait
  }
}

actor DoomImpBallRes : DoomImpBall2
{
  Alpha 0.7
  Scale 0.8
  Damage (8)
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
    BAL1 AB 4 BRIGHT
    Loop
  Death:
    BAL1 CDE 6 BRIGHT
    Stop
  }
}

actor DarkImp_2 : DoomImp//RGAMonster
{
  Obituary "%o was burned by a blood imp."
  HitObituary "%o was slashed by a blood imp."
  Health 120
  GibHealth 90
  Radius 20
  Height 56
  Mass 100
  Speed 8
  Scale 1.02
  PainChance 150
  PainChance "Dragon", 50
  PainChance "DragonF", 50
  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 "RGABullet", 1.3
  DamageFactor "Shotgungib", 1.0
  DamageFactor "Shotgun", 1.0
  DamageFactor "Dragon", 1.2
  DamageFactor "DragonF", 1.2
  DamageFactor "Dragonsplosion", 1.0
  DamageFactor "Rifle", 1.45
  DamageFactor "Sniper", 1.6
  DamageFactor "LMG", 1.8
  DamageFactor "BigPistol", 1.9
  DamageFactor "Explosion", 1.6
  DamageFactor "ExplosionF", 1.6
  DamageFactor "ExplosionC", 1.6
  DamageFactor "Stun", 1.2
  DamageFactor "Stun2", 1.2
  DamageFactor "Stun3", 1.2
  DamageFactor "Step", 10.0
  DamageFactor "Revive", 0.0
  DamageFactor "Knife", 1.65
  DamageFactor "Normal", 1.5
  DamageFactor "NormalExplode", 1.5
  DamageFactor "BarrelBoom", 3.0
  DamageFactor "Ice", 1.5
  DamageFactor "Fire", 1.5
  DamageFactor "RGAFire", 1.5
  DamageFactor "RevenantBall", 1.5
  DamageFactor "Cyber", 2.85
  DamageFactor "ScriptedMarine", 0.9
  DamageFactor "BuildFriendDamage", 1.5
  DamageFactor "SewUpYou", 1.5
  SeeSound "imp/sight"
  PainSound "imp/pain"
  DeathSound "imp/death"
  ActiveSound "imp/active"
  MONSTER
  +FLOORCLIP
  +DONTHARMSPECIES
  Translation "48:71=16:39", "70:76=40:47", "77:77=2:2", "78:78=8:8", "79:79=0:0", "1:2=0:0", "148:151=0:0", "5:8=7:8", "108:111=5:6", "92:107=96:111", "112:127=250:254"
  Species "Imp"
  Tag "Blood Imp"
  States
  {
  Spawn:
    TROO A 0
    TROO A 0 A_CheckFlag("Friendly","Idle")
    TROO A 0 Thing_SetSpecial(0,226,613,0,random(7,14))
  Idle:
    TROO AABB 10 A_Look
    Loop
  See:
    TROO A 0 A_JumpIfInventory("MonHold",1,"Death")
    TROO A 0 A_JumpIfInventory("BlindCheck",3,"SeeBlind")
    TROO AABBCCDDAABBCCDD 3 A_Chase
    TROO AABBCCDDAABBCCDD 3 A_Chase
    TROO D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    Goto See+1
  SeeBlind:
    TROO A 0 A_Jump(144,"MissileBlind","SeeBlind2","SeeBlind2")
    TROO AAB 3 A_Wander
    TROO B 0 A_Jump(224,2)
    TROO B 0 A_Pain
    TROO B 3 A_Wander
    TROO A 0 A_JumpIfInventory("BlindCheck",3,1)
    goto See+8
    TROO CCDD 3 A_Wander
    TROO D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    goto See
  SeeBlind2:
    TROO A 0 A_Jump(256,1,2,3)
    TROO AAA 3
    TROO A 0 A_Jump(224,2)
    TROO A 0 A_Pain
    TROO A 3
    TROO A 0 A_JumpIfInventory("BlindCheck",3,1)
    goto See+2
    TROO A 0 A_Jump(256,1,2,3,4)
    TROO AAAA 3
    goto See
  MissileBlind:
    TROO EF 8
    TROO G 6 A_CustomMissile("DarkImpBall2",32,0,random(-1500,1500)/100.00,2,random(-750,750)/100.00)
    goto See
  Melee:
  Missile:
    TROO E 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"MissileDumb2")
    TROO EF 8 A_FaceTarget
    TROO G 6 A_CustomComboAttack("DarkImpBall2",32,11,"imp/melee")
    goto See
  MissileDumb2:
    TROO EEEF 8 A_FaceTarget
    TROO G 6 A_CustomComboAttack("DarkImpBall2",32,11,"imp/melee")
    goto See
  Pain.Stun3:
    TROO H 0 ACS_NamedExecuteAlways("RefStun",0,2,0,0)
    goto Pain
  Pain.Stun2:
    TROO H 0 ACS_NamedExecuteAlways("RefStun",0,1,0,0)
    goto Pain
  Pain.Stun:
    TROO H 0 ACS_NamedExecuteAlways("RefStun",0,0,0,0)
    goto Pain
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    TROO H 2
    TROO H 4 A_Pain
    goto See
  Pain:
    TROO H 2
    TROO H 2 A_Pain
    goto See
  Death.BarrelBoom:
    TROO I 0 A_JumpIfCloser(128, "XDeath")
    Goto Death
  Death.Shotgungib:
    TROO I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    TROO I 0 A_JumpIfHealthLower(-45, "XDeath")
  Death:
    TROO I 0
    TROO I 0 A_CheckFlag("Boss",3)
    TROO I 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    TROO I 0 A_Jump(17,"Death2")
    TROO I 8
    TROO J 8 A_Scream
    TROO K 6 A_NoBlocking
    TROO LLL 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO M -1
    Stop
    TROO MMMMMM 5250 CanRaise
    TROO M 0 A_KillChildren("Respawn")
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death2:
    TROO I 8
    TROO J 8 A_Pain
    TROO K 6 A_NoBlocking
    TROO L 6
    TROO L 0 A_Jump(256,1,2,3)
    TROO MMMMM 60 CanRaise
    TROO M 0 A_PlayWeaponSound("brain/spit")
    TROO M 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0)  % 2) == 1, 3)
    TROO M 5 A_SpawnItemEx("DoomImpRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    TROO M -1 A_AlertMonsters(16,2)
    Stop
    TROO M 5 A_SpawnItemEx("DoomImpRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    TROO M 5245 CanRaise A_AlertMonsters(16,2)
    TROO MMMMM 5250 CanRaise
    TROO M 0 A_KillChildren("Respawn")
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death.Crush:
  Death.Sniper:
    TROO I 8
    TROO J 8 A_Scream
    TROO K 6 A_NoBlocking
    TROO LLL 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO M 6
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO M -1
    Stop
    TROO MMMMMM 5250 CanRaise
    TROO M 0 A_KillChildren("Respawn")
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death.Knife:
    TROO I 8
    TROO J 8
    TROO K 6 A_NoBlocking
    TROO LLL 2 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO M 6 A_PlaySound("body/splats")
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO M -1
    Stop
    TROO MMMMMM 5250 CanRaise
    TROO M 0 A_KillChildren("Respawn")
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" H 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("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)
    "####" # 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.Burnt:
    "####" # 0 A_Jump(128,"Death")
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
    goto Death
  XDeath:
    TROO N 5
    TROO O 5 A_XScream
    TROO P 5
    TROO Q 5 A_NoBlocking
    TROO RST 5
    TROO U 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO U -1
    Stop
    TROO UUUUUU 5250 CanRaise
    TROO U 0 A_KillChildren("Respawn")
    TROO UUUUUUUUU 2 A_FadeOut(0.1)
    Stop
  Raise:
    TROO M 0
    TROO M 0 A_KillChildren("Respawn")
    TROO M 0 A_ChangeFlag("FRIGHTENED",0)
	TROO M 0 A_TakeInventory("MonHold",35)
    TROO M 0 A_CheckFlag("Friendly",2)
    TROO M 0 Thing_SetSpecial(0,226,613,0,random(4,6))
    TROO MLKJI 8
    goto See
  }
}
actor DarkImpBall2 : DoomImpBall2
{
  Speed 20
  FastSpeed 30
  Damage (13)
  +FORCEXYBILLBOARD
  Translation "168:191=192:207", "208:223=192:199", "231:231=192:192", "232:235=198:201", "196:199=0:0"
  States
  {
  Spawn:
    BAL1 AAAABBBB 1 BRIGHT A_SpawnItemEx("ImpactSparkBlue", 0, random(-4,4), random(-4,4), random(-2,0), random(-1,1), random(-1,1), 0, 128, 64)
    Loop
  Death:
    BAL1 CCCCCCCCC 0 BRIGHT A_SpawnItemEx("ImpactSpark2Blue", 0, random(-2,2), random(-2,2), random(-1,1), random(-1,1), random(-1,1), 0, 128, 64)
    BAL1 CDE 6 BRIGHT
    Stop
  }
}

actor DarkImpRes : RGAMonster
{
  Obituary "%o was burned by a blood imp's ghost."
  HitObituary "%o was slashed by a blood imp's ghost."
  Health 75
  Radius 20
  Height 56
  Mass 500
  Speed 6
  Scale 1.02
  ReactionTime 11
  MinMissileChance 218
  PainChance 75
  PainChance "Dragon", 25
  PainChance "DragonF", 25
  PainChance "Dragonsplosion", 25
  PainChance "RGAFire", 25
  PainChance "Knife", 255
  PainChance "Explosion", 255
  PainChance "ExplosionF", 255
  PainChance "ExplosionC", 255
  PainChance "NormalExplode", 255
  PainChance "Step", 0
  PainChance "Stun", 0
  PainChance "Stun2", 0
  PainChance "Stun3", 0
  SeeSound "imp/sight"
  PainSound "imp/pain"
  DeathSound "imp/death"
  ActiveSound "imp/active"
  MONSTER
  +FLOORCLIP
  -SOLID
  +NOBLOOD
  +NOPAIN
  +SHADOW
  +DONTHARMSPECIES
  -COUNTKILL
  +NOICEDEATH
  +DONTGIB
  DamageFactor "Step", 0.0
  DamageFactor "Stun", 0.0
  DamageFactor "Stun2", 0.0
  DamageFactor "Stun3", 0.0
  DamageFactor "Normal", 1.5
  DamageFactor "NormalExplode", 1.5
  DamageFactor "BarrelBoom", 3.0
  DamageFactor "Ice", 1.5
  DamageFactor "Fire", 1.5
  DamageFactor "RGAFire", 1.5
  DamageFactor "RevenantBall", 1.5
  DamageFactor "Cyber", 2.85
  DamageFactor "BuildFriendDamage", 1.5
  DamageFactor "SewUpYou", 1.5
  Renderstyle Add
  Alpha 0.1//0.4
  Translation "48:71=16:39", "70:76=40:47", "77:77=2:2", "78:78=8:8", "79:79=0:0", "1:2=0:0", "148:151=0:0", "5:8=7:8", "108:111=5:6", "92:107=96:111", "112:127=250:254"
  Species "Imp"
  Tag "Blood Imp Ghost"
  States
  {
  Spawn:
    TROO A 0
    TROO A 0 A_CheckFlag("Friendly",2)
    TROO A 0 Thing_SetSpecial(0,226,613,0,random(5,10))
    TROO AAAAAA 1 A_FadeIn(0.15)//0.1
    TROO A 0 A_ChangeFlag("NOPAIN",0)
    TROO AAAAAAA 2
  Idle:
    TROO A 0 A_SetTranslucent (1, 1)
    TROO AABB 10 A_Look
    loop
  See:
    TROO A 0 A_SetTranslucent (1, 1)
    TROO A 2 A_Chase
    TROO A 2 A_Chase("Melee","")
    TROO BBC 2 A_Chase
    TROO C 2 A_Chase("Melee","")
    TROO DD 2 A_Chase
    loop
  Melee:
  Missile:
    TROO EF 8 A_FaceTarget
    TROO G 6 A_CustomComboAttack("DarkImpBallRes",32,7,"imp/melee")
    goto See
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    TROO H 0 A_SetTranslucent (1, 1)
    TROO H 2
    TROO H 4 A_Pain
    goto See
  Pain:
    TROO H 0 A_SetTranslucent (1, 1)
    TROO H 2
    TROO H 2 A_Pain
    goto See
  Death.Ice:
  Death:
    TROO H 0 A_SetTranslucent (1, 1)
    TROO H 2
    TROO H 6 A_Scream
    TROO H 4 A_FadeOut(0.15)
    TROO H 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO H 4 A_FadeOut(0.15)
    TROO H 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO H 4 A_FadeOut(0.15)
    TROO H 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO H 4 A_FadeOut(0.15)
    TROO H 0 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO H 4 A_FadeOut(0.15)
    wait
  Death.Knife:
    TROO H 0 A_SetTranslucent (1, 1)
    TROO H 8
    TROO H 4 A_FadeOut(0.15)
    TROO H 0 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO H 4 A_FadeOut(0.15)
    TROO H 0 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO H 4 A_FadeOut(0.15)
    TROO H 0 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO H 4 A_FadeOut(0.15)
    TROO H 0 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO H 4 A_FadeOut(0.15)
    wait
  }
}

actor DarkImpBallRes : DarkImpBall2
{
  Alpha 0.7
  Scale 0.8
  Damage (8)
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
    BAL1 AB 4 BRIGHT
    Loop
  Death:
    BAL1 CDE 6 BRIGHT
    Stop
  }
}

actor ImpBoy : DoomImp_2
{
  Obituary "%o was blasted by an imp cyborg."
  HitObituary "%o was slashed by an imp cyborg."
  Health 105
  GibHealth 90
  Radius 20
  Height 56
  Mass 100
  Speed 4
  ReactionTime 11
  MinMissileChance 218
  PainChance 150
  PainChance "Dragon", 50
  PainChance "DragonF", 50
  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
  DamageFactor "Normal", 1.5
  DamageFactor "NormalExplode", 1.5
  DamageFactor "BarrelBoom", 3.0
  DamageFactor "Ice", 1.5
  DamageFactor "Fire", 1.5
  DamageFactor "RGAFire", 1.5
  DamageFactor "RevenantBall", 1.5
  DamageFactor "Cyber", 2.85
  DamageFactor "BuildFriendDamage", 1.5
  DamageFactor "SewUpYou", 1.5
  SeeSound "imp/sight"
  PainSound "imp/pain"
  DeathSound "imp/death"
  ActiveSound "imp/active"
  MONSTER
  +FLOORCLIP
  +DONTHARMSPECIES
  Species "Imp"
  Tag "Imp Cyborg"
  States
  {
  Spawn:
    RIMP A 0
    RIMP A 0 A_CheckFlag("Friendly","Idle")
    RIMP A 0 Thing_SetSpecial(0,226,613,0,random(7,14))
  Idle:
    RIMP AABB 10 A_Look
    loop
  See:
    RIMP A 0 A_JumpIfInventory("MonHold",1,"Death")
    RIMP A 0 A_JumpIfInventory("BlindCheck",4,"SeeBlind")
    RIMP A 2 A_Chase
    RIMP AA 2 A_Chase("Melee","")
    RIMP AB 2 A_Chase
    RIMP BB 2 A_Chase("Melee","")
    RIMP BC 2 A_Chase
    RIMP CC 2 A_Chase("Melee","")
    RIMP CD 2 A_Chase
    RIMP DD 2 A_Chase("Melee","")
    RIMP DA 2 A_Chase
    RIMP AA 2 A_Chase("Melee","")
    RIMP AB 2 A_Chase
    RIMP BB 2 A_Chase("Melee","")
    RIMP BC 2 A_Chase
    RIMP CC 2 A_Chase("Melee","")
    RIMP CD 2 A_Chase
    RIMP DD 2 A_Chase("Melee","")
    RIMP DA 2 A_Chase
    RIMP AA 2 A_Chase("Melee","")
    RIMP AB 2 A_Chase
    RIMP BB 2 A_Chase("Melee","")
    RIMP BC 2 A_Chase
    RIMP CC 2 A_Chase("Melee","")
    RIMP CD 2 A_Chase
    RIMP DD 2 A_Chase("Melee","")
    RIMP DA 2 A_Chase
    RIMP AA 2 A_Chase("Melee","")
    RIMP AB 2 A_Chase
    RIMP BB 2 A_Chase("Melee","")
    RIMP BC 2 A_Chase
    RIMP CC 2 A_Chase("Melee","")
    RIMP CD 2 A_Chase
    RIMP DD 2 A_Chase("Melee","")
    RIMP D 2 A_Chase
    RIMP D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    Goto See+1
  SeeBlind:
    RIMP A 0 A_Jump(144,"MissileBlind","SeeBlind2","SeeBlind2")
    RIMP AAAABB 2 A_Wander
    RIMP B 0 A_Jump(224,2)
    RIMP B 0 A_Pain
    RIMP BB 2 A_Wander
    RIMP A 0 A_JumpIfInventory("BlindCheck",4,1)
    goto See+10
    RIMP CCCCDDDD 2 A_Wander
    RIMP D 0 A_SpawnItemEx("ZombieStepDamage",0,0,28,0,0,0,0,0,0)
    goto See
  SeeBlind2:
    RIMP A 0 A_Jump(256,1,2,3)
    RIMP AAA 4
    RIMP A 0 A_Jump(224,2)
    RIMP A 0 A_Pain
    RIMP A 4
    RIMP A 0 A_JumpIfInventory("BlindCheck",4,1)
    goto See+2
    RIMP A 0 A_Jump(256,1,2,3,4)
    RIMP AAAA 4
    goto See
  MissileBlind:
    RIMP FG 4
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,random(-1500,1500)/100.00,2,random(-750,750)/100.00)
    RIMP G 1
    RIMP GFE 2
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,random(-1500,1500)/100.00,2,random(-750,750)/100.00)
    RIMP E 1
    RIMP EFF 4
    goto See
  Melee:
    RIMP F 0 A_Jump(127,"Melee2")
    RIMP FG 4 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP GFE 2 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP EFF 4
    goto See
  Melee2:
    RIMP FE 4 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP EFG 2 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP GFF 4
    goto See
  Missile:
    RIMP F 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"MissileDumb")
    RIMP F 0 A_Jump(127,17)
    RIMP FG 5 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP GFE 2 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP EFF 5
    goto See
    RIMP FE 5 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP EFG 2 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP GFF 5
    goto See
  MissileDumb:
    RIMP F 0 A_Jump(127,17)
    RIMP FG 10 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP GFE 4 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP EFF 5
    goto See
    RIMP FE 10 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP W 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,-6,0)
    RIMP E 1 A_FaceTarget
    RIMP EFG 4 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP V 2 BRIGHT A_CustomMissile("DoomImpBallTrooper",33,6,0)
    RIMP G 1 A_FaceTarget
    RIMP GFF 5
    goto See
  Pain.Stun3:
    RIMP H 0 ACS_NamedExecuteAlways("RefStun",0,2,0,0)
    goto Pain
  Pain.Stun2:
    RIMP H 0 ACS_NamedExecuteAlways("RefStun",0,1,0,0)
    goto Pain
  Pain.Stun:
    RIMP H 0 ACS_NamedExecuteAlways("RefStun",0,0,0,0)
    goto Pain
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    RIMP H 3
    RIMP H 6 A_Pain
    goto See
  Pain:
    RIMP H 3
    RIMP H 3 A_Pain
    goto See
  Death.BarrelBoom:
    RIMP I 0 A_JumpIfCloser(128, "XDeath")
    Goto Death
  Death.Shotgungib:
    RIMP I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    RIMP I 0 A_JumpIfHealthLower(-45, "XDeath")
  Death:
    RIMP I 0
    RIMP I 0 A_CheckFlag("Boss",3)
    RIMP I 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    RIMP I 0 A_Jump(16,"Death2")
    RIMP I 8
    RIMP J 8 A_Scream
    RIMP K 6 A_NoBlocking
    RIMP LL 3 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    RIMP M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    RIMP M -1
    Stop
    RIMP MMMMMM 5250 CanRaise
    RIMP M 0 A_KillChildren("Respawn")
    RIMP MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death2:
    RIMP I 8
    RIMP J 8 A_Pain
    RIMP K 6 A_NoBlocking
    RIMP L 6
    RIMP L 0 A_Jump(256,1,2,3)
    RIMP MMMMM 60 CanRaise
    RIMP M 0 A_PlayWeaponSound("brain/spit")
    RIMP M 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    RIMP M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0)  % 2) == 1, 3)
    RIMP M 5 A_SpawnItemEx("DoomImpRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    RIMP M -1 A_AlertMonsters(16,2)
    Stop
    RIMP M 5 A_SpawnItemEx("DoomImpRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
    RIMP M 5245 CanRaise A_AlertMonsters(16,2)
    RIMP MMMMM 5250 CanRaise
    RIMP M 0 A_KillChildren("Respawn")
    RIMP MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death.Crush:
  Death.Sniper:
    RIMP I 8
    RIMP J 8 A_Scream
    RIMP K 6 A_NoBlocking
    RIMP LL 3 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    RIMP M 6
    RIMP M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    RIMP M -1
    Stop
    RIMP MMMMMM 5250 CanRaise
    RIMP M 0 A_KillChildren("Respawn")
    RIMP MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death.Knife:
    RIMP I 8
    RIMP J 8
    RIMP K 6 A_NoBlocking
    RIMP LL 3 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    RIMP M 6 A_PlaySound("body/splats")
    RIMP M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    RIMP M -1
    Stop
    RIMP MMMMMM 5250 CanRaise
    RIMP M 0 A_KillChildren("Respawn")
    RIMP MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" H 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 1 A_Chase("","")
    "####" A 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 1 A_Chase("","")
    "####" B 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 1 A_Chase("","")
    "####" C 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 1 A_Chase("","")
    "####" D 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 1 A_Wander
    "####" A 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 1 A_Wander
    "####" B 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 1 A_Wander
    "####" C 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 1 A_Wander
    "####" D 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 1 A_Wander
    "####" A 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 1 A_Wander
    "####" B 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 1 A_Wander
    "####" C 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 1 A_Wander
    "####" D 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 1 A_Wander
    "####" A 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 1 A_Wander
    "####" B 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 1 A_Wander
    "####" C 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 1 A_Wander
    "####" D 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("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.Burnt:
    "####" # 0 A_Jump(128,"Death")
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
    goto Death
  XDeath:
    RIMP N 5
    RIMP O 5 A_XScream
    RIMP P 5
    RIMP Q 5 A_NoBlocking
    RIMP RST 5
    RIMP U 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    RIMP U -1
    Stop
    RIMP UUUUUU 5250 CanRaise
    RIMP U 0 A_KillChildren("Respawn")
    RIMP UUUUUUUUU 2 A_FadeOut(0.1)
    Stop
  Raise:
    RIMP M 0
    RIMP M 0 A_KillChildren("Respawn")
    RIMP M 0 A_ChangeFlag("FRIGHTENED",0)
	RIMP M 0 A_TakeInventory("MonHold",35)
    RIMP M 0 A_CheckFlag("Friendly",2)
    RIMP M 0 Thing_SetSpecial(0,226,613,0,random(4,6))
    RIMP MLKJHI 7
    goto See
  }
}

actor DoomImpBallTrooper : DoomImpBall2
{
  Speed 15
  FastSpeed 25
  Damage (7)
  renderstyle Add
  alpha 0.9
  SeeSound "bfg/alt"
  DeathSound "imp/shotx"
  Scale 0.3
  States
  {
  Spawn:
    8BLX B -1 BRIGHT
    loop
  Death:
    TNT1 AAAA 0 A_SpawnItemEx("ImpactSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,128,64)
    TNT1 A 10 A_SpawnItemEx("ExplosionSmall4",0,0,0,0,0,0,0,128,0)
    Stop
  }
}

actor DoomImp_2Stealth : DoomImp_2
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.BarrelBoom:
    TROO I 0 A_JumpIfCloser(128, "XDeath")
    Goto Death
  Death.Shotgungib:
    TROO I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    TROO I 0 A_JumpIfHealthLower(-45, "XDeath")
  Death:
    TROO I 8
    TROO J 8 A_Scream
    TROO K 6 A_NoBlocking
    TROO LL 3 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO M -1
    Stop
    TROO MMMMMM 5250 CanRaise
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  }
}

actor DarkImp_2Stealth : DarkImp_2
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.BarrelBoom:
    TROO I 0 A_JumpIfCloser(128, "XDeath")
    Goto Death
  Death.Shotgungib:
    TROO I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    TROO I 0 A_JumpIfHealthLower(-45, "XDeath")
  Death:
    TROO I 8
    TROO J 8 A_Scream
    TROO K 6 A_NoBlocking
    TROO LLL 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    TROO M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    TROO M -1
    Stop
    TROO MMMMMM 5250 CanRaise
    TROO MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  }
}

actor ImpBoyStealth : ImpBoy
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.BarrelBoom:
    RIMP I 0 A_JumpIfCloser(128, "XDeath")
    Goto Death
  Death.Shotgungib:
    RIMP I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    RIMP I 0 A_JumpIfHealthLower(-45, "XDeath")
  Death:
    RIMP I 8
    RIMP J 8 A_Scream
    RIMP K 6 A_NoBlocking
    RIMP LL 3 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    RIMP M 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    RIMP M -1
    Stop
    RIMP MMMMMM 5250 CanRaise
    RIMP MMMMMMMMM 2 A_FadeOut(0.1)
    Stop
  }
}