/////

actor msxHellKnight : HellKnight replaces HellKnight
{
  obituary "%o was splayed by a Hell Knight."
  hitobituary "%o was gutted by a Hell Knight."
  health 265
  scale 0.93
  speed 16
  painchance 80
  BloodColor darkgreen
  seesound "knight/sight"
  painsound "knight/pain"
  deathsound "knight/death"
  activesound "knight/active"
  MeleeThreshold 132
   +DONTHARMCLASS
   +DONTHARMSPECIES
  states
  {
  Spawn:
    BOS6 AB 10 A_Look
    loop
  See:
    BOS6 AABBCCDD 2 A_Chase
    loop
  Melee:
	BOS6 EF 3 A_FaceTarget 
	BOS6 G 10 A_CustomMeleeAttack (50, "enemy/meleehit","enemy/meleeswing" , "StrongMelee")
	goto see
  Missile:
	TNT1 A 0 A_Jump(56,"TripleShot")
	BOS6 E 4 A_FaceTarget
    BOS6 EF 3 A_FaceTarget
    BOS6 G 3 A_CustomMissile ("hellKnight_Ball", 35, 0, 0, 0, 0)
	BOS6 G 8
    goto See
  Tripleshot:
	TNT1 A 0 A_PlaySound("knight/sight")
	BOS6 E 8 A_FaceTarget
    BOS6 EF 4 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("hk_TripleSFire",10,0,35, 0,frandom(-0.4,0.4),frandom(-0.4,0.4)) 
    BOS6 GGG 1 A_CustomMissile ("hellKnight_Ball", 35, 0, random(-1,1), 0, 0)
	BOS6 G 12
    goto See
  
  
  Pain:
    BOS6 H 2
    BOS6 H 2 A_Pain
    goto See
  Death:
    BOS6 I 8
    BOS6 J 8 A_Scream
    BOS6 K 8
    BOS6 L 8 A_NoBlocking
    BOS6 MN 8
    BOS6 O -1 
    stop
  Raise:
    BOSX ONMLKJI 8
    goto See
  }
}

actor hellKnight_Ball {
	radius 3
	height 3
	speed 23
	renderstyle add
	scale 0.9
	damage (random(30,36))
	PROJECTILE
	SeeSound "fireball/fire"
	DeathSound "fireball/explode"
	states{
		spawn:
			//NULL A 0 A_PlaySound("fireball/loop",5,1,0,ATTN_NORM)
			HHFX ABC 1 bright A_SpawnItemEx("hK_BallTrailSpawner",0,0,0, 0,0,0) 
			loop
		death:
			TNT1 AAAA 0 A_SpawnItemEx("hk_BoomFire",0,0,0, 0,frandom(-1.2,1.2),frandom(-1.2,1.2)) 
			HHFX DEFGH 2 bright
			stop
	}
}

actor hK_BallTrailSpawner {
	+NOINTERACTION
	states{
		spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("hk_BallFlare",0,0,0, 0,0,0) 
			TNT1 AAA 0 A_SpawnItemEx("hK_BallTrail",-7,0,0, 0,frandom(-0.6,0.6),frandom(-0.6,0.6)) 
			stop
	}
}



actor hk_BallFlare {
	scale 0.25
	alpha 0.6
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	states{
		spawn:
			TNT1 A 0
			LEYS A 1 bright
			stop
	}
}

actor hK_BallTrail {
	scale 0.2
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
		spawn:
			PFYE ABCDEFGHIJKL 1 bright A_FadeOut(0.08)
			stop
	}
}

actor hk_BoomFire {
	scale 0.6
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255,"sp1","sp2","sp3")
		sp1:	
			PFYE A 1 bright A_FadeOut(0.06)
			loop
		sp2:
			PFYE B 1 bright A_FadeOut(0.06)
			loop
		sp3:
			PFYE C 1 bright A_FadeOut(0.06)
			loop
	}
}

actor hk_TripleSFire : hk_BoomFire {
	alpha 1.0
	scale 0.8
}

//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////

actor msxBaronOfHell : BaronOfHell replaces BaronOfHell
{
  obituary "%o was gutted by a Baron Of Hell"
  hitobituary "%o was gutted by a Baron Of Hell"
  health 520
  speed 11
  painchance 50
  BloodColor darkgreen
  seesound "baron/sight"
  painsound "baron/pain"
  deathsound "baron/death"
  activesound "baron/active"
  MeleeThreshold 132
   +DONTHARMCLASS
   +DONTHARMSPECIES
  states
  {
  Spawn:
    BOSX AB 10 A_Look
    loop
  See:
    BOSX AABBCCDD 2 A_Chase
    loop
  Melee:
	BOSX EF 4 A_FaceTarget 
	BOSX G 14 A_CustomMeleeAttack (70, "enemy/meleehit","enemy/meleeswing" , "StrongMelee")
	goto see
  Missile:
	//TNT1 A 0 A_Jump(64, "FastBallSpecial")
	TNT1 A 0 A_Jump(128,2)
	TNT1 A 0 A_JumpIfCloser(600, "CloseAttack")
	TNT1 A 0 A_Jump(48,"LongAttack")
	BOSX E 2 A_FaceTarget
	BOSX EF 3 A_FaceTarget
    BOSX G 6 A_CustomMissile ("baronNormalBall", 36, 0, 0, 0, 0)
	BOSX G 8
	goto see
  CloseAttack:
	BOSX G 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",12,0,35, 0,frandom(-1.2,1.2),frandom(2.2,3.2)) 
	BOSX G 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",12,0,35, 0,frandom(-1.2,1.2),frandom(2.2,3.2)) 
	BOSX G 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",12,0,35, 0,frandom(-1.2,1.2),frandom(2.2,3.2)) 
	BOSX G 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",12,0,35, 0,frandom(-1.2,1.2),frandom(2.2,3.2)) 
	BOSX G 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",12,0,35, 0,frandom(-1.2,1.2),frandom(2.2,3.2)) 
	 
	
	TNT1 A 0 A_CustomMissile ("baronWeakBall", 36, 0, 9, CMF_AIMOFFSET | CMF_OFFSETPITCH, 3)
	TNT1 A 0 A_CustomMissile ("baronWeakBall", 36, 0, 3, CMF_AIMOFFSET | CMF_OFFSETPITCH, 2)
	TNT1 A 0 A_CustomMissile ("baronWeakBall", 36, 0, -3, CMF_AIMOFFSET | CMF_OFFSETPITCH, 2)
	TNT1 A 0 A_CustomMissile ("baronWeakBall", 36, 0, -9, CMF_AIMOFFSET | CMF_OFFSETPITCH, 3)
	BOSX F 5 A_FaceTarget
	BOSX E 6
	goto see
  
  LongAttack:	
	TNT1 A 0 A_PlaySound("baron/sight")
	BOSX E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",18,20,65, 0,frandom(-3.4,3.4),frandom(-3.4,3.4))
	BOSX E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",18,20,65, 0,frandom(-3.4,3.4),frandom(-3.4,3.4)) 
	BOSX E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",18,20,65, 0,frandom(-3.4,3.4),frandom(-3.4,3.4)) 
	BOSX E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",18,20,65, 0,frandom(-3.4,3.4),frandom(-3.4,3.4)) 
	BOSX E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",18,20,65, 0,frandom(-3.4,3.4),frandom(-3.4,3.4)) 
	BOSX E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_AtckChrgTrail",18,20,65, 0,frandom(-3.4,3.4),frandom(-3.4,3.4)) 
	
    BOSX EF 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("baron_StrongFireShot",10,0,35, 0,frandom(-0.4,0.4),frandom(-0.4,0.4)) 
    BOSX G 2 A_CustomMissile ("baronStrongBall", 36, 0, 0, 0, 0)
	BOSX G 8
    goto See

  Pain:
    BOSX H 2
    BOSX H 2 A_Pain
    goto See
  Death:
    BOSX I 8
    BOSX J 8 A_Scream
    BOSX K 8
    BOSX L 8 A_NoBlocking
    BOSX MN 8
    BOSX O -1 A_BossDeath
    stop
  Raise:
    BOSX ONMLKJI 8
    goto See
  }
}


actor baronNormalBall {
	radius 3
	height 3
	speed 22
	renderstyle add
	scale 1.75
	damage (random(38,44))
	PROJECTILE
	SeeSound "fireball/fire"
	DeathSound "fireball/explode"
	+FORCEXYBILLBOARD
	states{
		spawn:
			TNT1 A 0
			//NULL A 0 A_PlaySound("fireball/loop",5,1,0,ATTN_NORM)
			FVN1 ABCD 1 bright A_SpawnItemEx("baron_NormBallTrailSpawner",0,0,0, 0,0,0) 
			loop
		death:
			TNT1 AAAA 0 A_SpawnItemEx("baron_BoomFire",0,0,0, 0,frandom(-1.2,1.2),frandom(-1.2,1.2)) 
			TNT1 AAAA 0 A_SpawnItemEx ("baron_BoomFireSpark", 0, 0, 0, frandom(0.7,1.3), random(3,5) , random(0,4) , random(180,360))
			FVN1 EFGHIJ 2 bright
			stop
	}
}

actor baronWeakBall : baronNormalBall {
	gravity 0.1
	scale 1.4
	speed 24
	-NOGRAVITY
	damage (random(28,34))
	states {
		spawn:
			TNT1 A 0
			//NULL A 0 A_PlaySound("fireball/loop",5,1,0,ATTN_NORM)
			FVN1 ABCD 1 bright A_SpawnItemEx("baron_WeakBallTrailSpawner",0,0,0, 0,0,0) 
			loop
		death:
			TNT1 AAA 0 A_SpawnItemEx("baron_BoomFire",0,0,0, 0,frandom(-1.1,1.1),frandom(-1.1,1.1)) 
			FVN1 EFGHIJ 2 bright
			stop		
	}
}

actor baronStrongBall : baronNormalBall {
	speed 28
	renderstyle translucent
	scale 0.7
	alpha 1.0
	damage (random(48,62))
	PROJECTILE
	SeeSound "fireball/fire"
	DeathSound "weapons/firex3"
	states{
		spawn:
			TNT1 A 0
			ARCB ABC 1 bright A_SpawnItemEx("baron_StrongBallTrailSpawner",0,0,0, 0,0,0) 
			loop
		death:
			TNT1 AAAA 0 A_SpawnItemEx("baron_StrongBoom",0,0,0, 0,0,0)
			TNT1 AAAAAA 0 A_SpawnItemEx("baron_BoomFire",0,0,0, 0,frandom(-2.6,2.6),frandom(-2.6,2.6)) 
			TNT1 AAAAAA 0 A_SpawnItemEx ("baron_BoomFireSpark", 0, 0, 0, frandom(1.6,2.2), random(4,6) , random(0,5) , random(180,360))
			TNT1 A 1 A_Explode(30,90,0)
			stop
	}
}

//
actor baron_NormBallTrailSpawner {
	+NOINTERACTION
	states {
		spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("baron_NormBallFlare",0,0,0, 0,0,0) 
			TNT1 AAA 0 A_SpawnItemEx("baron_NormBallTrail",-7,0,0, 0,frandom(-1.2,1.2),frandom(-1.2,1.2)) 
			stop	
	}
}

actor baron_WeakBallTrailSpawner {
	+NOINTERACTION
	states {
		spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("baron_WeakBallFlare",0,0,0, 0,0,0) 
			TNT1 AAA 0 A_SpawnItemEx("baron_WeakBallTrail",-7,0,0, 0,frandom(-1.2,1.2),frandom(-1.2,1.2)) 
			stop	
	}
}

actor baron_StrongBallTrailSpawner {
	+NOINTERACTION
	states {
		spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("baron_StrongBallFlare",-1,0,0, 0,0,0) 
			TNT1 A 0 A_SpawnItemEx("baron_StrongBallTrail2",-2,0,0, 0,frandom(-1.2,1.2),frandom(-1.2,1.2)) 
			TNT1 AAA 0 A_SpawnItemEx("baron_StrongBallTrail",-7,0,0, 0,frandom(-1.8,1.8),frandom(-1.8,1.8)) 
			stop	
	}
}

//
actor baron_NormBallFlare {
	alpha 0.7
	scale 0.3
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
		spawn:
			TNT1 A 0
			LEYS G 1 bright
			stop
	}
}

actor baron_WeakBallFlare : baron_NormBallFlare {
	alpha 0.5
	scale 0.2
}

actor baron_StrongBallFlare : baron_NormBallFlare {
	alpha 0.5
	scale 0.4
}

actor baron_NormBallTrail {
	scale 0.26
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
		spawn:
			PFGR ABCDEFGHIJKL 1 bright A_FadeOut(0.08)
			stop
	}
}

actor baron_WeakBallTrail : baron_NormBallTrail {
	scale 0.16
}

actor baron_AtckChrgTrail : baron_NormBallTrail {
	scale 0.5
}

actor baron_StrongBallTrail : baron_NormBallTrail {
	scale 0.32
}

actor baron_StrongBallTrail2 {
	scale 0.5
	alpha 0.8
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
		spawn:
			ARBE ABCDEF 2 bright A_FadeOut(0.08)
			stop
	}
}


actor baron_BoomFire {
	scale 0.95
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255,"sp1","sp2","sp3")
		sp1:	
			PFGR A 1 bright A_FadeOut(0.06)
			loop
		sp2:
			PFGR B 1 bright A_FadeOut(0.06)
			loop
		sp3:
			PFGR C 1 bright A_FadeOut(0.06)
			loop
	}
}

actor baron_StrongFireShot : baron_BoomFire {
	scale 0.8
}

actor baron_BoomFireSpark {
	radius 2
	height 2
	scale 0.35
	alpha 1.0
	gravity 0.3
	renderstyle add
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+FLOORCLIP
	states{
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255,"sp1","sp2","sp3")
		sp1:
			TNT1 A 0 A_SpawnItemEx("baron_BoomFireSparkTrail",0,0,0, 0,0,0) 
			PFGR A 1 bright A_FadeOut(0.08)
			loop
		sp2: 
			TNT1 A 0 A_SpawnItemEx("baron_BoomFireSparkTrail",0,0,0, 0,0,0) 
			PFGR B 1 bright A_FadeOut(0.08)
			loop
		sp3:
			TNT1 A 0 A_SpawnItemEx("baron_BoomFireSparkTrail",0,0,0, 0,0,0) 
			PFGR C 1 bright A_FadeOut(0.08)
			loop
	}
}

actor baron_BoomFireSparkTrail : baron_NormBallTrail {
	scale 0.25
	alpha 1.0
}

actor baron_StrongBoom {
	scale 0.9
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
		spawn:
			ARBX ABCDE 2 bright 
			stop
	}
}

