
actor Doom_Revenant : ZBaseActor 19388
{
  HitObituary "$OB_UNDEADHIT"
  Obituary "$OB_UNDEAD"
  Health 300
  Radius 16
  height 72
  mass 1000
  Speed 10
  SeeSound "skeleton/sight"
  attacksound ""
  PainSound "skeleton/pain"
  DeathSound "skeleton/death"
  ActiveSound "skeleton/active"
  DropItem IncineratorAmmo 16 50
  dropitem "BootsPickup" 4
  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 0.87
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  Species "Revenants"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  +MISSILEMORE
  MeleeThreshold 120
  meleerange 50
  States
  {
  Spawn:
    SKEL A 0
    "####" "#" 0 Thing_ChangeTID(0,1000)
    SKEL AA 10 A_Look
    Loop
  See:
    "####" "#" 0 A_SetHeightOffset(0)
    SKEL AABBCCDDEEFF 2 A_Chase
    Loop
  Melee:
    "####" "#" 0 A_SetHeightOffset(-11)
    SKEL G 5 A_SkelWhoosh
    "####" "#" 0 A_SetHeightOffset(-1)
    SKEL H 4 A_FaceTarget
    "####" "#" 0 A_CustomMeleeAttack(random[RIDMONSTERAT](20,30), "skeleton/melee", "", "LowPush")
    "####" "#" 0 Radius_Quake (2, 3, 0, 5, 0)
    "####" "#" 0 A_SetHeightOffset(-20)
    SKEL I 6
    Goto See
  Missile:
    "####" "#" 0 A_Jump (64, "Missile3")
    "####" "#" 0 A_Jump (128, "Missile2")
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 8 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON)
    "####" "#" 0 A_SetHeightOffset(-12)
    SKEL J 6 BRIGHT A_CustomMissile("Doom_RevenantTracer",50,10,0)
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 10
    Goto See
  Missile2:
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 8 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON)
    "####" "#" 0 A_SetHeightOffset(-12)
    SKEL J 6 BRIGHT A_CustomMissile("Doom_RevenantTracer",50,-10,0)
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 10
    Goto See
  Missile3:
    "####" "#" 0 A_Jump (128, 2)
    "####" "#" 0 A_JumpIfCloser(500,"Missile4")
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 16 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON)
    "####" "#" 0 A_SetHeightOffset(-12)
    SKEL J 6 BRIGHT A_CustomMissile("Doom_RevenantMissile",50,10,-8)
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 10 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON)
    "####" "#" 0 A_SetHeightOffset(-12)
    SKEL J 6 BRIGHT A_CustomMissile("Doom_RevenantMissile",50,-10,0)
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 10 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON)
    "####" "#" 0 A_SetHeightOffset(-12)
    SKEL J 6 BRIGHT A_CustomMissile("Doom_RevenantMissile",50,10,8)
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 20 A_FaceTarget
    Goto See
  Missile4:
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 16 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON)
    "####" "#" 0 A_SetHeightOffset(-12)
    SKEL J 1 BRIGHT A_CustomMissile("Doom_RevenantMortar",50,10,0,2,0)
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON)
    SKEL J 5 BRIGHT A_CustomMissile("Doom_RevenantMortar",50,-10,0,2,0)
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL K 20
    Goto See
  Pain.BootStun:
    "####" "#" 0 A_SetHeightOffset(-5)
    "####" "#" 0 A_Jump(128,"Pain2BootStun")
    SKEL L 9
    SKEL L 9 A_PlayVoiceSoundPitch("Pain")
    Goto See
  Pain2BootStun:
    SKEL X 9
    SKEL X 9 A_PlayVoiceSoundPitch("Pain")
    Goto See
  Pain:
    "####" "#" 0 A_SetHeightOffset(-5)
    "####" "#" 0 A_Jump(128,"Pain2")
    SKEL L 3
    SKEL L 3 A_PlayVoiceSoundPitch("Pain")
    Goto See
  Pain2:
    SKEL X 3
    SKEL X 3 A_PlayVoiceSoundPitch("Pain")
    Goto See
  Pain.MicrowaveBlast:
    "####" "#" 0 A_SetHeightOffset(-5)
    SKEL L 1
    "####" "#" 0 A_CheckThump("Pain.BootStun")
    loop
  Death:
    SKEL L 7
    SKEL M 7
    SKEL N 7 A_PlayVoiceSoundPitch("Death")
    SKEL O 7 A_NoBlocking
    SKEL P 7
    SKEL Q 1 A_SpawnItemEx("DeadDoom_Revenant", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    TNT1 A -1
    stop
  Pain.Shrinker:
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_InvulnerablePlus(1)
    SKEL L 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    SKEL L 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);}
    "####" "#" 0 A_JumpIf(ScaleX > 0.2 && ScaleY > 0.2, "Shrink")
    "####" "#" 0 A_Shrink("A","B","C","D",0.25)
    "####" "#" 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("Doom_RevenantHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantArm1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantLeg1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantBone1",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("Doom_RevenantHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantArm1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantLeg1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantBone1",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("Doom_RevenantHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantArm1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantLeg1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantBone1",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_SpawnDebris("Doom_RevenantHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantArm1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantLeg1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantBone1",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)
    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)
    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)
    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)
    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)
    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)
    REDX A 3
    REDX B 3
    REDX C 3
    REDX D 4
    REDX EFGHIJ 4
    REDX KKKKKKKKKKKKKKKKKKKKKKKKKKKKKK 35 A_Gravity
    REDX KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK 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:
    SKEL L 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.4 && ScaleY < 1.4, "Expand")
    SKEL LLLLL 1
    "####" "#" 0 A_SetScale(0.87, 0.87)
    "####" "#" 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:
    "####" "#" 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_RevenantHead1",TRUE, 1.0, 1.0)
    REVH A 25 A_NoBlocking
    "####" "#" 0 A_PlayVoiceSoundPitch("Death","",4)
    REVH B 4
    REVH C 4
    REVH D 1 A_SpawnItemEx("DeadDoom_RevenantBehead", 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("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantHead1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantArm1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("Doom_RevenantBone1",TRUE, 1.0, 1.0)
    DKEL E 21 A_NoBlocking
    "####" "#" 0 A_PlayVoiceSoundPitch("Death","",4)
    DKEL F 14
    DKEL G 7
    DKEL H 7
    DKEL I 1 A_SpawnItemEx("DeadDoom_RevenantHalf", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    stop
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    SKEL Q 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    SKEL P 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    SKEL O 7 A_AdjustTics(1.0,1.0)
    SKEL N 7 A_AdjustTics(1.0,1.0)
    SKEL M 7 A_AdjustTics(1.0,1.0)
    SKEL L 7 A_AdjustTics(0,1.0)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  }
}

Actor Doom_RevenantTracer : ZMissile
{
  +FOILINVUL
  -DEHEXPLOSION
  -ROCKETTRAIL
  Radius 10
  Height 8
  Speed 10
  Damage (10)
  Projectile
  Decal "DukeScorch"
  DamageType "RocketExplosion"
  RenderStyle "Add"
  Alpha 1
  SeeSound "skeleton/attack"
  DeathSound "skeleton/tracex"
  +SEEKERMISSILE 
  -THRUSPECIES
  Species "none"
  States
  {
  Spawn:
    FATB A 1 bright
    TNT1 A 0 A_SpawnItem("RedFlareMedium",0,0)
    TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
    TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random[RIDFX](160, 210), 2, random[RIDFX](-30, 30))
    FATB A 1 bright
    TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
    TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random[RIDFX](160, 210), 2, random[RIDFX](-30, 30))
    TNT1 A 0 A_SeekerMissile (4,8)
    FATB B 1 bright
    TNT1 A 0 A_SpawnItem("RedFlareMedium",0,0)
    TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
    TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random[RIDFX](160, 210), 2, random[RIDFX](-30, 30))
    FATB B 1 bright
    TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
    TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random[RIDFX](160, 210), 2, random[RIDFX](-30, 30))
    TNT1 A 0 A_SeekerMissile (4,8)
    loop
  Death:
    TNT1 AA 0 A_SpawnItemEx ("RedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 180))
    TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 AAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_SpawnItem("BigRicoChet")
    TNT1 A 0 A_SPawnItem("ExplosionAirDisplacementEffect")
    TNT1 A 0 A_PlaySound("skeleton/tracex")
    TNT1 A 0 A_PlayWeaponSound("skeleton/tracex")
    TNT1 A 0 Radius_Quake(2, 8, 0, 12, 0)
    TNT1 A 0 A_Explode(30,130)
    FBXP A 1 bright {A_SpawnItem("RedFlareMedium",0,0); A_FadeOut(0.075);}
    FBXP A 1 bright {A_SpawnItem("RedFlareMedium",0,0); A_FadeOut(0.075);}
    FBXP A 1 bright {A_SpawnItem("RedFlareMedium",0,0); A_FadeOut(0.075);}
    FBXP A 1 bright {A_SpawnItem("RedFlareMedium",0,0); A_FadeOut(0.075);}
    FBXP B 1 bright {A_SpawnItem("RedFlareMedium",0,0); A_FadeOut(0.075);}
    FBXP B 1 bright {A_SpawnItem("RedFlareMedium",0,0); A_FadeOut(0.075);}
    FBXP B 1 bright A_FadeOut(0.075)
    FBXP B 1 bright A_FadeOut(0.075)
    FBXP C 1 bright A_FadeOut(0.075)
    FBXP C 1 bright A_FadeOut(0.075)
    FBXP C 1 bright A_FadeOut(0.075)
    FBXP C 1 bright A_FadeOut(0.075)
    Stop
  }
}

Actor Doom_RevenantMissile : Doom_RevenantTracer
{
  Speed 20
  -SEEKERMISSILE 
  States
  {
  Spawn:
    FATB A 1 bright
    TNT1 A 0 A_SpawnItem("RedFlareMedium",0,0)
    TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
    TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random[RIDFX](160, 210), 2, random[RIDFX](-30, 30))
    FATB A 1 bright
    TNT1 A 0 A_SpawnItem("RedFlareMedium",0,0)
    TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
    TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random[RIDFX](160, 210), 2, random[RIDFX](-30, 30))
    FATB B 1 bright
    TNT1 A 0 A_SpawnItem("RedFlareMedium",0,0)
    TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
    TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random[RIDFX](160, 210), 2, random[RIDFX](-30, 30))
    FATB B 1 bright
    TNT1 A 0 A_SpawnItem("RedFlareMedium",0,0)
    TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
    TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random[RIDFX](160, 210), 2, random[RIDFX](-30, 30))
    loop
  }
}

Actor Doom_RevenantMortar : PigBruteMortar
{
  Damage (20)
  Obituary "%o was brutally destroyed by a Revenant."
  States
  {
  Death:
    TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 180))
    TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    "####" "#" 0 A_CustomMissile ("RPGExplosion", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 AAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    "####" "#" 0 A_SpawnItem("BigRicoChet")
    "####" "#" 0 A_SPawnItem("ExplosionAirDisplacementEffect")
    "####" "#" 0 A_PlaySound("rpg/blowup")
    "####" "#" 0 A_PlayWeaponSound("rpg/blowup")
    "####" "#" 0 Radius_Quake(2, 8, 0, 12, 0)
    TNT1 A 2
    "####" "#" 0 A_Explode(20, 136)
    TNT1 A 10
    stop
  }
}

actor DeadDoom_Revenant : DeadDukeNukemP 19389
{
  Radius 16
  Height 12
  scale 0.87
  States
  {
  Spawn:
    SKEL Q -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadDoom_Revenant", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    SKEL Q 5 A_GenericFreezeDeath
    SKEL Q 1 A_FreezeDeathChunks
    wait
  Gib1:
  Gib2:
  Gib3:
  Gib4:
  Gib5:
    TNT1 A 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    TNT1 A 1 A_SpawnItemEx("Gib4DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  }
}

actor DeadDoom_RevenantBehead : DeadDukeNukem
{
  Radius 16
  Height 12
  scale 0.87
  States
  {
  Spawn:
    REVH D -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadDoom_RevenantBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    REVH D 5 A_GenericFreezeDeath
    REVH D 1 A_FreezeDeathChunks
    wait
  Gib1:
  Gib2:
  Gib3:
  Gib4:
  Gib5:
    TNT1 A 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    TNT1 A 1 A_SpawnItemEx("Gib4DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  }
}

actor DeadDoom_RevenantHalf : DeadDukeNukem
{
  Radius 16
  Height 12
  scale 0.87
  States
  {
  Spawn:
    DKEL I -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadDoom_RevenantHalf", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    DKEL I 5 A_GenericFreezeDeath
    DKEL I 1 A_FreezeDeathChunks
    wait
  Gib1:
  Gib2:
  Gib3:
  Gib4:
  Gib5:
    TNT1 A 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    TNT1 A 1 A_SpawnItemEx("Gib4DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  }
}