ACTOR Dreadnought
{
MONSTER
+BOSS
+FASTER
+MISSILEMORE
+FLOORCLIP
+NORADIUSDMG
+DONTHURTSPECIES 
+DONTMORPH
+DONTSQUASH
+DONTBLAST
+DONTGIB
+NOTELEOTHER
+QUICKTORETALIATE
+FIRERESIST
Health 20000
Speed 25
Radius 90
Height 180
PainChance 5
PainSound "dreadnought\pain"
SeeSound "dreadnought\sight"
DeathSound "dreadnought\death"
Obituary "%o was annihilated by the Dreadnought."
Mass 10000
States
{
Spawn:
HELB EE 10 A_Look
Loop

See:
HELB A 0

HELB A 0 A_Jump(230, 3)

HELB A 0 A_CustomMissile("PlasmaOrbitSpawn", 32, 0, 30, 6)
HELB A 0 
HELB A 0 A_CustomMissile("PlasmaOrbitSpawn", 32, 0, 150, 6)
HELB A 0 
HELB A 0 A_CustomMissile("PlasmaOrbitSpawn", 32, 0, 270, 6)
HELB A 0 
HELB A 1 A_PlaySound("dreadnought\hoof")
HELB A 0 A_Explode
HELB A 1 A_CustomMissile("HoofThud",0,0,30)
HELB A 0 A_AlertMonsters
HELB AABB 4 A_Chase

HELB C 0
HELB A 1 A_PlaySound("dreadnought\hoof")
HELB A 0 A_Explode
HELB C 1 A_CustomMissile("HoofThud",0,0,-30)
HELB C 0 A_AlertMonsters
HELB CCDD 4 A_Chase
Goto See+1

Missile:
HELB E 0 A_Jump(128, 1, 14, 23)
Goto Melee

//        ****************************************
//        ********* Plasma Annihilator ***********
//        ****************************************

// Missile + 1

HELB E 0 BRIGHT A_PlayWeaponSound("dreadnought\prfire")
HELB E 10 BRIGHT
HELB FGHIJ 10 BRIGHT A_FaceTarget
HELB K 8 BRIGHT A_CustomMissile("PlasmaRailShot", 59, 0, 0, 5)
HELB J 8 
HELB I 8 
HELB H 8
HELB G 8
HELB F 8
Goto See

//        ****************************************
//        ************* Hell's Fury **************
//        ****************************************

// Missile + 14

HELB E 0 
HELB E 10 A_FaceTarget
HELB P 5 A_PlaySound("dreadnought\hffire")
HELB P 0 BRIGHT A_CustomMissile("HellsFury", 0, -32, 20, 5)
HELB P 10 BRIGHT A_CustomMissile("HellsFury", 0, 32, -20, 5)
HELB O 5 
HELB N 5 
HELB E 10 A_Jump(200, 1)
Goto Missile+15
HELB E 0
Goto See

//        ****************************************
//        ********** Plasma Fireballs ************
//        ****************************************

// Missile + 23

HELB E 0 
HELB E 6 A_FaceTarget
HELB E 0 A_PlaySound("dreadnought\fbfire")
HELB P 0
HELB P 0
HELB P 0
HELB P 4 BRIGHT A_CustomMissile("BlueFireball", 126, 0, 120, 6)
HELB P 0 A_CustomMissile("BlueFireball", 126, 0, -120, 6)
HELB P 4 A_FaceTarget
HELB P 4 BRIGHT A_CustomMissile("BlueFireball", 118, 0, 90, 6)
HELB P 0 A_CustomMissile("BlueFireball", 118, 0, -90, 6)
HELB P 4 A_FaceTarget
HELB P 4 BRIGHT A_CustomMissile("BlueFireball", 110, 0, 60, 6)
HELB P 0 A_CustomMissile("BlueFireball", 110, 0, -60, 6)
HELB O 5 
HELB N 5 
HELB E 5
Goto See

Melee:

//        ****************************************
//        *********** Plasma Cluster *************
//        ****************************************

// Melee + 1

HELB E 1 
HELB M 1 BRIGHT A_FaceTarget
HELB M 0 BRIGHT A_CustomMissile("DNPlasmaBall2", 86, 44, 0, 4)
HELB M 0 BRIGHT A_CustomMissile("DNPlasmaBall", 86, -44, 0, 4)
HELB M 0 BRIGHT 
HELB M 0 BRIGHT 
HELB M 0 BRIGHT A_CustomMissile("DNPlasmaBall", 74, 37, 0, 4)
HELB M 0 BRIGHT A_CustomMissile("DNPlasmaBall", 74, -37, 0, 4)
HELB M 0 BRIGHT 
HELB M 0 BRIGHT 
HELB M 0 BRIGHT A_CustomMissile("DNPlasmaBall", 74, 51, 0, 4)
HELB M 0 BRIGHT A_CustomMissile("DNPlasmaBall", 74, -51, 0, 4)
HELB M 0 BRIGHT 
HELB M 0 BRIGHT 
HELB M 0 BRIGHT A_Jump(240, 1)
Goto Missile
HELB E 2 A_CPosRefire
Goto Melee+1

Pain:
HELB E 0 A_Pain
HELB E 0 A_StopSound
HELB E 10
Goto Missile

Death:
HELB E 0 A_CustomMissile("DNBoomyArm", 128, 32, -90)
HELB E 4 A_CustomMissile("DNBoomyArm", 96, -32, 90)
NULL A 0 A_CustomMissile("DNArm1", 128, 32, -90)
NULL A 0 A_CustomMissile("DNArm2", 96, -32, 90)
HELB R 5 A_CustomMissile("BloodSplatterFX", 112, 0, 0)
HELB S 5 A_Scream
HELB R 5 
HELB T 0 A_CustomMissile("DNBoomy", 96, -32, 0)
HELB T 5 A_CustomMissile("BloodSplatterFX", 96, 0, 180)
HELB U 5 A_CustomMissile("BloodSplatterFX", 80, 0, 60)
HELB T 0 A_CustomMissile("DNBoomy", 32, 16, 0)
HELB V 5 A_CustomMissile("BloodSplatterFX", 64, 0, 240)
NULL A 0 A_CustomMissile("DNNukeRing", 0, 0, 0)  
NULL A 0 A_CustomMissile("DNNukeRing", 0, 0, -30)  
NULL A 0 A_CustomMissile("DNNukeRing", 0, 0, 30)  
NULL A 0   
NULL A 0 
NULL A 0 A_CustomMissile("DNNukeRing", 0, 0, -90)  
NULL A 0 A_CustomMissile("DNNukeRing", 0, 0, 90)  
NULL A 0 
NULL A 0 
NULL A 0 A_CustomMissile("DNNukeRing", 0, 0, -150)  
NULL A 0 A_CustomMissile("DNNukeRing", 0, 0, 150) 
HELB W 5 A_CustomMissile("BloodSplatterFX", 48, 0, -60)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, 0)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, 30)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, -30)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, 60)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, -60)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, 90)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, -90)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, 120)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, -120)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, 150)
HELB X 0 A_CustomMissile("BloodSplatterFX", 32, 0, -150)
HELB X 5 A_CustomMissile("BloodSplatterFX", 32, 0, 180)
HELB Y 5 A_Fall
HELB Z -1
Stop
}
}


ACTOR DreadnoughtCinematic : Dreadnought
{
+NODAMAGE
}

ACTOR BloodSplatterFX
{
Radius 1
Height 1
Speed 8
PROJECTILE
-NOGRAVITY
+LOWGRAVITY
+RIPPER
Damage 0
DeathSound "misc/bloodsplatter"
States
{
Spawn:
BLUD AB 4
Loop
Death:
BLD2 CDEFG 4 A_Gravity
BLD2 H 350
Stop
}
}

ACTOR BloodSplatterFX2
{
Radius 1
Height 1
Speed 0
PROJECTILE
-NOGRAVITY
+LOWGRAVITY
+RIPPER
Damage 0
DeathSound "misc/bloodsplatter"
States
{
Spawn:
BLUD AB 4
Loop
Death:
BLD2 CDEFG 4 A_Gravity
BLD2 H 350
Stop
}
}

ACTOR DNBloodSplatterFX
{
+NOTELEPORT
+NOBLOCKMAP
+NOGRAVITY
+RIPPER
RenderStyle None
States
{
Spawn:
NULL A 1
NULL A 100 A_CustomMissile("BloodSplatterFX", 0, 0, 180)
Stop
}
}

ACTOR DNArm1
{
Radius 8
Height 8
Speed 12
PROJECTILE
- NoGravity
+LowGravity
+DOOMBOUNCE
Damage 0
Scale 0.75
SeeSound "dreadnought\gore"
States
{
Spawn:
HELG A 0 A_Jump(128, 2)
HELG A 0 A_CustomMissile("BloodSplatterFX", 0, 0, 180)
HELG A 4 
HELG A 0 A_Jump(128, 2)
HELG A 0 A_CustomMissile("BloodSplatterFX", 0, 0, 180)
HELG B 4
HELG A 0 A_Jump(128, 2)
HELG A 0 A_CustomMissile("BloodSplatterFX", 0, 0, 180)
HELG C 4
Loop
Death:
HELG AA -1 A_Gravity
Stop
}
}

ACTOR DNArm2 : DNArm1
{
States
{
Spawn:
HELG A 0 A_Jump(128, 2)
HELG A 0 A_CustomMissile("BloodSplatterFX", 0, 0, 180)
HELG D 4 
HELG A 0 A_Jump(128, 2)
HELG A 0 A_CustomMissile("BloodSplatterFX", 0, 0, 180)
HELG E 4
HELG A 0 A_Jump(128, 2)
HELG A 0 A_CustomMissile("BloodSplatterFX", 0, 0, 180)
HELG F 4
Loop
Death:
HELG DD -1 A_Gravity
Stop
}
}

ACTOR BFGBall_ : BFGBall replaces BFGBall
{
   DamageType Fire
}

ACTOR BFGExtra_ : BFGExtra replaces BFGExtra
{
   DamageType Fire
}

Actor PlasmaBall_ : PlasmaBall replaces PlasmaBall
{
   DamageType Fire
}

ACTOR DNPlasmaBall2 : PlasmaBall
{
Height 2
Radius 2
Damage 2
Speed 50
SeeSound "dreadnought\plasfire"
States
{
  Spawn:
    PLSX ABCDEF 1 BRIGHT
    Loop
  Death:
    PLSD ABCDEF 2 BRIGHT
    Stop
  }
}

ACTOR DNPlasmaBall : DNPlasmaBall2
{
	SeeSound ""
}

ACTOR HellsFury
{
Height 10
Radius 10
Obituary "%o was annihilated by the Dreadnought."
PROJECTILE
+DROPOFF
-NoGravity
+FLOORHUGGER
+SeekerMissile
+EXTREMEDEATH
+DONTSPLASH
+Ripper
Speed 15
RenderStyle Add
Alpha 0.75
Damage 1
ReactionTime 120
ActiveSound "dreadnought\hfidle"
DamageType Fire
States
{
Spawn:
HBFR A 0 
HBFR A 0 A_CountDown
HBFR A 0 A_LoopActiveSound
HBFR ABC 1 BRIGHT A_CustomMissile("TargetFire", 0, 0, 0, 4)
HBFR A 0 A_SeekerMissile (10, 25)
Goto Spawn+1
Death:
HBFR A 0 A_SpawnItem("HellsFuryExplode")
HBFR ABC 4
Stop
}
}

ACTOR TargetFire
{
Obituary "%o was annihilated by the Dreadnought."
Speed 0
RenderStyle Add
+DONTSPLASH
+EXTREMEDEATH
+LOWGRAVITY
+NONSHOOTABLE
+NOTELEPORT
+NOCLIP
+NOBLOCKMAP
DamageType Fire
Translation "169:191=192:207", "160:167=240:246", "208:223=192:207",
            "232:235=240:246", "128:143=96:111", "64:79=96:111", 
            "32:47=192:207", "16:31=192:207", "144:151=96:111"
SeeSound "world/largefire"
States
{
Spawn:
TNT1 A 1
NCFE ABC 1 Bright A_Explode(3,8)
NCFE DEFGHIJKLMNO 1 Bright A_Explode(3, 8)
Stop
}
}

ACTOR HellsFuryExplode
{
+NoGravity
+FloorHugger
Speed 0
Scale 1.25
States
{
Spawn:
HFEX A 0 A_Explode
HFEX ABCDE 3 BRIGHT
Stop
}
}

Actor BlueFireball : FatShot
{
Renderstyle Normal
+SEEKERMISSILE
+EXTREMEDEATH
+DONTSPLASH
DONTHURTSHOOTER
Speed 24
ReactionTime 120
Scale 1.5
Damage 0
DamageType Fire
Translation "169:191=192:207", "160:167=240:246", "208:223=192:207",
            "232:235=240:246", "128:143=96:111", "64:79=96:111", 
            "32:47=192:207", "16:31=192:207", "144:151=96:111"
States
{
Spawn:
MANF A 0
MANF A 0 A_LoopActiveSound
MANF AB 3 BRIGHT
MANF A 0 A_Countdown
MANF A 0 BRIGHT A_SeekerMissile(4, 16)
Goto Spawn+3
Death:
MISL B 8 BRIGHT A_Explode(50,80,1)
MISL C 6 
MISL D 4
Stop
}
}

ACTOR PlasmaRailShot
{
   Radius 6
   Height 8
   Speed 105
   PROJECTILE
   ActiveSound "dreadnought\pridle"
   RenderStyle Add
   Alpha 1.00
   States
   {
   Spawn:
      TNT1 A 0
      SBLL A 0 BRIGHT A_LoopActiveSound
      SBLL ABCDEFGHIJ 2 BRIGHT A_SpawnItem("PlasmaRailRings")
      SBLL A 0 A_AlertMonsters
      loop
   Death:
      PLSD ABCDEF 2 BRIGHT
      stop
   }
}

ACTOR PlasmaRailRings
{
   Obituary "%o was annihilated by the Dreadnought."
   Radius 30
   Height 30
   Speed 5
   PROJECTILE
   +NOGRAVITY
   +PIERCEARMOR
   +NOTELEPORT
   +NOBLOCKMAP
   +EXTREMEDEATH
   DamageType Fire
   RenderStyle ADD
   Alpha 0.5
   States
   {
   Spawn:
      TNT1 A 0
      SSHK ABCDEFGHIJKLMNOPQR 2 Bright A_Explode(50,80,0)
      Stop
   }
}

actor PlasmaOrbitSpawn
{
Radius 6
Height 8
Speed 10
PROJECTILE
+NOTELEPORT
+NOGRAVITY
+DONTSPLASH
+NOCLIP
RenderStyle None
States
{
Spawn:
TNT1 A 24 BRIGHT
TNT1 A 0 BRIGHT A_CustomMissile("PlasmaOrbit",0,0,80,4)
Stop
}
}

actor PlasmaOrbit
{
Radius 6
Height 8
Speed 8
PROJECTILE
+NOTELEPORT
+NOGRAVITY
+DONTSPLASH
+NOCLIP
RenderStyle Add
Alpha 0.65
States
{
Spawn:
PLSX AB 4 BRIGHT A_Explode(6,30,1)
PLSX AB 4 BRIGHT A_Explode(6,30,1)
PLSX A 0 BRIGHT A_Jump(24, 2)
PLSX A 0 BRIGHT A_CustomMissile("PlasmaOrbit",0,0,80,4)
Stop
PLSX A 0 BRIGHT A_CustomMissile("PlasmaDummy",0,0,0,4)
Stop
}
}

ACTOR PlasmaDummy
{
Radius 1
Height 1
Speed 0
+ISMONSTER
+NOGRAVITY
+NONSHOOTABLE
+LOOKALLAROUND
+NOTELEPORT
+NOCLIP
+NOBLOCKMAP
+NOTARGETSWITCH 
+NOTARGET
+NOBLOOD
+NOICEDEATH
+MISSILEMORE
+DONTFALL
+DONTSPLASH
RENDERSTYLE Add
Alpha 0.65
States
{
Spawn:
PLSX ABCDE 4 BRIGHT A_Look
Stop
See:
PLSD A 1 BRIGHT A_CustomMissile("PlasmaBallTracer",0,0,0,4)
Stop
}
}

actor PlasmaBallTracer : PlasmaBall
{
  +BLOODLESSIMPACT
  Damage 0
  RenderStyle Add
  Alpha 0.65
  seesound "dreadnought\plasfire"
  states
  {
  Spawn:
    PLSX A 1 BRIGHT A_BishopMissileWeave 
    PLSX A 0 BRIGHT A_BishopMissileWeave 
    PLSX A 1 BRIGHT A_SpawnItem("PlasmaTracer") 
    PLSX B 1 BRIGHT A_BishopMissileWeave 
    PLSX A 0 BRIGHT A_BishopMissileWeave 
    PLSX B 1 BRIGHT A_SpawnItem("PlasmaTracer") 
    loop
  Death:
    PLSD A 0
    PLSD A 0 BRIGHT A_Explode(15,50,1)
    PLSD ABCDE 4 BRIGHT
    stop
  }
}

ACTOR PlasmaTracer
{
   Radius 6
   Height 8
   Speed 8
   PROJECTILE
   +BLOODLESSIMPACT
   +NOGRAVITY
   +NOTELEPORT
   +NOBLOCKMAP
   RenderStyle Add
   Alpha 0.80
   States
   {
   Spawn:
      PLSX ABABAB 2 A_FadeOut     
      Stop
   }
}

ACTOR BFBTracer : PlasmaTracer
{
   +NOGRAVITY
   RenderStyle Add
   Alpha 1.0
   States
   {
   Spawn:
      NBMC ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
      Stop
   }   
}

ACTOR PlasmaMinion
{
   MONSTER
   +SHORTMISSILERANGE
   +NOBLOCKMONST
   +NOTARGETSWITCH 
   +NOGRAVITY
   +NOTARGET
   +NOCLIP
   +NOBLOOD
   +NOICEDEATH
   +MISSILEMORE
   +DONTFALL
   +SPAWNFLOAT 
   +FLOATBOB
   +LOOKALLAROUND
   +NORADIUSDMG
   Renderstyle Translucent
   Alpha 0
   +STEALTH
   Health 20
   Speed 10
   Radius 15
   Height 15
   PainChance 0
   Scale 0.5
   Obituary "%o was annihilated by the Dreadnought."
   Mass 5000
   States
   {
   Spawn:
   SBLL ABCDEFGHIJ 1 BRIGHT A_Look
   Goto Spawn
   
   See:
   SBLL ABCDEFGHIJ 1 BRIGHT A_Chase
   Goto See
   
   Missile:
   SBLL A 0 BRIGHT A_FaceTarget
   SBLL ABCDEFGHIJ 1 BRIGHT
   SBLL A 0 BRIGHT A_CustomMissile("DNPlasmaBall2",0,0,0,5)
   SBLL ABCDEFGHIJ 1 BRIGHT
   SBLL A 0 BRIGHT A_CustomMissile("DNPlasmaBall2",0,0,0,5)
   SBLL ABCDEFGHIJ 1 BRIGHT
   SBLL A 0 BRIGHT A_CustomMissile("DNPlasmaBall2",0,0,0,5)
   SBLL ABCDEFGHIJ 1 BRIGHT
   SBLL A 0 BRIGHT A_CustomMissile("DNPlasmaBall2",0,0,0,5)
   SBLL ABCDEFGHIJ 1 BRIGHT
   SBLL A 0 BRIGHT A_CustomMissile("DNPlasmaBall2",0,0,0,5)
   SBLL ABCDEFGHIJ 1 BRIGHT
   SBLL A 0 BRIGHT A_CustomMissile("DNPlasmaBall2",0,0,0,5)
   SBLL ABCDEFGHIJ 1 BRIGHT A_FadeOut
   TNT1 A 0 DamageThing(0)
   goto Death
   
   Death:
   PLSD ABCDEFGHIJKL 2 BRIGHT
   Stop
   }
}

ACTOR DNNukeRing
{
Speed 20
+NONSHOOTABLE+NOTELEPORT+NOCLIP+NOBLOCKMAP
RenderStyle None
Obituary "%o was annihilated by the Dreadnought."
States
{
Spawn:
TNT1 A 8 BRIGHT A_CustomMissile("DNBoomy", 0, 0, 0, 6)
TNT1 A 8 BRIGHT A_CustomMissile("DNBoomy", 0, 0, 0, 6)
TNT1 A 8 BRIGHT A_CustomMissile("DNBoomy", 0, 0, 0, 6)
Stop
}
}

ACTOR DNBoomy
{
Speed 0
+NOBLOCKMAP
+NOGRAVITY
+NOCLIP
+NONSHOOTABLE
SeeSound "misc\explode"
States
{
Spawn:
NBME A 0 BRIGHT A_CustomMissile("DNBoomy2", 0, 0, 30, 6)
//NBME A 0 BRIGHT A_CustomMissile("DNBoomy2", 0, 0, 75, 6)
NBME A 0 BRIGHT A_CustomMissile("DNBoomy2", 0, 0, 90, 6)
//NBME A 0 BRIGHT A_CustomMissile("DNBoomy2", 0, 0, 120, 6)
NBME A 0 BRIGHT A_CustomMissile("DNBoomy2", 0, 0, 150, 6)
NBME B 2 BRIGHT A_Explode(32,128)
NBME CDEFGHIJKLMN 2 BRIGHT 
Stop
}
}

ACTOR DNBoomyArm : DNBoomy
{
States
{
Spawn:
NBME A 2 BRIGHT
NBME B 2 BRIGHT A_Explode(32,128)
NBME CDEFGHIJKLMN 2 BRIGHT 
Stop
}
}

Actor DNBoomy2 : DNBoomy
{
Scale 0.75
Speed 8
SeeSound ""
States
{
Spawn:
NBME A 0 BRIGHT A_CustomMissile("DNBoomy3", 0, 0, 30, 6)
//NBME A 0 BRIGHT A_CustomMissile("DNBoomy3", 0, 0, 90, 6)
NBME A 0 BRIGHT A_CustomMissile("DNBoomy3", 0, 0, 150, 6)
//NBME A 0 BRIGHT A_CustomMissile("DNBoomy3", 0, 0, 210, 6)
NBME A 0 BRIGHT A_CustomMissile("DNBoomy3", 0, 0, 270, 6)
//NBME A 2 BRIGHT A_CustomMissile("DNBoomy3", 0, 0, 330, 6)
NBME BCDEFGHIJKLMN 2 BRIGHT 
Stop
}
}

Actor DNBoomy3 : DNBoomy2
{
Scale 0.5
Speed 12
States
{
Spawn:
NBME ABCDEFGHIJKLMN 2 BRIGHT
Stop
}
}

ACTOR HoofThud
{
   +NOCLIP
   Renderstyle None
   States
   {
   Spawn:
      TNT1 A 0
      TNT1 A 1 Radius_Quake (4, 4, 0, 16, 0)
      Stop
   }
}

