actor HellKnightClass : Playerpawn
{
  health 500
  gibhealth 99999 //added - actor can not be gibbed
  radius 24
  height 64
  mass 1000
  speed 0.85 //0.35
  painchance 50
  Player.DisplayName "HellKnight"
  Player.MaxHealth 500
  Player.ViewHeight 54
  Player.SoundClass HellKnightClass 
  Player.JumpZ 8 //6
  Player.MorphWeapon "KnightHand"
  Player.WeaponSlot 1, KnightHand
  
  BloodColor "darkgreen"
  
  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  DamageFactor "MarineDamage", 0.6
  DamageFactor "MarineRLDamage", 0.6
  DamageFactor "BFGSplash", 0.6
  DamageFactor "MarineRail", 0.6
  
  DamageFactor "CybRLDamage", 0.25
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "viledamage", 0
  DamageFactor "Control", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "Slime", 0
  
  -PICKUP
  +NOSKIN
  +NOPAIN
  -FRIENDLY
  +NOTARGET
  +LONGMELEERANGE //added
  +NOTRIGGER //added - avoid issues in level design
  MeleeRange 150
  
  states
  {
  Spawn:
	BOS2 AB 10 
    loop
  See:
    BOS2 A 1 A_Jump (240,2) //0
	BOS2 A 0 A_PlaySoundEx ("knight/active","body")
	BOS2 AABBCCDD 3
    loop
  Missile:
    BOS2 E 8 
	BOS2 F 8 bright
    BOS2 G 9 bright
    goto See   
  Death:
    BOS2 I 8 A_GiveToTarget ("MarineExp",6)
    BOS2 J 8 A_PlaySoundEx ("knight/death","body")
    BOS2 K 8 Thing_changeTid(144,0)
    BOS2 L 8 A_NoBlocking
    BOS2 MN 8
	BOS2 O 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
    BOS2 O -1
	stop	
  }
}

// Weapon

ACTOR KnightHand : Weapon
{
  obituary "%o was burned by %k."
  hitobituary "%o was slashed by %k."
  weapon.kickback 80
  attacksound "baron/melee"
  weapon.ammouse 0
  
  +WEAPON.NOALERT
  +ammo_optional
  +Alt_Ammo_Optional
  +WEAPON.CHEATNOTWEAPON
  //+INVENTORY.UNDROPPABLE //added
  +WEAPON.NOAUTOAIM
  
  states
  {
  Spawn:
    TNT1 A 0 Thing_Remove (0)
    Stop
  Select:
    KHND A 1 A_Raise
	goto ready
  Ready:
    KHND FAEA 2 A_WeaponReady
    //TNT1 A 0 A_JumpIfInventory ("Mskull",0,6)
    //KHND FAEA 3 A_WeaponReady
    //TNT1 A 0 A_JumpIfInventory ("Mskull",3,1)
	KHND F 0 HealThing(5)
    Loop
  DeSelect:
    KHND A 1 A_Lower
    Loop
  Fire:
    KHND A 0 A_JumpIfCloser (120,"Melee")
	KHND A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")
	KHND A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
	KHND A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
    KHND A 5 
	KHND B 5 
	KHND C 5 
	KHND D 5 A_FireCustomMissile ("MKnightBallFast",0,0,0,15,0)
    Goto Ready
  AltFireX:
    KHND A 6 
	KHND B 6 
	KHND C 7 
	KHND D 1 A_FireCustomMissile ("MKnightBallFast",0,0,0,15,0)
	KHND D 0 A_FireCustomMissile ("MKnightBallFast",-7,0,0,15,0)
	KHND D 0 A_FireCustomMissile ("MKnightBallFast",7,0,0,15,0)
	KHND A 12 
    Goto Ready
  AltFireY:
    KHND A 6 
	KHND B 6 
	KHND C 7 
	KHND D 1 A_FireCustomMissile ("MKnightBallFast",0,0,0,15,0)
	KHND D 9 A_FireCustomMissile ("MKnightBallFast",-7,0,0,15,0)
	KHND D 9 A_FireCustomMissile ("MKnightBallFast",7,0,0,15,0)
	KHND D 9 A_FireCustomMissile ("MKnightBallFast",-14,0,0,15,0)
	KHND D 9 A_FireCustomMissile ("MKnightBallFast",14,0,0,15,0)
	KHND D 9 A_FireCustomMissile ("MKnightBallFast",-7,0,0,15,0)
	KHND D 9 A_FireCustomMissile ("MKnightBallFast",7,0,0,15,0)
	KHND D 0 DamageThing (50)
	KHND A 5
	Goto Ready
  AltFireZ:
		KHND A 0 A_JumpIfCloser (120,"MeleeZ")
		KHND A 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
		KHND A 0 A_JumpIfCloser (120,"MeleeZ")
		KHND A 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
		KHND A 0 A_JumpIfCloser (120,"MeleeZ")
		KHND A 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
	KHND B 0 A_JumpIfCloser (120,"MeleeZ")
	KHND B 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
	KHND B 0 A_JumpIfCloser (120,"MeleeZ")
	KHND B 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
	KHND B 0 A_JumpIfCloser (120,"MeleeZ")
	KHND B 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
		KHND A 0 A_JumpIfCloser (120,"MeleeZ")
		KHND A 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
		KHND A 0 A_JumpIfCloser (120,"MeleeZ")
		KHND A 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
		KHND A 0 A_JumpIfCloser (120,"MeleeZ")
		KHND A 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
	KHND B 0 A_JumpIfCloser (120,"MeleeZ")
	KHND B 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
	KHND B 0 A_JumpIfCloser (120,"MeleeZ")
	KHND B 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward
	KHND B 0 A_JumpIfCloser (120,"MeleeZ")
	KHND B 1 ThrustThing(angle*256/360,8,0,0)//Thrust Forward	
		KHND A 25
		Goto Ready
  Melee:
	KHND B 1 ThrustThing(angle*256/360+128,3,0,0)//Thrust Backward
    KHND C 1 
	KHND D 1 A_CustomPunch (25,0,0,"FBulletPuff",90)
	KHND C 11
    Goto Ready
  MeleeZ:
    KHND C 1 ThrustThing(angle*256/360+128,3,0,0)//Thrust Backward	
	KHND C 0 A_CustomPunch (25,0,0,"FBulletPuff",90)
	KHND C 13
    Goto Ready
  Altfire:
    KHND A 5 ACS_ExecuteAlways (419,0,7)
  	goto Ready
  }
}

//    Projectile
actor MKnightBallFast
{
  radius 8
  height 16
  speed 32
  damage 10
  renderstyle add
  alpha 1
  seesound "baron/attack"
  deathsound "baron/shotx"
  DamageType "KnightDamage"
  PROJECTILE
  +RANDOMIZE
  states
  {
  Spawn:
    BAL7 A 2 bright A_SpawnItem("BBallTrace",0)
	BAL7 B 2 bright A_SpawnItem("BBallTrace",0)
    loop
  Death:
    BAL7 C 5 A_Explode (6,64,0,0)
    BAL7 DE 5 bright
    stop
  }
}


//actor MKnightBallHoming
//{
//  radius 8
//  height 16
//  speed 14
//  damage 12
//  renderstyle add
//  alpha 1
//  seesound "baron/attack"
//  deathsound "baron/shotx"
//  DamageType "KnightDamage"
//  PROJECTILE
//  +RANDOMIZE
//  +SEEKERMISSILE
//  states
//  {
//  Spawn:
//	BAL7 A 1 A_SeekerMissile (10,20)
//  BAL7 A 1 bright A_SpawnItem("BBallTraceHoming",0)
//	BAL7 B 1 A_SeekerMissile (10,20)
//	BAL7 B 1 bright A_SpawnItem("BBallTraceHoming",0)
//    loop
//  Death:
//    BAL7 C 5 A_Explode (6,64,0,0)
//    BAL7 DE 5 bright
//    stop
//  }
//}

//actor BBallTraceHoming
//{
//  renderstyle Translucent
//  alpha 0.5
//  scale 0.7
//  +NOBLOCKMAP
//  +NOGRAVITY
//  states
//  {
//  Spawn:
//    BAL7 ABAB 12 A_FadeOut(0.0)
//    stop
//  }
//}  
