ACTOR Demon_2 : Demon
{
  Game Doom
  Health 150
  PainChance 100
  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 "Stun", 255
  PainChance "Stun2", 255
  PainChance "Stun3", 255
  Speed 11
  Scale 0.97
  Radius 30
  Height 56
  Mass 400
  Species "Pinkies"
  Monster
  +FLOORCLIP
  //+FASTER
  SeeSound "demon/sight"
  AttackSound "demon/melee"
  PainSound "demon/pain"
  DeathSound "demon/death"
  ActiveSound "demon/active"
  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 "Cyber", 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 "BarrelBoom", 2.0
  DamageFactor "ScriptedMarine", 0.6
  DamageFactor "Step", 10.0
  DamageFactor "Revive", 0.0
  DamageFactor "Knife", 1.15
  Obituary "%o was bit by a demon."
  Tag "Demon"
  States
  {
  Spawn:
    SARG A 0
    SARG A 0 A_CheckFlag("Friendly","Idle")
    SARG A 0 Thing_SetSpecial(0,226,613,0,random(8,16))
  Idle:
    SARG AABB 10 A_Look
    Loop
  See:
	SARG A 0 A_JumpIfInventory("MonHold",1,"Death")
    SARG A 0 A_JumpIfInventory("BlindCheck",2,"SeeWeak")
    SARG A 0 A_Jump(63,2)
    SARG A 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"SeeWeak")
    SARG AABBCCDDAABBCCDD 2 FAST A_Chase
    SARG A 0 A_Jump(63,2)
    SARG A 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"SeeWeak")
    SARG AABBCCDDAABBCCDD 2 FAST A_Chase
    SARG D 0 A_SpawnItemEx("DemonStepDamage",0,0,32,0,0,0,0,0,0)
    goto See+2
  SeeWeak2:
    SARG D 0 A_SpawnItemEx("DemonStepDamage",0,0,32,0,0,0,0,0,0)
  SeeWeak:
    SARG AA 4 FAST A_Chase("","")
    SARG BB 4 FAST A_Chase
    SARG CC 4 FAST A_Chase("","")
    SARG DD 4 FAST A_Chase
    SARG D 0 A_Jump(63,2)
    SARG D 0 A_JumpIfInTargetInventory("PowerInvisibility",1,2)
    SARG D 0 A_JumpIfInventory("BlindCheck",2,1)
    goto See+12
    SARG AA 4 FAST A_Chase("","")
    SARG BB 4 FAST A_Chase
    SARG CC 4 FAST A_Chase("","")
    SARG DD 4 FAST A_Chase
    SARG D 0 A_Jump(63,2)
    SARG D 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"SeeWeak2")
    SARG D 0 A_JumpIfInventory("BlindCheck",2,"SeeWeak2")
    goto See+30
  Melee:
    SARG E 0 A_Jump(127,2)
    SARG E 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"MeleeWeak")
    SARG E 0 A_JumpIfInventory("BlindCheck",2,"MeleeWeak")
    SARG E 5 FAST A_FaceTarget
    SARG E 2 FAST A_Recoil(-8)
    SARG F 7 FAST A_CustomMeleeAttack(20)
    SARG G 7 FAST
    Goto See
  MeleeWeak:
    SARG E 5 A_FaceTarget
    SARG E 2 A_Recoil(-8)
    SARG F 7 A_CustomMeleeAttack(20)
    SARG G 7
    Goto See
  Pain.Stun3:
    SARG H 0 ACS_NamedExecuteAlways("RefStun",0,2,0,0)
    goto Pain
  Pain.Stun2:
    SARG H 0 ACS_NamedExecuteAlways("RefStun",0,1,0,0)
    goto Pain
  Pain.Stun:
    SARG H 0 ACS_NamedExecuteAlways("RefStun",0,0,0,0)
    goto Pain
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    SARG H 2
    SARG H 4 A_Pain
    goto See
  Pain:
    SARG H 2
    SARG H 2 A_Pain
    Goto See
  Death.Shotgungib:
    SARG I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    SARG I 0 A_JumpIfHealthLower(-75, "XDeath")
  Death:
    SARG I 0
    SARG I 0 A_Jump(111,"Death2")
    SARG I 0 A_CheckFlag("Boss",3)
    SARG I 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    SARG I 0 A_Jump(22,"DeathAlt")
    SARG I 8
    SARG J 8 A_Scream
    SARG KK 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    SARG N -1
    Stop
  DeathAlt:
    SARG I 8
    SARG J 8 A_Scream
    SARG K 4
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_Jump(256,1,2,3)
    SARG NNNNN 115 CanRaise
    SARG N 0 A_PlaySound("brain/spit")
    SARG N 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TNT1 A 15 A_SpawnItemEx("StoneDemonRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  Death2:
    SAAR A 0
    SAAR A 0 A_CheckFlag("Boss",3)
    SAAR A 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    SAAR A 0 A_Jump(22,"Death2Alt")
    SAAR A 8
    SAAR B 4 A_Scream
    SAAR BB 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SARG E 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    SAAR E -1
    Stop
  Death2Alt:
    SAAR A 8
    SAAR B 8 A_Scream
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SAAR EEEE 115
    SAAR E 0 A_PlaySound("brain/spit")
    SAAR E 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TNT1 A 15 A_SpawnItemEx("StoneDemonRes2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" H 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(64,"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(30,"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",6,"Death.Burnt")
    "####" D 0 A_Jump(144,"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:
    SAAR F 4
    SAAR G 4 A_XScream
    SAAR HH 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SAAR I 4 A_NoBlocking
    SAAR JKLMN 4
    SAAR O 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    SAAR O -1
    Stop
    SAAR OOOOOO 5250 CanRaise
    SAAR OOOOOOOOO 2 A_FadeOut(0.1)
    Stop
  DeathClean:
    SARG NNNNNN 5250 CanRaise
    SARG NNNNNNNNN 2 A_FadeOut(0.1)
    Stop
  DeathClean2:
    SAAR EEEEEE 5250 CanRaise
    SAAR EEEEEEEEE 2 A_FadeOut(0.1)
    Stop
  Raise:
    SARG N 0
    SARG N 0 A_ChangeFlag("FRIGHTENED",0)
	SARG N 0 A_TakeInventory("MonHold",35)
    SARG N 5 Thing_SetSpecial(0,226,613,0,random(4,8))
    SARG MLKJI 5
    Goto See
  }
}

ACTOR BloodDemon_2 : Demon_2
{
  Health 225
  Speed 10
  Scale 0.99
  Obituary "%o was chomped by a blood demon."
  Translation "16:38=25:47", "39:43=1:2", "44:46=8:8", "47:47=0:0", "5:8=0:0", "80:98=93:111", "99:110=5:8", "111:111=0:0", "208:223=170:187", "232:235=188:191", "79:79=0:0"
  Tag "Blood Demon"
  States
  {
  Spawn:
    SARG A 0
    SARG A 0 A_CheckFlag("Friendly","Idle")
    SARG A 0 Thing_SetSpecial(0,226,613,0,random(10,20))
  Idle:
    SARG AABB 10 A_Look
    Loop
  See:
	SARG A 0 A_JumpIfInventory("MonHold",1,"Death")
    SARG A 0 A_JumpIfInventory("BlindCheck",3,"SeeWeak")
    SARG A 0 A_Jump(63,2)
    SARG A 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"SeeWeak")
    SARG AABBCCDDAABBCCDD 2 FAST A_Chase
    SARG A 0 A_Jump(63,2)
    SARG A 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"SeeWeak")
    SARG AABBCCDDAABBCCDD 2 FAST A_Chase
    SARG D 0 A_SpawnItemEx("DemonStepDamage",0,0,32,0,0,0,0,0,0)
    goto See+2
  SeeWeak2:
    SARG D 0 A_SpawnItemEx("DemonStepDamage",0,0,32,0,0,0,0,0,0)
  SeeWeak:
    SARG AA 4 FAST A_Chase("","")
    SARG BB 4 FAST A_Chase
    SARG CC 4 FAST A_Chase("","")
    SARG DD 4 FAST A_Chase
    SARG D 0 A_Jump(63,2)
    SARG D 0 A_JumpIfInTargetInventory("PowerInvisibility",1,2)
    SARG D 0 A_JumpIfInventory("BlindCheck",3,1)
    goto See+12
    SARG AA 4 FAST A_Chase("","")
    SARG BB 4 FAST A_Chase
    SARG CC 4 FAST A_Chase("","")
    SARG DD 4 FAST A_Chase
    SARG D 0 A_Jump(63,2)
    SARG D 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"SeeWeak2")
    SARG D 0 A_JumpIfInventory("BlindCheck",3,"SeeWeak2")
    goto See+30
  Pain.Stun3:
    SARG H 0 ACS_NamedExecuteAlways("RefStun",0,2,0,0)
    goto Pain
  Pain.Stun2:
    SARG H 0 ACS_NamedExecuteAlways("RefStun",0,1,0,0)
    goto Pain
  Pain.Stun:
    SARG H 0 ACS_NamedExecuteAlways("RefStun",0,0,0,0)
    goto Pain
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    SARG H 2
    SARG H 4 A_Pain
    goto See
  Pain:
    SARG H 2
    SARG H 2 A_Pain
    Goto See
  Melee:
    SARG E 0 A_Jump(127,2)
    SARG E 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"MeleeWeak")
    SARG E 0 A_JumpIfInventory("BlindCheck",2,"MeleeWeak")
    SARG E 4 FAST A_FaceTarget
    SARG E 2 FAST A_Recoil(-8)
    SARG F 6 FAST A_CustomMeleeAttack(25)
    SARG G 6 FAST
    Goto See
  MeleeWeak:
    SARG E 4 A_FaceTarget
    SARG E 2 A_Recoil(-8)
    SARG F 6 A_CustomMeleeAttack(25)
    SARG G 6
    Goto See
  Death.Shotgungib:
    SARG I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    SARG I 0 A_JumpIfHealthLower(-100, "XDeath")
  Death:
    SARG I 0
    SARG I 0 A_Jump(111,"Death2")
    SARG I 0 A_CheckFlag("Boss",3)
    SARG I 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    SARG I 0 A_Jump(20,"DeathAlt")
    SARG I 8
    SARG J 8 A_Scream
    SARG KK 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    SARG N -1
    Stop
  DeathAlt:
    SARG I 8
    SARG J 8 A_Scream
    SARG K 4
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_Jump(256,1,2,3)
    SARG NNNNN 115 CanRaise
    SARG N 0 A_PlaySound("brain/spit")
    SARG N 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TNT1 A 15 A_SpawnItemEx("StoneDemonRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  Death2:
    SAAR A 0
    SAAR A 0 A_CheckFlag("Boss",3)
    SAAR A 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    SAAR A 0 A_Jump(20,"Death2Alt")
    SAAR A 8
    SAAR B 4 A_Scream
    SAAR BB 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SARG E 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    SAAR E -1
    Stop
  Death2Alt:
    SAAR A 8
    SAAR B 8 A_Scream
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SAAR EEEE 115
    SAAR E 0 A_PlaySound("brain/spit")
    SAAR E 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TNT1 A 15 A_SpawnItemEx("StoneDemonRes2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" H 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(64,"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(30,"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",6,"Death.Burnt")
    "####" D 0 A_Jump(144,"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:
    SAAR F 4
    SAAR G 4 A_XScream
    SAAR HH 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SAAR I 4 A_NoBlocking
    SAAR JKLMN 4
    SAAR O 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, 2)
    SAAR O -1
    Stop
    SAAR OOOOOO 5250 CanRaise
    SAAR OOOOOOOOO 2 A_FadeOut(0.1)
    Stop
  DeathClean:
    SARG NNNNNN 5250 CanRaise
    SARG NNNNNNNNN 2 A_FadeOut(0.1)
    Stop
  DeathClean2:
    SAAR EEEEEE 5250 CanRaise
    SAAR EEEEEEEEE 2 A_FadeOut(0.1)
    Stop
  Raise:
    SARG N 0
    SARG N 0 A_ChangeFlag("FRIGHTENED",0)
	SARG N 0 A_TakeInventory("MonHold",35)
    SARG N 5 Thing_SetSpecial(0,226,613,0,random(5,10))
    SARG MLKJI 5
    Goto See
  }
}

actor StoneDemonRes
{
  Translation "16:38=100:111", "39:46=5:8", "47:47=0:0", "79:79=0:0", "208:223=96:111", "168:183=192:207", "184:191=240:247"
  Scale 1.02
  States
  {
  Spawn:
    SARG NMLKJI 5
    TNT1 A 5 A_SpawnItemEx("StoneDemon",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    TNT1 A 15 A_AlertMonsters(16,2)
    Stop
  }
}

actor StoneDemonRes2 : StoneDemonRes
{
  States
  {
  Spawn:
    SAAR EDCBA 6
    TNT1 A 5 A_SpawnItemEx("StoneDemon",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    TNT1 A 15 A_AlertMonsters(16,2)
    Stop
  }
}

actor StoneDemon : Demon
{
  Game Doom
  Obituary "%o was crunched by a stone demon."
  Health 325
  PainChance 10
  PainChance "Sniper", 20
  PainChance "Dragon", 3
  PainChance "DragonF", 3
  PainChance "Dragonsplosion", 3
  PainChance "RGAFire", 3
  PainChance "Knife", 255
  PainChance "Explosion", 255
  PainChance "ExplosionF", 255
  PainChance "ExplosionC", 255
  PainChance "NormalExplode", 255
  Speed 8
  Scale 1.02
  Radius 30
  Height 56
  Mass 800
  AttackSound "stoner/sight"
  PainSound "stoner/sight"
  DeathSound "stoner/sight1"
  ActiveSound "stoner/sight"
  DamageFactor "RGABullet", 1.3
  DamageFactor "Shotgungib", 1.0
  DamageFactor "Shotgun", 1.0
  DamageFactor "Rifle", 1.45
  DamageFactor "Sniper", 1.6
  DamageFactor "LMG", 1.8
  DamageFactor "BigPistol", 1.9
  DamageFactor "Cyber", 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 "BarrelBoom", 2.0
  DamageFactor "ScriptedMarine", 0.6
  DamageFactor "Step", 10.0
  DamageFactor "Revive", 0.0
  DamageFactor "Fire", 0.68//0.36
  DamageFactor "Dragon", 0.36
  DamageFactor "DragonF", 0.45
  DamageFactor "Dragonsplosion", 0.3
  DamageFactor "Knife", 1.15
  Species "Pinkies"
  MONSTER
  +FLOORCLIP
  //+FASTER
  +NOBLOOD
  +NOICEDEATH
  DropItem "StoneArmor" 64
  Translation "16:38=100:111", "39:46=5:8", "47:47=0:0", "79:79=0:0", "208:223=96:111", "168:183=192:207", "184:191=240:247"
  Tag "Stone Demon"
  States
  {
  Spawn:
    SARG A 0
    SARG A 0 A_CheckFlag("Friendly","Idle")
    SARG A 0 Thing_SetSpecial(0,226,613,0,random(12,24))
  Idle:
    SARG AABB 10 A_Look
    Loop
  See:
    SARG A 0 A_Jump(63,2)
    SARG A 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"SeeWeak")
    SARG AABBCCDDAABBCCDD 2 FAST A_Chase
    SARG A 0 A_Jump(63,2)
    SARG A 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"SeeWeak")
    SARG AABBCCDDAABBCCDD 2 FAST A_Chase
    SARG D 0 A_SpawnItemEx("DemonStepDamage",0,0,32,0,0,0,0,0,0)
    goto See
  SeeWeak2:
    SARG D 0 A_SpawnItemEx("DemonStepDamage",0,0,32,0,0,0,0,0,0)
  SeeWeak:
    SARG AA 4 FAST A_Chase("","")
    SARG BB 4 FAST A_Chase
    SARG CC 4 FAST A_Chase("","")
    SARG DD 4 FAST A_Chase
    SARG D 0 A_Jump(63,2)
    SARG D 0 A_JumpIfInTargetInventory("PowerInvisibility",1,2)
    SARG D 0 
    goto See+10
    SARG AA 4 FAST A_Chase("","")
    SARG BB 4 FAST A_Chase
    SARG CC 4 FAST A_Chase("","")
    SARG DD 4 FAST A_Chase
    SARG D 0 A_Jump(63,2)
    SARG D 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"SeeWeak2")
    SARG D 0 
    goto See+28
  Melee:
    SARG E 0 A_Jump(127,2)
    SARG E 0 A_JumpIfInTargetInventory("PowerInvisibility",1,"MeleeWeak")
    SARG E 7 FAST A_FaceTarget
    SARG E 2 FAST A_Recoil(-6)
    SARG F 9 FAST A_CustomMeleeAttack(30)
    SARG G 9 FAST
    Goto See
  MeleeWeak:
    SARG E 7 A_FaceTarget
    SARG E 2 A_Recoil(-6)
    SARG F 9 A_CustomMeleeAttack(30)
    SARG G 9
    Goto See
  Pain.NormalExplode:
  Pain.Sniper:
  Pain.ExplosionF:
  Pain.ExplosionC:
  Pain.Explosion:
    SARG H 2
    SARG H 4 A_Pain
    goto See
  Pain:
    SARG H 2
    SARG H 2
    Goto See
  Death.Ice:
  Death:
    SARG I 0
    SARG I 8 A_Jump(111,"Death2")
    SARG J 8 A_Scream
    SARG KK 2 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    SARG N -1
    Stop
  Death2:
    SAAR A 8
    SAAR B 4 A_Scream
    SAAR BB 2 A_SpawnItemEx("ArmorBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SARG E 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    SAAR E -1
    Stop
  DeathClean:
    SARG NNNNNN 5250 CanRaise
    SARG NNNNNNNNN 2 A_FadeOut(0.1)
    Stop
  DeathClean2:
    SAAR EEEEEE 5250 CanRaise
    SAAR EEEEEEEEE 2 A_FadeOut(0.1)
    Stop
  Raise:
    SARG N 0
    SARG N 5 Thing_SetSpecial(0,226,613,0,random(6,12))
    SARG MLKJI 5
    Goto See
  }
}

actor Spectre_2 : Demon_2
{
  Obituary "%o was eaten by a spectre."
  +SHADOW
  +CANTSEEK
  RenderStyle OptFuzzy
  Alpha 0.3
  Tag "Spectre"
  SeeSound "spectre/sight"
  AttackSound "spectre/melee"
  PainSound "spectre/pain"
  DeathSound "spectre/death"
  ActiveSound "spectre/active"
  States
  {
  Spawn:
    SARG A 0
    SARG A 0 A_CheckFlag("Friendly",2)
    SARG A 0 Thing_SetSpecial(0,226,613,0,random(8,16))
    SARG A 0 A_GiveInventory("Perk2_ColdBlooded_PRO",1)
  Idle:
    SARG AABB 10 A_Look
    Loop
  Death.Shotgungib:
    SARG I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    SARG I 0 A_JumpIfHealthLower(-75, "XDeath")
  Death:
    SARG I 0
    SARG I 0 A_Jump(111,"Death2")
    //SARG I 0 A_CheckFlag("Boss",3)
    //SARG I 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    //SARG I 0 A_Jump(12,"DeathAlt")//18
    SARG I 8
    SARG J 8 A_Scream
    SARG KK 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    SARG N -1
    Stop
  DeathAlt:
    SARG I 8
    SARG J 8 A_Scream
    SARG K 4
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_Jump(256,1,2,3)
    SARG NNNNN 115 CanRaise
    SARG N 0 A_PlaySound("brain/spit")
    SARG N 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TNT1 A 15 A_SpawnItemEx("StoneSpectreRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  Death2:
    //SAAR A 0
    //SAAR A 0 A_CheckFlag("Boss",3)
    //SAAR A 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    //SAAR A 0 A_Jump(18,"Death2Alt")
    SAAR A 8
    SAAR B 4 A_Scream
    SAAR BB 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SARG E 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    SAAR E -1
    Stop
  Death2Alt:
    SAAR A 8
    SAAR B 8 A_Scream
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SAAR EEEE 115
    SAAR E 0 A_PlaySound("brain/spit")
    SAAR E 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TNT1 A 15 A_SpawnItemEx("StoneSpectreRes2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" H 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(64,"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(30,"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",6,"Death.Burnt")
    "####" D 0 A_Jump(144,"Death.Burnt")
	"####" D 0 A_GiveInventory("MonHold",1)
    goto Death.FireCont
  Death.Burnt:
    "####" # 0 A_Jump(128,"Death")
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
    goto Death
  }
}

actor BloodSpectre : BloodDemon_2
{
  Obituary "%o was devoured by a blood spectre."
  +SHADOW
  RenderStyle OptFuzzy
  Alpha 0.4
  Tag "Blood Spectre"
  SeeSound "spectre/sight"
  AttackSound "spectre/melee"
  PainSound "spectre/pain"
  DeathSound "spectre/death"
  ActiveSound "spectre/active"
  Health 200
  States
  {
  Death.Shotgungib:
    SARG I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    SARG I 0 A_JumpIfHealthLower(-100, "XDeath")
  Death:
    SARG I 0
    SARG I 0 A_Jump(111,"Death2")
    //SARG I 0 A_CheckFlag("Boss",3)
    //SARG I 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    //SARG I 0 A_Jump(16,"DeathAlt")
    SARG I 8
    SARG J 8 A_Scream
    SARG KK 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    SARG N -1
    Stop
  DeathAlt:
    SARG I 8
    SARG J 8 A_Scream
    SARG K 4
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_Jump(256,1,2,3)
    SARG NNNNN 115 CanRaise
    SARG N 0 A_PlaySound("brain/spit")
    SARG N 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TNT1 A 15 A_SpawnItemEx("StoneSpectreRes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  Death2:
    //SAAR A 0
    //SAAR A 0 A_CheckFlag("Boss",3)
    //SAAR A 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",2,0,0)) == 1, 2)
    //SAAR A 0 A_Jump(16,"Death2Alt")
    SAAR A 8
    SAAR B 4 A_Scream
    SAAR BB 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SARG E 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    SAAR E -1
    Stop
  Death2Alt:
    SAAR A 8
    SAAR B 8 A_Scream
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SAAR EEEE 115
    SAAR E 0 A_PlaySound("brain/spit")
    SAAR E 10 A_SpawnItemEx("ResurrectionFire",0,0,0,0,0,0,0,128,0)
    TNT1 A 15 A_SpawnItemEx("StoneSpectreRes2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" H 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(64,"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(30,"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",6,"Death.Burnt")
    "####" D 0 A_Jump(144,"Death.Burnt")
	"####" D 0 A_GiveInventory("MonHold",1)
    goto Death.FireCont
  Death.Burnt:
    "####" # 0 A_Jump(128,"Death")
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
    goto Death
  }
}

actor StoneSpectreRes
{
  Translation "16:38=100:111", "39:46=5:8", "47:47=0:0", "79:79=0:0", "208:223=96:111", "168:183=192:207", "184:191=240:247"
  +SHADOW
  RenderStyle OptFuzzy
  Alpha 0.5
  Scale 1.02
  States
  {
  Spawn:
    SARG NMLKJI 5
    TNT1 A 5 A_SpawnItemEx("StoneSpectre",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    TNT1 A 15 A_AlertMonsters(16,2)
    Stop
  }
}

actor StoneSpectreRes2 : StoneSpectreRes
{
  States
  {
  Spawn:
    SAAR EDCBA 6
    TNT1 A 5 A_SpawnItemEx("StoneSpectre",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
    TNT1 A 15 A_AlertMonsters(16,2)
    Stop
  }
}

actor StoneSpectre : StoneDemon
{
  Obituary "%o was crunched by a stone spectre."
  +SHADOW
  RenderStyle OptFuzzy
  Tag "Stone Spectre"
  Alpha 0.5
  Health 300
}

actor Demon_2Stealth : Demon_2
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.Shotgungib:
    SARG I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    SARG I 0 A_JumpIfHealthLower(-75, "XDeath")
  Death:
    SARG I 0
    SARG I 8 A_Jump(111,"Death2")
    SARG J 8 A_Scream
    SARG KK 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    SARG N -1
    Stop
  Death2:
    SAAR A 8
    SAAR B 4 A_Scream
    SAAR BB 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SARG E 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    SAAR E -1
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" H 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(64,"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(30,"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",6,"Death.Burnt")
    "####" D 0 A_Jump(144,"Death.Burnt")
	"####" D 0 A_GiveInventory("MonHold",1)
    goto Death.FireCont
  Death.Burnt:
    "####" # 0 A_Jump(128,"Death")
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
    goto Death
  }
}

actor BloodDemon_2Stealth : BloodDemon_2
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  States
  {
  Death.Shotgungib:
    SARG I 0 A_JumpIfCloser(128, "XDeath")
  Death.Shotgun:
    SARG I 0 A_JumpIfHealthLower(-100, "XDeath")
  Death:
    SARG I 0
    SARG I 8 A_Jump(111,"Death2")
    SARG J 8 A_Scream
    SARG KK 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SARG L 4 A_NoBlocking
    SARG M 4
    SARG N 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean")
    SARG N -1
    Stop
  Death2:
    SAAR A 8
    SAAR B 4 A_Scream
    SAAR BB 2 A_SpawnItemEx("HealthBonus_3",0,0,0,random(-2,2),random(-2,2),random(2,5),0,0,0)
    SAAR C 8 A_NoBlocking
    SAAR D 4
    SARG E 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",3,0,0) % 2) == 1, "DeathClean2")
    SAAR E -1
    Stop
  Death.RGAFire:
  Death.Dragonsplosion:
  Death.Dragon:
  Death.DragonF:
  Death.Fire:
    "####" H 1
    "####" A 0 A_GiveInventory("MonHold",1)
    "####" A 0 A_Jump(64,"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(30,"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",6,"Death.Burnt")
    "####" D 0 A_Jump(144,"Death.Burnt")
	"####" D 0 A_GiveInventory("MonHold",1)
    goto Death.FireCont
  Death.Burnt:
    "####" # 0 A_Jump(128,"Death")
    "####" # 0 A_SpawnItemEx("RGABurnt",0,0,0,0,0,0,0,128,0)
    goto Death
  }
}

actor StoneDemonStealth : StoneDemon
{
  +STEALTH
  RenderStyle Translucent
  Alpha 0
}