Actor Deathknight : Knight 30114
{
  //$Category Monsters
  //$Title Death Knight
  Health 600
  Radius 24
  Height 72
  Mass 700
  Speed 7
  PainChance 64
  MeleeRange 128
  DropItem "SkullRodAmmo" 84 20
  Obituary "$OB_DEATHKNIGHTH"
  Tag "$FN_DEATHKNIGHT"
  SeeSound "deathknight/sight"
  PainSound "deathknight/pain"
  DeathSound "deathknight/death"
  ActiveSound "deathknight/active"
  States
  {
  Spawn:
    DKNT AB 10 A_Look
    Loop
  See:
    DKNT AABBCCDD 2 A_Chase
    Loop
  Melee:
  Missile:
    DKNT A 0 A_UnsetReflectiveInvulnerable
    DKNT E 6 A_FaceTarget
    DKNT F 0 A_Playsound("deathknight/swing")
    DKNT F random(4, 5) A_FaceTarget // [Blue Shadow] Randomized... because we can :P
    DKNT G 2 A_FaceTarget
    DKNT G 0 A_CustomMissile("DeathKnightWave", 28)
    DKNT G 4 A_CustomMeleeAttack(5, "deathknight/hit")
    Goto See
  Pain:
    DKNT H 4
    DKNT H 4 A_Pain
    DKNT H 0 A_Jump(192, "ShieldUp")
    Goto See
  ShieldUp:
    DKNT T 0 A_SetReflectiveInvulnerable
    DKNT TTTT 2 A_FaceTarget
  ShieldWalk:
    DKNT PPQQRR 2 A_Chase("Melee", "")
    DKNT SS 2 A_Chase("Melee", "Missile")
    Loop
  ShieldDown:
    DKNT H 4 A_UnsetReflectiveInvulnerable
    DKNT H 4 A_Pain
    Goto See
  Death:
    DKNT I 0 Bright A_CustomMissile("DKSword", 44, 32, -90, 0)
    DKNT I 12 Bright A_CustomMissile("DKShield", 44, -32, 90, 0)
    DKNT J 6 Bright A_Scream
    DKNT K 6 Bright
    DKNT L 6 Bright A_NoBlocking
    DKNT MN 6 Bright
    DKNT O -1
    Stop
  Raise:
    DKNT ONMLKJI 6 Bright
    Goto See
  }
}

Actor DeathKnightWave
{
  Radius 8
  Height 11
  Speed 16
  Damage 0
  Projectile
  RenderStyle Add
  Alpha 0.8
  Scale 0.7
  +DontSplash
  +Ripper
  SeeSound "deathknight/fire"
  DeathSound "deathknight/wavehit"
  DamageType "DeathKnightWave"
  States
  {
  Spawn:
    DKWV A 0 Bright NoDelay A_PlaySound("deathknight/wave", CHAN_6, 1.0, 1)
  SpawnLoop:
    DKWV A 0 Bright A_Explode(Random(3,6), 24, 0, 0, 24)
    DKWV A 1 Bright A_SpawnItemEx("DeathKnightWaveTrail", 0, 0, 0, 0, 0, 0, 0, 128)
    Loop
  Death:
    TNT1 A 0 A_StopSound(CHAN_6)
    TNT1 A 0 A_SpawnItemEx("DeathKnightWaveTrail", 0, 0, 0, 0, 0, 2.0)
    TNT1 A 0 A_SpawnItemEx("DeathKnightWaveTrail", 0, 0, 0, 0, 0, 1.0)
    TNT1 A 0 A_SpawnItemEx("DeathKnightWaveTrail", 0, 0, 0, 0, 0,-1.0)
    TNT1 A 0 A_SpawnItemEx("DeathKnightWaveTrail", 0, 0, 0, 0, 0,-2.0)
    Stop
  }
}

Actor DeathKnightWaveTrail
{
  Radius 1
  Height 1
  Projectile
  RenderStyle Add
  Alpha 0.8
  Scale 0.7
  +NoClip
  +DontSplash
  States
  {
  Spawn:
    DKWV A 1 Bright A_FadeOut(0.1)
    Loop
  Death:
    TNT1 A 1
    Stop
  }
}

// [Blue Shadow] This actor is a left-over from my version of the attack. It's not used anywhere else
// so I'm commenting it out. Feel free to remove it altogether, if you want.
/*Actor DeathKnightPuff
{
  RenderStyle Add
  SeeSound "deathknight/hit"
//  +BLOODLESSIMPACT
  +NOBLOCKMAP
  +NOGRAVITY
  +PUFFONActorS
  +THRUGHOST
  States
  {
  Spawn:
    TNT1 A 0
    DKAT D 3 Bright A_SetTranslucent(0.85, 1)
    DKAT EFGHIJKLM 3 Bright
    Stop
  }
}*/

Actor DKSword
{
  Radius 8
  Height 8
  Speed 1
  Projectile
  -NOGRAVITY
  +LOWGRAVITY
  States
  {
  Spawn:
    SWRD KLMNOPQ 3 Bright
  Death:
    SWRD RS 4 Bright
    SWRD T 4 Bright
    SWRD U 4
    SWRD T 4 Bright
    SWRD U 8
    SWRD T 4 Bright
    SWRD U 16
    SWRD T 4 Bright
    SWRD U -1
    Stop
  }
}

Actor DKShield : DKSword // [Blue Shadow] Inheritance for the win :P
{
  States
  {
  Spawn:
    XHLD ABCDEFGHI 3
  Death:
    XHLD H -1
    Stop
  }
}

Actor DeathKnightGhost : DeathKnight
{
  +Shadow
  +Ghost
  RenderStyle Translucent
  Alpha 0.4
}