
// NIGHTMARE CYBERDEMON
//"10 tons of fuck you" - Yholl, 2014
ACTOR RLNightmareCyberdemon : RLCyberdemonBase 16533
{
  Health 6000
  Speed 20
  Mass 10000
  
  MeleeRange 120
  PainThreshold 200
  PainChance 150
  
  DamageFactor "Melee", 1.5
  DamageFactor "Holy", 2
  DamageFactor "Unholy", 0.25
  
  SeeSound "nightmarecyberdemon/sight"
  ActiveSound "nightmarecyberdemon/active"
  PainSound "nightmarecyberdemon/pain"
  
  Obituary "%o screamed as the Nightmare Cyberdemon destroyed %h without mercy."
  HitObituary "%o was just another corpse beneath the Nightmare Cyberdemon's hoof."
  Tag "Nightmare Cyberdemon"
    //$category "MP Nightmare"
  
	// Guncaster compatibility
	DropItem "TreasureChest"
	DropItem "TreasureChest"
  States
  {
  Spawn:
    NCYB C Random(9,10) A_Look
    Goto Spawn
	
  See:
    NCYB DD 4 A_Chase
    TNT1 A 0 A_PlaySound("cyber/hoof", 5, 1, 0, 0.7)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 2)
    TNT1 A 0 A_Quake(2, 6, 0, 512, "")
    NCYB AA 4 A_Chase ("Melee", "", CHF_DONTMOVE)
    TNT1 A 0 A_PlaySound("spider/walk", 5, 1, 0, 0.7)
    NCYB BB 4 A_Chase
    TNT1 A 0 A_PlaySound("rlmonsters/metalhoof", 5, 0.7, 0, 0.7)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 2)
    TNT1 A 0 A_Quake(2, 6, 0, 512, "")
    NCYB CC 4 A_Chase ("Melee", "Missile", CHF_DONTMOVE)
    Loop
  SeeNoAttack:
    "####" "#" 0 A_JumpIfInventory ("RLLegendaryAttackCooldown", 1, 1)
    Goto See
    NCYB DD 4 A_Chase ("Melee", "")
    TNT1 A 0 A_PlaySound("cyber/hoof", 5, 1, 0, 0.7)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 2)
    TNT1 A 0 A_Quake(2, 6, 0, 512, "")
    "####" "#" 0 A_JumpIfInventory ("RLLegendaryAttackCooldown", 1, 1)
    Goto See
    NCYB AA 4 A_Chase ("Melee", "", CHF_DONTMOVE)
    TNT1 A 0 A_PlaySound("spider/walk", 5, 1, 0, 0.7)
    "####" "#" 0 A_JumpIfInventory ("RLLegendaryAttackCooldown", 1, 1)
    Goto See
    NCYB BB 4 A_Chase ("Melee", "")
    TNT1 A 0 A_PlaySound("rlmonsters/metalhoof", 5, 0.7, 0, 0.7)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 2)
    TNT1 A 0 A_Quake(2, 6, 0, 512, "")
    "####" "#" 0 A_JumpIfInventory ("RLLegendaryAttackCooldown", 1, 1)
    Goto See
    NCYB CC 4 A_Chase ("Melee", "", CHF_DONTMOVE)
    Loop
	
  MeleeProper:
    TNT1 A 0 A_JumpIfInTargetInventory("RLTacticalSetBonusActive", 1, "MeleeAOECheck")
    TNT1 A 0 A_JumpIfInTargetInventory("RLFireangelPerk", 1, "MeleeAOECheck")
    TNT1 A 0 A_CheckFlag("NORADIUSDMG", "Missile", AAPTR_TARGET)
    TNT1 A 0 A_CheckFlag("BOSS", "Missile", AAPTR_TARGET)
  MeleeCheckComplete:
    NCYB S 12 A_FaceTarget
    TNT1 A 0 A_PlaySound("rlmonsters/stomp", 5, 2, 0, 0.6)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 3)
    TNT1 A 0 A_Quake(3, 12, 0, 1024, "")
    TNT1 A 0 A_Quake(9, 12, 0, 512, "")
    TNT1 A 0 A_CustomMissile("RLStompSmoke", 10, 20, 0)
    TNT1 A 0 A_JumpIfCloser(72, 1)
    Goto MeleeContinue
    TNT1 A 0 A_CustomMeleeAttack (256 * random(1, 2), "", "", "Melee")
  MeleeContinue:
    TNT1 A 0 A_CustomMissile("RLNightmareCyberStompShockwave",5,0)
    NCYB T 12 A_RadiusThrust(512, 164, RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE)
    NCYB C 12 A_FaceTarget
    Goto See
  MeleeAOECheck:
    TNT1 A 0 A_JumpIfCloser(72, 1)
    Goto Missile
    TNT1 A 0
    Goto MeleeCheckComplete
	
  MissileProper:
    TNT1 A 0 A_CheckFlag ("FRIENDLY", "SummonMissileChoices") // Friendly monsters do not harm you
    TNT1 A 0 A_JumpIfCloser(800, 1)
	Goto ParticleBeam
    TNT1 A 0 A_JumpIfInTargetInventory("RLInquisitorsSetBonusActive", 1, "PlasmaCannon")
    TNT1 A 0 A_Jump(250, "Rockets", "PlasmaCannon")
	Goto ParticleBeam
  Rockets:
    NCYB E 6 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB F 12 Bright A_CustomMissile("RLCyberdemonRocket", 50, -20, frandom(1,-1), CMF_OFFSETPITCH, frandom(1,-1))
    NCYB E 12 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB F 12 Bright A_CustomMissile("RLCyberdemonRocket", 50, -20, frandom(1,-1), CMF_OFFSETPITCH, frandom(1,-1))
    NCYB E 12 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB F 12 Bright A_CustomMissile("RLCyberdemonRocket", 50, -20, frandom(1,-1), CMF_OFFSETPITCH, frandom(1,-1))
    Goto See
  PlasmaCannon:
    NCYB E 6 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLNightmareCyberdemonPlasmaBall", 50, -20)
    NCYB E 5 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLNightmareCyberdemonPlasmaBall", 50, -20, frandom(1,-1), CMF_OFFSETPITCH, frandom(1,-1))
    NCYB E 5 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLNightmareCyberdemonPlasmaBall", 50, -20, frandom(3,-3), CMF_OFFSETPITCH, frandom(3,-3))
    NCYB E 5 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLNightmareCyberdemonPlasmaBall", 50, -20, frandom(5,-5), CMF_OFFSETPITCH, frandom(5,-5))
    NCYB E 5 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLNightmareCyberdemonPlasmaBall", 50, -20, frandom(7,-7), CMF_OFFSETPITCH, frandom(7,-7))
    NCYB E 12 A_FaceTarget
    Goto See
	
  Overwatch:
    TNT1 A 0 A_Chase ("", "RepeatFriendlyCheck", CHF_DONTMOVE)
    NCYB E 1 A_FaceTarget
    TNT1 A 0 A_Chase ("", "RepeatFriendlyCheck", CHF_DONTMOVE)
    NCYB E 1 A_FaceTarget
    TNT1 A 0 A_JumpIfCloser(800, 2)
    TNT1 A 0 A_Jump (4, "See", "RageStomp")
    Loop
    TNT1 A 0 A_JumpIfCloser(400, "See")
    TNT1 A 0 A_Jump (30, "See")
    Loop
  ParticleBeam:
  RepeatProper:
    TNT1 A 0 A_CheckFlag ("BOSS", "PlasmaCannon", AAPTR_TARGET)
    TNT1 A 0 A_JumpIfCloser(2048, 1)
	Goto ParticleBeam2
    TNT1 A 0 A_JumpIfInTargetInventory("RLTacticalSetBonusActive", 1, 3)
    TNT1 A 0 A_JumpIfInTargetInventory("RLFireangelPerk", 1, 2)
    TNT1 A 0 A_JumpIfCloser(160, "Melee")
    NCYB E 4 A_FaceTarget
    TNT1 A 0 A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.6, 0, 0, 1, 0.75, 0, "none", -5)
    NCYB E 8 A_FaceTarget
    NCYB RR 1 Bright A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.6, 0, 0, 1, 0.75, 0, "none", -5)
    TNT1 A 0 A_PlaySound("rlmonsters/particlebeam", CHAN_WEAPON, 2, 0, 0.2)
    TNT1 A 0 A_CustomRailgun (random(40,70), -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 0, "RLParticleBeamPuff", -0.6, 0, 0, 0, 0.2, 1, "RLParticleBeamCore", -5)
    NCYB RRRRRRRRRRRRRR 1 Bright A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.6, 0, 0, 1, 0.75, 0, "none", -5)
    NCYB E 2 A_FaceTarget
    TNT1 A 0 A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.6, 0, 0, 1, 0.75, 0, "none", -5)
    NCYB E 10 A_FaceTarget
    TNT1 A 0 A_JumpIfCloser(1024, "Rockets")
    TNT1 A 0 A_MonsterRefire(0, "Overwatch")
    Goto RepeatFriendlyCheck
  ParticleBeam2:
    TNT1 A 0 A_JumpIfCloser(4096, 1)
	Goto ParticleBeam3
    NCYB E 4 A_FaceTarget
    TNT1 A 0 A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.4, 0, 0, 1, 0.75, 0, "none", -5)
    NCYB E 8 A_FaceTarget
    NCYB RR 1 Bright A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.4, 0, 0, 1, 0.75, 0, "none", -5)
    TNT1 A 0 A_PlaySound("rlmonsters/particlebeam", CHAN_WEAPON, 2, 0, 0.2)
    TNT1 A 0 A_CustomRailgun (random(40,70), -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 0, "RLParticleBeamPuff", -0.4, 0, 0, 0, 0.2, 1, "RLParticleBeamCore", -5)
    NCYB RRRRRRRRRRRRRR 1 Bright A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.4, 0, 0, 1, 0.75, 0, "none", -5)
    NCYB E 2 A_FaceTarget
    TNT1 A 0 A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.4, 0, 0, 1, 0.75, 0, "none", -5)
    NCYB E 10 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "Overwatch")
    Goto RepeatFriendlyCheck
  ParticleBeam3:
    NCYB E 4 A_FaceTarget
    TNT1 A 0 A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.2, 0, 0, 1, 0.75, 0, "none", -5)
    NCYB E 8 A_FaceTarget
    NCYB RR 1 Bright A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.2, 0, 0, 1, 0.75, 0, "none", -5)
    TNT1 A 0 A_PlaySound("rlmonsters/particlebeam", CHAN_WEAPON, 2, 0, 0.2)
    TNT1 A 0 A_CustomRailgun (random(40,70), -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 0, "RLParticleBeamPuff", -0.2, 0, 0, 0, 0.2, 1, "RLParticleBeamCore", -5)
    NCYB RRRRRRRRRRRRRR 1 Bright A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.2, 0, 0, 1, 0.75, 0, "none", -5)
    NCYB E 2 A_FaceTarget
    TNT1 A 0 A_CustomRailgun (0, -20, "none", White, RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 1, 50, "RLParticleBeamPuff2", -0.2, 0, 0, 1, 0.75, 0, "none", -5)
    NCYB E 10 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "Overwatch")
    Goto RepeatFriendlyCheck
	
  SummonMissileChoices:
    TNT1 A 0 A_Jump(127, "SummonRockets")
	Goto SummonPlasma
  SummonRockets:
	TNT1 A 0 A_FaceTarget
    NCYB F 12 Bright A_CustomMissile("RLSummonCyberdemonRocket", 50, -20, frandom(1,-1), CMF_OFFSETPITCH, frandom(1,-1))
    NCYB E 12 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB F 12 Bright A_CustomMissile("RLSummonCyberdemonRocket", 50, -20, frandom(1,-1), CMF_OFFSETPITCH, frandom(1,-1))
    NCYB E 12 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB F 12 Bright A_CustomMissile("RLSummonCyberdemonRocket", 50, -20, frandom(1,-1), CMF_OFFSETPITCH, frandom(1,-1))
    Goto See
  SummonPlasma:
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLSummonNightmareCyberdemonPlasmaBall", 50, -20)
    NCYB E 5 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLSummonNightmareCyberdemonPlasmaBall", 50, -20, frandom(1,-1), CMF_OFFSETPITCH, frandom(1,-1))
    NCYB E 5 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLSummonNightmareCyberdemonPlasmaBall", 50, -20, frandom(3,-3), CMF_OFFSETPITCH, frandom(3,-3))
    NCYB E 5 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLSummonNightmareCyberdemonPlasmaBall", 50, -20, frandom(5,-5), CMF_OFFSETPITCH, frandom(5,-5))
    NCYB E 5 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLSummonNightmareCyberdemonPlasmaBall", 50, -20, frandom(7,-7), CMF_OFFSETPITCH, frandom(7,-7))
    NCYB E 12 A_FaceTarget
    Goto See
	
  PainMain:
    NCYB G 1
    NCYB G 0 ACS_NamedExecuteAlways("DRLA_BossPainCheck", 0)
    NCYB G 9 A_Pain
    Goto See
	
  RageStomp:
    NCYB S 4
    NCYB S 8 A_Pain
    TNT1 A 0 A_PlaySound("rlmonsters/stomp", 5, 2, 0, 0.6)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 3)
    TNT1 A 0 A_Quake(3, 12, 0, 1024, "")
    TNT1 A 0 A_Quake(9, 12, 0, 512, "")
    TNT1 A 0 A_CustomMissile("RLStompSmoke", 10, 20, 0)
    TNT1 A 0 A_JumpIfCloser(72, 1)
    Goto RageStompContinue
    TNT1 A 0 A_CustomMeleeAttack (512 * random(1, 2), "", "", "Melee")
  RageStompContinue:
    TNT1 A 0 A_CustomMissile("RLNightmareCyberStompShockwave",5,0)
    NCYB T 12 A_RadiusThrust(512, 164, RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE)
    NCYB C 12
    TNT1 A 0 A_Jump (25, "RageStomp")
    Goto See
	
  DeathMain:
    TNT1 A 0 A_GiveInventory ("RLNightmareCyberdemonKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    NCYB H 10
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 2)
    TNT1 A 0 A_Quake(7, 40, 0, 1024, "")
    NCYB I 10 Bright A_Scream
    TNT1 A 0 A_SpawnItemEx ("RLGibber", 0,0,0, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
    NCYB JKL 10 Bright
    TNT1 A 0 A_SpawnItemEx ("RLGibber", 0,0,0, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 2)
    TNT1 A 0 A_Quake(4, 20, 0, 1024, "")
    NCYB M 10 Bright A_NoBlocking
    NCYB NO 10
    NCYB P 30
    NCYB P 0 A_BossDeath
    "####" "#" 0 A_Jump(256, "DeathEnd")
    Goto DeathEnd
  DeathFrame:
    NCYB P 0 A_BossDeath
    "####" "#" 0 A_Jump(256, "DeathEnd")
    Goto DeathEnd
	
	//Ice
  GenericFreezeDeath:
	"####" "#" 0 A_GiveInventory ("RLNightmareCyberdemonKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    "####" "#" 0 A_Jump(256, "GenericFreezeMana")
    Goto GenericFreezeMana
	
  CrushDRLA:
    TNT1 A 30 A_SpawnItemEx("RLCrushedLarge",0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_Jump(256, "CrushEnd")
    Goto CrushEnd
//==============================================================================
//					--	DOOMRL ARSENAL STUFF  --
//==============================================================================
  Pain.RigelBlast:
    TNT1 A 0 A_PlaySound("weapons/dn2gunhit", CHAN_BODY)
    D2F1 R 2 Bright
    Goto See
  Pain.NeuralStun:
    D2F1 R 2 Bright
    Goto See
  Pain.CyberDisruptor:
    TNT1 A 0
    Goto Pain.LightningBlue
	
  Death.NeuralStun:
    TNT1 A 0
    Goto Death
  XDeath.RigelBlast:
  Death.RigelBlast:
    TNT1 A 0 A_GiveInventory ("RLDuke2Score", 10000, AAPTR_TARGET)
    TNT1 A 0 A_GiveInventory ("RLNightmareCyberdemonKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    TNT1 A 0 A_PlaySound("weapons/dn2gunbigexplosion", 7, 1, 0, 0.3)
    TNT1 A 0 A_NoBlocking
    TNT1 A 0 A_SetUserVar("user_dn2bossexplosiontimer", 80)
    TNT1 A 0 A_Jump (256, "DN2BossExplosionLoop")
	Goto DN2BossExplosionLoop
  DN2BossExplosionLoop:
    TNT1 A 0 A_JumpIf (user_dn2bossexplosiontimer <= 0, "DN2BossExplosionFinish")
    TNT1 A 0 A_Jump(190, 2)
    TNT1 A 0 A_RadiusGive ("RLDN2BossFlash", 768, RGF_PLAYERS, 1)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 2)
    TNT1 A 0 A_Quake(4, 2, 0, 768, "")
    NCYB G 1 Bright
    TNT1 A 0 A_Jump(150, 2)
    TNT1 A 0 A_PlaySound("weapons/dn2gunbigexplosion", 7, 1, 0, 0.3)
    TNT1 A 0 A_Jump(100, 2)
    TNT1 A 0 A_SpawnItemEx ("RLDuke2RandomExplosion", frandom(-64,64),frandom(-64,64),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 1
    TNT1 A 0 A_SpawnItemEx ("RLDuke2RandomExplosion", frandom(-64,64),frandom(-64,64),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SetUserVar("user_dn2bossexplosiontimer", user_dn2bossexplosiontimer - 1)
    Goto DN2BossExplosionLoop
  DN2BossExplosionFinish:
    TNT1 A 0 A_RadiusGive ("RLDN2BossFlash2", 1560, RGF_PLAYERS, 1)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 2)
    TNT1 A 0 A_Quake(9, 15, 0, 1560, "")
    TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_PlaySound("weapons/dn2gunbigexplosion", 7, 1, 0, 0)
//    TNT1 A 0 A_SpawnItemEx ("RLDuke2BossExplosion", 0,0,48, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SpawnItemEx ("RLDuke2ShockwaveLeft", 0,12,48, 0,14,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SpawnItemEx ("RLDuke2ShockwaveRight", 0,-12,48, 0,-14,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 35
    TNT1 A 0 A_BossDeath
	Stop
	
//==============================================================================
//					--	Special Monster Attacks  --
//==============================================================================
  ShadowAuraMissileAttack:
    NCYB E 4 A_FaceTarget
    TNT1 A 0 A_GiveInventory ("RLLegendaryAttackCooldown", 1)
  ShadowAuraRepeatAttack:
    NCYB E 6 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB Q 4 Bright A_CustomMissile("RLNightmareCyberdemonPlasmaBall", 50, -20)
    NCYB E 5 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "See")
    TNT1 A 0 A_Jump (20, "ParticleBeam", "ShadowAuraRockets")
    Goto RepeatFriendlyCheck
  ShadowAuraRockets:
    NCYB E 3 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB F 5 Bright A_CustomMissile("RLCyberdemonRocket", 50, -20, frandom(-15,15), CMF_OFFSETPITCH, frandom(-1,1))
    NCYB E 3 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB F 5 Bright A_CustomMissile("RLCyberdemonRocket", 50, -20, frandom(-15,15), CMF_OFFSETPITCH, frandom(-1,1))
    NCYB E 3 A_FaceTarget
	TNT1 A 0 A_FaceTarget
    NCYB F 5 Bright A_CustomMissile("RLCyberdemonRocket", 50, -20, frandom(-15,15), CMF_OFFSETPITCH, frandom(-1,1))
    Goto RepeatFriendlyCheck
	
//==============================================================================
//					--	Final Doomer Compatibility Stuff  --
//==============================================================================
  DeathXSparkFrame:
    "####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
    "####" "#" 0 A_DropItem("MajorManaPod",-1,54)
    NCYB G 0 A_BossDeath
    "####" "#" 0 A_Jump(256, "DeathXSpark")
	Goto DeathXSpark
	
//==============================================================================
//					--	Guncaster Compatibility Stuff  --
//==============================================================================
	MidasFrame1:
		NCYB G 0 A_SpawnItemEx("Midas_Statue_Cyberdemon", 0,0,0, 0,0,0, 0,SXF_TRANSFERPOINTERS|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
	MidasFrame2:
		NCYB G 0 A_SpawnItemEx("Midas_Statue_Cyberdemon", 0,0,0, frandom(-10.0,-12.0),0,frandom(1.0,3.0), 0,SXF_TRANSFERPOINTERS|SXF_SETMASTER|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 10 A_KillChildren
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
	MidasFrame3:
		NCYB G 0 A_SpawnItemEx("Midas_Statue_Cyberdemon", 0,0,0, frandom(-15.0,-20.0),0,frandom(10.0,15.0), 0,SXF_TRANSFERPOINTERS|SXF_SETMASTER|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 10 A_KillChildren
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
		
	//Gumpop
	Death.Acid:
		NCYB G 1 A_ChangeFlag("SOLID",0)
		"####" "#" 1 A_Playsound("Gumpop/Expand",5)
		"####" "###################################" 1 A_SetScale(ScaleX+frandom(0.01,0.025))
		"####" "#" 1 A_Playsound("Gumpop/Pop",5)
		"####" "#" 0 A_Jump(256,"XDeathMain")
		Goto XDeathMain
		
	//Thunderstruck
	Pain.Lightning:
		"####" "#" 0 A_Jump(164,1)
		Goto Pain
		NCYB G 0 A_ChangeFlag("NOPAIN",1)
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
		"####" "#" 0 A_Jump(256,"LightningLock")
		Goto LightningLock
		
	//Cauterizer
	Pain.LightningBlue:
		"####" "#" 0 A_Jump(48,1)
		Goto Pain
		NCYB G 0 A_ChangeFlag("NOPAIN",1)
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
		"####" "#" 0 A_Jump(256,"BlueLightningLock")
		Goto BlueLightningLock
  }
}

ACTOR RLNightmareCyberStompShockwave : Rocket
{
   Radius 1
   Height 1
   +MTHRUSPECIES
   +THRUGHOST
   +NOTIMEFREEZE
   +BLOODSPLATTER
   -RANDOMIZE
   -DEHEXPLOSION
   -ROCKETTRAIL
   DamageType "Melee"
   PainType "BluntMelee"
   DeathType "BluntMelee"
   Speed 0
   Damage 0
   SeeSound ""
   DeathSound ""
   Obituary "%o was just another corpse beneath the Nightmare Cyberdemon's hoof."
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_Explode(256, 164, 0, 0, 72)
    TNT1 A 8
    Stop
  }
}

ACTOR RLNightmareCyberdemonPlasmaBall : BFGBall
{
  Radius 13
  Height 8
  Speed 22
  Damage 8
  DamageType "Plasma"
  Scale 0.5
  Projectile
  +RANDOMIZE
  +THRUGHOST
  +SEEKERMISSILE
  +SCREENSEEKER
  +EXPLODEONWATER
  +USEBOUNCESTATE
  +NOTIMEFREEZE
  +BLOODSPLATTER
  Translation "192:207=112:127"
  BounceType "Hexen"
  BounceFactor 1
  WallBounceFactor 1
  BounceCount 2
  RenderStyle Add
  Alpha 0.85
  Decal "BFGLightning"
  SeeSound "rlmonsters/homingplasma"
  BounceSound "rlmonsters/laserhit"
  DeathSound "weapons/plasmax"
  States
  {
  Spawn:
    PPCS CD 4 Bright
    Goto Spawn
  Bounce:
    TNT1 AAAA 0 A_SeekerMissile (90, 90, SMF_LOOK | SMF_PRECISE, 256) 
    Goto Spawn
  Death:
    BBB1 ABCDE 4 Bright
    Stop
  }
}

ACTOR RLSummonNightmareCyberdemonPlasmaBall : RLNightmareCyberdemonPlasmaBall
{
  +MTHRUSPECIES
}

ACTOR RLParticleBeamPuff : BulletPuff
{
  -ALLOWPARTICLES
  -RANDOMIZE
  +PUFFONACTORS
  +ALWAYSPUFF
  +PUFFGETSOWNER
  +THRUGHOST
  +MTHRUSPECIES
  +NOTIMEFREEZE
  VSpeed 0
  Mass 5
  Decal "EnemyBlueBFGLightning"
  Damagetype "Plasma"
  PainType "PlasmaExplosion"
  DeathType "PlasmaExplosion"
  Species "RLCyberdemon"
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 3)
    TNT1 A 0 A_Quake (1, 24, 0, 512, "")
    TNT1 A 0 A_Quake (6, 12, 0, 256, "")
    TNT1 A 0 A_PlaySound ("weapons/bfgx", 7, 1, 0, 0.6)
    TNT1 A 0 A_PlaySound("weapons/bfgx", CHAN_ITEM, 0.05, 0, 0.15)
    TNT1 A 10
	Stop
  Melee:
    Goto Spawn
  }
}

ACTOR RLParticleBeamPuffTerminator : RLParticleBeamPuff
{
  Decal "Scorch"
  Species "RLTerminator"
}

ACTOR RLParticleBeamPuffTerminator2 : RLParticleBeamPuff
{
  Damagetype "NullDamage"
  Decal ""
  States
  {
  Spawn:
    TNT1 A 0
	Stop
  Melee:
    Goto Spawn
  }
}

ACTOR RLParticleBeamPuff2 : RLParticleBeamPuff
{
  +BLOODLESSIMPACT
  +PAINLESS
  +NODECAL
  Damagetype "NullDamage"
  Decal ""
  States
  {
  Spawn:
    TNT1 A 0
	Stop
  Melee:
    Goto Spawn
  }
}

ACTOR RLParticleBeamPuff3 : RLParticleBeamPuff
{
  +NODECAL
  +BLOODLESSIMPACT
  Damagetype "Plasma"
  States
  {
  Spawn:
    TNT1 A 0
	Stop
  Melee:
    Goto Spawn
  }
}

ACTOR RLParticleBeamPuff4 : RLParticleBeamPuff
{
  +NODECAL
  +BLOODLESSIMPACT
  Damagetype "Plasma"
  Paintype "Lightning"
  Deathtype "Lightning"
  Decal ""
  States
  {
  Spawn:
    TNT1 A 0
	Stop
  Melee:
    Goto Spawn
  }
}

ACTOR RLParticleBeamPuff5 : RLParticleBeamPuff
{
  +BLOODLESSIMPACT
  +PAINLESS
  +NODECAL
  +THRUACTORS
  Damagetype "NullDamage"
  Decal ""
  States
  {
  Spawn:
    TNT1 A 0
	Stop
  Melee:
    Goto Spawn
  }
}

ACTOR RLParticleBeamCore
{   
   Radius 0
   Height 1
   Speed 0
   PROJECTILE
   RenderStyle ADD
   Alpha 0.95
   Scale 2.1
   States
   {
   Spawn:
      TNT1 A 0
      BBAL A 1 Bright A_SetScale (2.1)
      BBAL B 1 Bright A_SetScale (1.3)
      BBAL C 1 Bright A_SetScale (0.4)
      BBAL DABCDAB 1 Bright
      BBAL CD 1 Bright A_FadeTo (0, 0.35, 1)
      Stop
   }
}

ACTOR RLParticleBeamCoreRed : RLParticleBeamCore
{   
   States
   {
   Spawn:
      TNT1 A 0
      BBAL E 1 Bright A_SetScale (1.4)
      BBAL F 1 Bright A_SetScale (0.8)
      BBAL G 1 Bright A_SetScale (0.2)
      BBAL HEFGHEF 1 Bright
      BBAL GH 1 Bright A_FadeTo (0, 0.35, 1)
      Stop
   }
}

ACTOR RLNightmareArtifactGuardian : RLNightmareCyberdemon
{
  Health 6666
  PainThreshold 500
  PainChance 120
  PainChance "Telefrag", 256
  MinMissileChance 5
  DamageFactor "Unholy", 0.1
  +QUICKTORETALIATE
  +NOINFIGHTING
  +NOTELEFRAG
  -COUNTKILL
  Obituary "%o was annihilated by an angry demon looking for a stolen gun."
  HitObituary "%o's skull was replaced with a metal hoof."
  Tag "Hunter Cyberdemon"
  DropItem "RLDemonArtifactItem"
  States
  {
    Pain.Telefrag:
		"####" "#" 0 A_SpawnItemEx("RLAntiTelefrag",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION | SXF_SETTARGET)
		Goto See
  }
}

ACTOR RLDRPGSummonedNightmareCyberdemon : RLNightmareCyberdemon
{
  -COUNTKILL
  +NOBLOCKMONST
  +NOTELESTOMP
  +NOFEAR
  +SEEINVISIBLE
  +DONTDRAIN
  +ALWAYSFAST
  +QUICKTORETALIATE
  +MISSILEMORE
  +THRUSPECIES
  Species "Player"
  States
  {
  Spawn:
	TNT1 A 0 NoDelay ACS_NamedExecuteAlways("MonsterInit", 0)
    TNT1 A 0 A_GiveInventory ("RLMonsterInitializerToken", 1)
    TNT1 A 0 A_GiveInventory ("DRPGDRLASummonedMonsterToken", 1)
	Goto Super::Spawn
	See:
	TNT1 A 0 ACS_NamedExecuteAlways("MonsterInit", 0)
    TNT1 A 0 A_GiveInventory ("RLMonsterInitializerToken", 1)
    TNT1 A 0 A_GiveInventory ("DRPGDRLASummonedMonsterToken", 1)
	Goto Super::See
  }
}

ACTOR RLCCNightmareCyberdemon : RLNightmareCyberdemon
{
  +TOUCHY
  States
  {
  See:
    NCYB DD 4
    NCYB AA 4
    NCYB BB 4
    NCYB CC 4
    Loop
  Melee:
    NCYB S 12
    NCYB T 12
    NCYB C 12
    Goto See
  Missile:
    NCYB E 6
    NCYB F 12 Bright
    NCYB E 12
    NCYB Q 12 Bright
    NCYB E 12
    NCYB R 12 Bright
    Goto See
  Death:
    NCYB H 10
    NCYB I 10 Bright A_Scream
    NCYB JKL 10 Bright
    NCYB M 10 Bright A_NoBlocking
    NCYB NO 10
    NCYB P 30
    NCYB P -1 A_BossDeath
    Stop
  }
}
