
actor Doom_Spectre : ZBaseActor 19386
{
  Obituary "%o has been sodomized by a Spectre."
  Health 200
  Radius 20
  height 56
  mass 1000
  Speed 10
  SeeSound "spectre/sight"
  AttackSound ""
  PainSound "spectre/pain"
  DeathSound "spectre/death"
  ActiveSound "spectre/active"
  dropitem "PlasmaCannonAmmo" 48 20
  dropitem "Plasma Cannon" 16
  painchance 85
  Painchance "Shrinker", 256
  painchance "FireBurning", 200
  painchance "MightyBoot", 128
  painchance "BootStun", 256
  painchance "MicrowaveBlast", 256
  MONSTER
  +FLOORCLIP
  Scale 1.1
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  Species "Demons"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  RenderStyle Add
  Alpha 0.4
  +SHADOW
  WoundHealth 10
  MeleeRange 56
  Accuracy 12
  States
  {
  Spawn:
    SARG A 0
    "####" "#" 0 Thing_ChangeTID(0,1000)
    SARG A 8 A_Look
    Loop
  See:
    "####" "#" 0 A_SetHeightOffset(0)
    TNT1 A 1 A_Chase
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG B 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG B 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG B 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG C 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG C 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG C 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG D 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG D 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 A 1 A_Chase
    SARG D 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    TNT1 AAA 2 A_Chase
    Loop
  Melee:
    "####" "#" 0 A_SetHeightOffset(0,-8)
    SARG E 6 A_FaceTarget
    "####" "#" 0 A_Recoil(-5)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG F 6 A_FaceTarget
    "####" "#" 0 A_CustomMeleeAttack(random[RIDMONSTERAT](15,20), "spectre/melee", "spectre/melee", "LowPush")
    "####" "#" 0 Radius_Quake (2, 3, 0, 5, 0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG G 12
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    Goto See
  Pain.BootStun:
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Jump(128,"Pain2BootStun")
    SARG H 9
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG H 9 A_PlayVoiceSoundPitch("Pain")
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    Goto See
  Pain2BootStun:
    SARG O 9
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG O 9 A_PlayVoiceSoundPitch("Pain")
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    Goto See
  Pain:
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Jump(128,"Pain2")
    SARG H 3
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG H 3 A_PlayVoiceSoundPitch("Pain")
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    Goto See
  Pain2:
    SARG O 3
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG O 3 A_PlayVoiceSoundPitch("Pain")
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    Goto See
  Pain.MicrowaveBlast:
    "####" "#" 0 A_SetHeightOffset(0)
    SARG H 1
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    "####" "#" 0 A_CheckThump("Pain.BootStun")
    loop
  Death:
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG I 8 A_PlayVoiceSoundPitch("Death")
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG J 8
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG K 4 A_NoBlocking
    SARG L 4
    SARG M 4
    SARG N 1 A_SpawnItemEx("DeadDoom_Spectre", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    TNT1 A -1
    stop
  Pain.Shrinker:
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_InvulnerablePlus(1)
    SARG H 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG H 2 {A_SetScale(ScaleX - 0.04, ScaleY - 0.04); A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE|SXF_TRANSFERALPHA|SXF_TRANSFERRENDERSTYLE);}
    "####" "#" 0 A_JumpIf(ScaleX > 0.2 && ScaleY > 0.2, "Shrink")
    "####" "#" 0 A_Shrink("A","B","C","D",0.3)
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    stop
  XDeath:
  Death.BossStomp:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonArm1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonLeg1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5","Gib6")
    TNT1 A 1
    Stop
  Death.PlasmaGib:
    "####" "#" 0 A_SpawnItemEx("DukePlasmaExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnDebris("DukeGibs1NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonArm1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonLeg1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5","Gib6")
    TNT1 A 1
    Stop
  Death.Explosion:
  Death.RocketExplosion:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonArm1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonLeg1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5","Gib6")
    TNT1 A 1
    Stop
  Death.ExplosiveShotgun:
  Death.ShellExplosion:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonArm1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonLeg1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5","Gib6")
    TNT1 A 1
    Stop
  Gib1:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    GIB1 E 1 A_SpawnItemEx("Gib1DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Gib2:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    GIB2 E 1 A_SpawnItemEx("Gib2DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Gib3:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    GIB3 E 1 A_SpawnItemEx("Gib3DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Gib4:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    GIB4 E 1 A_SpawnItemEx("Gib4DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Gib5:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    GIB5 E 1 A_SpawnItemEx("Gib5DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Gib6:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SAGB A 4
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SAGB B 4
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SAGB C 4
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SAGB D 4
    SAGB EFG 4
    SAGB HI 4
   "####" "#" 0 A_SetRenderStyle(1.0,STYLE_Normal)
    SAGB JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 35 A_Gravity
    SAGB JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 1 A_FadeOut(0.1)
    Stop
  Wound.Expander:
   "####" "#" 0 A_Die("Expander")
  Death.Expander:
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_PlaySound("expander/expand")
    "####" "#" 0 {A_UnsetShootable; A_UnsetSolid;}
  Expand:
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG H 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.5 && ScaleY < 1.5, "Expand")
    SARG HHHHH 1
    "####" "#" 0 A_SetScale(1.1, 1.1)
    "####" "#" 0 A_PlayVoiceSoundPitch("Death","",4)
    "####" "#" 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    goto Death.Explosion
  Wound.Ice:
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    "####" "#" 0 A_Freeze("See")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    stop
  Death.Headshot:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonHead1",TRUE, 1.0, 1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARH A 8 A_NoBlocking
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARH A 8
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARH A 9
    SARH B 4
    SARH C 4
    SARH D 1 A_SpawnItemEx("DeadDoom_DemonBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    stop
  Death.SSG:
    "####" "#" 0 A_JumpIf(d3d_extradeathgore==1, "Death")
    "####" "#" 0 A_JumpIfCloser(210, 1)
    Goto Death
    "####" "#" 0 A_XScream
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_DemonArm1",TRUE, 1.0, 1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARC A 8 A_NoBlocking
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARC A 8
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARC A 9
    SARC B 4
    SARC C 4
    SARC D 1 A_SpawnItemEx("DeadDoom_DemonHalf", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    stop
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    SARG N 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    SARG M 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    SARG L 7 A_AdjustTics(1.0,1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG K 7 A_AdjustTics(1.0,1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG J 7 A_AdjustTics(1.0,1.0)
    SARG A 0 A_SpawnItemEx("SpectreBlur",random[RIDMONSTER](1,10),random[RIDMONSTER](1,10),0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    SARG I 7 A_AdjustTics(0,1.0)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  }
}

actor SpectreBlur : ShrunkBlur
{
  RenderStyle Translucent
  Alpha 0.1
  States
  {
  Spawn:
    "####" "######" 1 A_FadeIn(0.025)
    "####" "###" 1
    "####" "######" 1 A_FadeOut(0.025)
    Stop
  }
}

actor DeadDoom_Spectre : DeadDoom_Demon 19387
{
  States
  {
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadDoom_Spectre", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  }
}