//Weredragon

Actor NewBeast : Beast replaces Beast
{
	PainChance "Convert", 255
	DropItem "NewMana1", 84, 30
	Meleerange 64
	States
	{
	Spawn:
		BEAS A 0
		BEAS A 0 ACS_ExecuteAlways(913,0,220,14,0)//increase health on higher difficulties
		BEAS AB 10 A_Look
		Loop
	Idle:
		BEAS AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_JumpIfInTargetInventory("WarCry",Random(0,70),"Feared")
		Goto Pain
	Feared:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(914,0,45)
		TNT1 A 0 ACS_ExecuteAlways(560,0,0,0,0)
		goto See
	Missile:
		BEAS H 10 A_FaceTarget
		BEAS I 10 A_CustomComboAttack("BeastBall", 32, random(1,8)*3 + (ACS_ExecuteWithResult(912,1,0,0)), "beast/attack")
		Goto See
	Death:
		BEAS A 0 ACS_ExecuteAlways(914,0,45)
		BEAS R 6
		BEAS S 6 A_Scream
		BEAS TUV 6
		BEAS W 6 A_NoBlocking
		BEAS XY 6
		BEAS Z -1
		Stop
	XDeath:
		BEAS J 0 A_SpawnItemEX("GIBBER")
		BEAS J 5 ACS_ExecuteAlways(914,0,45)
		BEAS K 6 A_Scream
		BEAS L 5
		BEAS M 6
		BEAS N 5
		BEAS O 6 A_NoBlocking
		BEAS P 5
		BEAS Q -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(914,0,45)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	}
}

Actor NewBeastBall : BeastBall replaces BeastBall
{
	Damage ((random(1,8)*4)+(ACS_ExecuteWithResult(912,2,0,0)))
}

//Sabreclaw

Actor NewClinkHeretic : Clink replaces Clink
{
  DropItem "ForceCube" 8
  DropItem "NewMana2", 84, 15
  PainChance "Convert", 255
  Damage (random(3,9)+(ACS_ExecuteWithResult(912,1,0,0)))
  Obituary "$OB_CLINK" // "%o was slashed by a sabreclaw."
  MeleeRange 52
  MaxTargetRange 200
  States
  {
  Spawn:
	CLNK A 0
	CLNK A 0 ACS_ExecuteAlways(913,0,150,11,0)//increase health on higher difficulties
    CLNK AB 10 A_Look
    Loop
  Idle:
    CLNK AB 10 A_Look
    Loop
  See:
    CLNK A 3 A_Chase
	CLNK B 3 A_Chase
	CLNK C 3 A_Chase
	CLNK D 3 A_Chase
    Loop
  Melee:
    CLNK E 5 A_FaceTarget
    CLNK F 4 A_FaceTarget
    CLNK G 7 A_CustomMeleeAttack(random(3,9)+(ACS_ExecuteWithResult(912,1,0,0)), "clink/attack", "clink/attack", "melee", 1)
    Goto See
  Missile:
	CLNK P 6 A_FaceTarget
	CLNK P 0 A_FaceTarget
	CLNK Q 1 ThrustThingZ(0,40,0,1)
    CLNK E 0 A_FaceTarget
    CLNK Q 0 A_Recoil (-10)
	CLNK QQQQQQQQQQQQQQQPPPPPP 1 A_JumpIfCloser(71, "MeleeStrike")
	Goto See
	MeleeStrike:
		CLNK G 0 A_FaceTarget
		CLNK G 7 A_CustomMeleeAttack((random(3,9)+(ACS_ExecuteWithResult(912,1,0,0)))*2, "clink/attack", "clink/attack", "melee", 1)
		Goto See
  Pain:
    CLNK H 3
    CLNK H 3 A_Pain
    Goto See
  Pain.Morale:
	TNT1 A 0 A_JumpIfInTargetInventory("WarCry",Random(0,60),"Feared")
	Goto Pain
  Feared:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
  Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto Pain
  ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(914,0,40)
	TNT1 A 0 ACS_ExecuteAlways(560,0,0,0,0)
	goto See
  Death:
	CLNK I 0 ACS_ExecuteAlways(914,0,40)
    CLNK I 6 A_Scream
	CLNK J 6
    CLNK K 5
    CLNK L 5 A_NoBlocking
    CLNK MN 5
    CLNK O -1
    Stop
  Ice:
	"----" A 0 ACS_ExecuteAlways(914,0,40)
	"----" G 5 A_GenericFreezeDeath
	"----" G 1 A_FreezeDeathChunks
	Wait
  }
}

// Iron-Lich
Actor NewIronLich : IronLich Replaces IronLich
{
	Dropitem "NewMana1", 84, 15
	Dropitem "ArtiEgg", 51
	+BOSS
	+NORADIUSDMG
	Damagefactor "DeathBlow", 0
	States
	{
	Spawn:
		LICH A 0
		LICH A 0 ACS_ExecuteAlways(913,0,700,30,0)//increase health on higher difficulties
		LICH A 10 A_Look
		Loop
	Idle:
		LICH A 10 A_Look
		Loop
	Death:
		BOSS A 0 ACS_ExecuteAlways(914,0,90)
		LICH C 7
		LICH D 7 A_Scream
		LICH EF 7
		LICH G 7 A_NoBlocking
		LICH H 7
		LICH I -1 A_BossDeath
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(914,0,90)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	}
}

Actor NewHeadFX1 : HeadFX1 replaces HeadFX1
{
	Damage (random(1,8)+(ACS_ExecuteWithResult(912,1,0,0)/2))
	Damagetype "Ice"
}

Actor NewHeadFX2 : HeadFX2 replaces HeadFX2
{
	Damage ((random(1,8)*3)+(ACS_ExecuteWithResult(912,1,0,0)))
	Damagetype "Ice"
}

Actor NewHeadFX3 : HeadFX3 replaces HeadFX3
{
	Damage ((random(1,8)*5)+(ACS_ExecuteWithResult(912,2,0,0)))
}

//Undead Knight

Actor NewKnight : Knight Replaces Knight
{
	+NOBLOOD
	Meleerange 72
	PainChance "Convert", 255
	DropItem "NewMana1", 84, 15
	States
	{
	Spawn:
		KNIG A 0
		KNIG A 0 ACS_ExecuteAlways(913,0,200,10,0)//increase health on higher difficulties
		KNIG AB 10 A_Look
		Loop
	Idle:
		KNIG AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_JumpIfInTargetInventory("WarCry",Random(0,70),"Feared")
		Goto Pain
	Feared:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,7),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(914,0,40)
		TNT1 A 0 ACS_ExecuteAlways(560,0,0,0,0)
		goto See
	Melee:
	Missile:
		KNIG E 10 A_FaceTarget
		KNIG F 8 A_FaceTarget
		KNIG F 0 A_Jump(41, "RedAxe")
		KNIG G 8 A_CustomComboAttack("KnightAxe", 32, (3 * random(1, 8)) + (ACS_ExecuteWithResult(912,1,0,0)), "hknight/melee")
		KNIG E 10 A_FaceTarget
		KNIG F 8 A_FaceTarget
		KNIG F 0 A_Jump(41, "RedAxe2")
		KNIG G 8 A_CustomComboAttack("KnightAxe", 32, (3 * random(1, 8)) + (ACS_ExecuteWithResult(912,1,0,0)), "hknight/melee")
		Goto See
	RedAxe:
		KNIG G 8 A_CustomComboAttack("RedAxe", 32, (3 * random(1, 8)) + (ACS_ExecuteWithResult(912,1,0,0)), "hknight/melee")
		Goto Missile+4
	RedAxe2:
		KNIG G 8 A_CustomComboAttack("RedAxe", 32, (3 * random(1, 8)) + (ACS_ExecuteWithResult(912,1,0,0)), "hknight/melee")
		Goto See
	Death:
		KNIG A 0 ACS_ExecuteAlways(914,0,40)
		KNIG I 6
		KNIG J 6 A_Scream
		KNIG K 6
		KNIG L 6 A_NoBlocking
		KNIG MN 6
		KNIG O -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(914,0,40)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	}
}

ACTOR NewKnightGhost : NewKnight replaces KnightGhost 65
{
  Game Heretic
  SpawnID 129
  +SHADOW
  +GHOST
  Translation "209:224=145:160"
  RenderStyle Translucent
  Alpha 0.4
  States
  {
  Melee:
  Missile:
	KNIG E 10 A_FaceTarget
	KNIG F 8 A_FaceTarget
	KNIG G 8 A_CustomComboAttack("RedAxe", 32, (3 * random(1, 8)) + (ACS_ExecuteWithResult(912,1,0,0)), "hknight/melee")
	KNIG E 10 A_FaceTarget
	KNIG F 8 A_FaceTarget
	KNIG G 8 A_CustomComboAttack("RedAxe", 32, (3 * random(1, 8)) + (ACS_ExecuteWithResult(912,1,0,0)), "hknight/melee")
	Goto See
	}
}

Actor NewKnightAxe : KnightAxe replaces KnightAxe
{
	Damage ((random(1,8)*2)+(ACS_ExecuteWithResult(912,1,0,0)))
}

Actor NewRedAxe : RedAxe replaces RedAxe
{
	Damage ((random(1,8)*7)+(ACS_ExecuteWithResult(912,3,0,0)))
}


//Maulotaur
ACTOR NewMinotaurHeretic : Minotaur replaces Minotaur
{
  Damage 7
  DamageFactor "DeathBlow", 0
  health 3000
  painchance 0
  meleerange 164
  mass 800
  DropItem "NewArtiSuperHealth", 51
  DropItem "NewMana2", 84, 45
  Obituary "%o was burnt to a crisp by the Maulotaur."
  HitObituary "%o was crushed by the Maulotaur."
  states
  {
  Spawn:
	MNTR A 0
	MNTR A 0 ACS_ExecuteAlways(913,0,3000,100,0)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(536,0,0,0)==1,"Mutate")
    MNTR AB 10 A_Look
    Loop
	Idle:
	MNTR AB 10 A_Look
    Loop
  Melee:
    MNTR U 0 A_UnSetInvulnerable
	MNTR U 0 A_TakeInventory("Hammercheck", 1)
    MNTR V 10 A_FaceTarget
    MNTR W 7 A_FaceTarget
    MNTR X 12 A_CustomMeleeAttack ((random(1,8)*7)+(ACS_ExecuteWithResult(912,3,0,0)), "minotaur/melee")
    Goto See
  Missile:
    MNTR U 0 A_UnSetInvulnerable
    MNTR V 0 A_Jump(51, 2)
    MNTR V 0 A_JumpIfCloser(800, "Hammer")
	MNTR V 0 A_TakeInventory("Hammercheck", 1)
  	MNTR V 0 A_Jump(104, 2)
    MNTR V 0 A_JumpIfCloser(2000, "Charge")
    MNTR V 10
    MNTR Y 4 A_FaceTarget
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, 0)
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, 2.8125)
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, -2.8125)
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, 5.625)
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, -5.625)
    MNTR Z 9
    Goto See
  Hammer:
    MNTR U 0 A_UnSetInvulnerable
  	MNTR V 0 A_JumpIfInventory("Hammercheck", 1, "Missile")
    MNTR V 10 A_FaceTarget
    MNTR W 7 A_FaceTarget
	MNTR W 0 A_PlaySound("minotaur/attack3", CHAN_VOICE)
	MNTR X 0 A_PlaySound("minotaur/attack1", CHAN_WEAPON)
    MNTR X 12 A_CustomMissile("HMinotaurFX2", 0, 0, 0)
	MNTR V 0 A_Jump(192, "HammerLoop")
    Goto See
  HammerLoop:
    MNTR X 12 A_GiveInventory("Hammercheck", 1)
    Goto Hammer
  Charge:
	MNTR U 0 A_SetInvulnerable
    MNTR U 0 A_FaceTarget
    MNTR U 0 A_SkullAttack(13)
	MNTR U 0 A_SpawnItemEx("MinoPuff",0,0,0,0,0,2)
	MNTR U 0 A_FaceTarget
	MNTR U 2
	MNTR U 0 A_JumpIf(z - floorz >= 15, "ChargeStop")
    goto Charge+2
   ChargeStop:
    SPOS A 0 A_Stop
    goto See
  See:
    MNTR A 0 A_UnSetInvulnerable
    MNTR ABCD 5 A_Chase
    Loop
  Death:
	MNTR A 0 ACS_ExecuteAlways(914,0,400)
	MNTR F 0 A_SpawnItem("BOSSGIBBER")
    MNTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 // A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR G 5
    MNTR H 6 A_Scream
    MNTR I 5
    MNTR J 6
    MNTR K 5
    MNTR L 6
	MNTR M 0 A_SpawnItem("BOSSGIBBER")
    MNTR M 5 A_NoBlocking
    MNTR N 6
    MNTR O 5
    MNTR P 6
    MNTR Q 5
    MNTR R 6
    MNTR S 5
    MNTR T -1 A_BossDeath
    Stop
  Ice:
	"----" A 0 ACS_ExecuteAlways(914,0,400)
	"----" E 5 A_GenericFreezeDeath
	"----" E 1 A_FreezeDeathChunks
	Wait
  }
}

Actor HMinotaurFX1 : MinotaurFX1
{
	Damage ((Random(1,8)*3)+(ACS_ExecuteWithResult(912,1,0,0)))
}

Actor HMinotaurFX2 : MinotaurFX2
{
	Damage ((Random(1,8)*4)+(ACS_ExecuteWithResult(912,2,0,0)))
	States
	{
	Spawn:
		FX13 A 2 Bright A_SpawnItemEx("HMinotaurFX3",random(-2,2),random(-2,2),0)
		Loop
	Death:
		FX13 I 4 Bright A_Explode(128+(ACS_ExecuteWithResult(912,4,0,0)), 128, 0)
		FX13 JKLM 4 Bright
		Stop
	}
}

Actor HMinotaurFX3 : MinotaurFX3
{
	Damage ((Random(1,8)*4)+(ACS_ExecuteWithResult(912,2,0,0)))
	States
	{
	Death:
		FX13 I 4 Bright A_Explode(128+(ACS_ExecuteWithResult(912,4,0,0)), 128, 0)
		FX13 JKLM 4 Bright
		Stop
	}
}

//Golems

Actor NewMummy : Mummy replaces Mummy
{
	Meleerange 52
	PainChance "Convert", 255
	DropItem "NewMana1", 84, 5
	States
	{
	Spawn:
		MUMM A 0
		MUMM A 0 ACS_ExecuteAlways(913,0,80,8,0)//increase health on higher difficulties
		MUMM AB 10 A_Look
		Loop
	Idle:
		MUMM AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_JumpIfInTargetInventory("WarCry",Random(0,60),"Feared")
		Goto Pain
	Feared:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,4),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(914,0,20)
		TNT1 A 0 ACS_ExecuteAlways(560,0,0,0,0)
		goto See
	Melee:
		MUMM E 6 A_FaceTarget
		MUMM F 6 A_CustomMeleeAttack(random(1,8)*2 + (ACS_ExecuteWithResult(912,1,0,0)), "mummy/attack2", "mummy/attack")
		MUMM G 6
		Goto See
	Death:
		MUMM A 0 ACS_ExecuteAlways(914,0,20)
		MUMM I 1 A_SpawnItemEx("GIB1", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM I 1 A_SpawnItemEx("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM I 1 A_SpawnItemEx("GIB3", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM I 1 A_SpawnItemEx("GIB4", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM I 1 A_SpawnItemEx("GIB5", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM J 1 A_Scream
		MUMM JJ 1 A_SpawnItemEx("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM J 1 A_SpawnItemEx("GIB1", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM J 1 A_SpawnItemEx("GIB3", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM K 0 A_SpawnItemEx("MummySoul", 0,0,10, 0,0,1, random(0,360), 128)
		MUMM K 1 A_SpawnItemEx("GIB4", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM K 1 A_SpawnItemEx("GIB5", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM K 3 A_SpawnItemEx("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM L 5
		MUMM M 5 A_NoBlocking
		MUMM NO 5
		MUMM P -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(914,0,20)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	}
}

ACTOR NewMummyGhost : NewMummy replaces MummyGhost 69
{
  Game Heretic
  SpawnID 8
  +SHADOW
  +GHOST
  RenderStyle Translucent
  Alpha 0.4
}

ACTOR NewMummyLeader : NewMummy replaces MummyLeader 45
{
  Game Heretic
  SpawnID 2
  Health 100
  PainChance 64
  Obituary "$OB_MUMMYLEADER"
  States
  {
  Spawn:
		MUMM A 0
		MUMM A 0 ACS_ExecuteAlways(913,0,100,10,0)//increase health on higher difficulties
		MUMM AB 10 A_Look
		Loop
  Missile:
    MUMM X 5 A_FaceTarget
    MUMM Y 5 Bright A_FaceTarget
    MUMM X 5 A_FaceTarget
    MUMM Y 5 Bright A_FaceTarget
    MUMM X 5 A_FaceTarget
    MUMM Y 5 Bright A_CustomComboAttack("MummyFX1", 32, (random(1,8)*2) + (ACS_ExecuteWithResult(912,1,0,0)), "mummy/attack2")
    Goto See
  }
}

Actor NewMummyFX1 : MummyFX1 replaces MummyFX1
{
	Damage ((Random(1,8)*4)+(ACS_ExecuteWithResult(912,2,0,0)))
}

ACTOR NewMummyLeaderGhost : NewMummyLeader replaces MummyLeaderGhost 46
{
  Game Heretic
  SpawnID 9
  +SHADOW
  +GHOST
  RenderStyle Translucent
  Alpha 0.4
}

//Chaingun Guy

Actor NewSnake : Snake replaces Snake
{
	DropItem "NewMana2", 84, 30
	PainChance "Convert", 255
	States
	{
	Spawn:
		SNKE A 0
		SNKE A 0 ACS_ExecuteAlways(913,0,280,16,0)//increase health on higher difficulties
		SNKE AB 10 A_Look
		Loop
	Idle:
		SNKE AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_JumpIfInTargetInventory("WarCry",Random(0,80),"Feared")
		Goto Pain
	Feared:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,8),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(914,0,55)
		TNT1 A 0 ACS_ExecuteAlways(560,0,0,0,0)
		goto See	   
	Death:
		SNKE A 0 ACS_ExecuteAlways(914,0,55)
		SNKE G 5 A_SpawnItem("GIBBER")
		SNKE H 5 A_Scream
		SNKE IJKL 5
		SNKE M 5 A_NoBlocking
		SNKE NO 5
		SNKE P -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(914,0,55)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	}
}

Actor NewSnakeProjA : SnakeProjA replaces SnakeProjA
{
	Damage (Random(1,8)+(ACS_ExecuteWithResult(912,1,0,0)/2))
	Damagetype "Ice"
}

Actor NewSnakeProjB : SnakeProjB replaces SnakeProjB
{
	Damage ((Random(1,8)*3)+(ACS_ExecuteWithResult(912,1,0,0)))
}

Actor NewSorcerer1 : Sorcerer1 replaces Sorcerer1
{
	Health 20000
	PainChance 0
	Damagefactor "DeathBlow", 0
	States
	{
	Spawn:
		SRCR A 0
		SRCR A 0 ACS_ExecuteAlways(913,0,20000,0,0)//increase health on higher difficulties
		SRCR AB 10 A_Look
		Loop
	Idle:
		SRCR AB 10 A_Look
		Loop
	Death:
		SRCR E 7 ACS_ExecuteAlways(914,0,2000)
		SRCR E 0 A_SpawnItem("BOSSGIBBER")
		SRCR F 7 A_Scream
		SRCR G 7
		SRCR HIJK 6
		SRCR L 25 A_PlaySoundEx("dsparil/zap", "body")
		SRCR MN 5
		SRCR O 4
		SRCR L 20 A_PlaySoundEx("dsparil/zap", "body")
		SRCR MN 5
		SRCR O 4
		SRCR L 12
		SRCR P -1 A_SorcererRise
	}
}

Actor NewSorcerer2 : Sorcerer2 replaces Sorcerer2
{
	Health 35000
	PainChance 0
	Damagefactor "DeathBlow", 0
	States
	{
	Spawn:
		SOR2 A 0
		SOR2 A 0 ACS_ExecuteAlways(913,0,35000,0,0)//increase health on higher difficulties
		SOR2 AB 10 A_Look
		Loop
	Idle:
		SOR2 AB 10 A_Look
		Loop
	Death:
		SOR2 E 0 ACS_ExecuteAlways(914,0,3500)
		SDTH A 8 A_Sor2DthInit
		SDTH B 8
		SDTH C 8 A_PlaySoundEx("dsparil/scream", "Body")
		SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SDTH G 6 A_PlaySoundEx("dsparil/explode", "Body")
		SDTH H 6
		SDTH I 18
		SDTH J 6 A_NoBlocking
		SDTH K 6 A_PlaySoundEx("dsparil/bones", "Body")
		SDTH LMN 6
		SDTH O -1 A_BossDeath
		Stop
	}
}

ACTOR KaZap
{
   Radius 10
   Height 10
   Speed 5
   PROJECTILE
   +CLIENTSIDEONLY
   +NOCLIP
   +NOINTERACTION
   States
   {
   Spawn:
    FX17 EF 2
    FX17 G 4
    FX17 H 6 BRIGHT A_PlaySound ("weapons/zapx")
    FX17 I 6 BRIGHT
	FX17 J 4
	FX17 KL 2
    Stop
   }
}

Actor NewSorcererFX1 : SorcererFX1 replaces SorcererFX1
{
	Damage ((random(1,8)*10) + ACS_ExecuteWithResult(912,4,0,0))
}

ACTOR NewSorcerer2FX1 : Sorcerer2FX1 replaces Sorcerer2FX1
{
  Damage (random(1,8) + ACS_ExecuteWithResult(912,1,0,0)/2)
  +FORCERADIUSDMG
  States
  {
  Spawn:
    TH16 ABC 3 Bright A_BlueSpark
    Loop
  Death:
    TH16 G 5 Bright A_Explode((random(80,111) + ACS_ExecuteWithResult(912,2,0,0))*4,128,0)
    TH16 HIJKL 5 Bright
    Stop
  }
}

//Disciple of D'Sparil

Actor NewWizard : Wizard replaces Wizard
{
	PainChance "Convert", 255
	Dropitem "NewMana1", 84, 15
	Dropitem "NewArtiHealingRadius", 4
	Dropitem "NewArtiSpeedBoots", 4
	Dropitem "ForceCube", 4
	States
	{
	Spawn:
		TROO A 0
		TROO A 0 ACS_ExecuteAlways(913,0,180,12,0)//increase health on higher difficulties
		WZRD AB 10 A_Look
		Loop
	Idle:
		WZRD AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_JumpIfInTargetInventory("WarCry",Random(0,70),"Feared")
		Goto Pain
	Feared:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,9),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(914,0,40)
		TNT1 A 0 ACS_ExecuteAlways(560,0,0,0,0)
		goto See
	Death:
		WZRD A 0 ACS_ExecuteAlways(914,0,40)
		WZRD F 6 A_GhostOff
		WZRD G 6 A_Scream
		WZRD HI 6
		WZRD J 6 A_NoBlocking
		WZRD KL 6
		WZRD M -1 A_SetFloorClip
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(914,0,40)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	}
}

Actor NewWizardFX1 : WizardFX1 replaces WizardFX1
{
	Damage ((3 * random(1, 8)) + ACS_ExecuteWithResult(912,1,0,0))
}

//Fatso

Actor NewHereticImp : HereticImp replaces HereticImp
{
	PainChance "Convert", 255
	States
	{
	Spawn:
		IMPX A 0
		IMPX A 0 ACS_ExecuteAlways(913,0,40,4,0)//increase health on higher difficulties
		IMPX ABCB 10 A_Look
		Loop
	Idle:
		IMPX ABCB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_JumpIfInTargetInventory("WarCry",Random(0,60),"Feared")
		Goto Pain
	Feared:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(914,0,15)
		TNT1 A 0 ACS_ExecuteAlways(560,0,0,0,0)
		goto See
	Melee:
		IMPX DE 6 A_FaceTarget
		IMPX F 6 A_CustomMeleeAttack(random(5,12) + ACS_ExecuteWithResult(912,1,0,0), "himp/attack", "himp/attack")
		Goto See
	Death:
		IMPX A 0 ACS_ExecuteAlways(914,0,15)
		IMPX G 1 A_ImpDeath
		IMPX G 1 A_SpawnItemEx ("GIB1", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX G 1 A_SpawnItemEx ("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX G 1 A_SpawnItemEx ("GIB3", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB5", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 2
		Wait
	XDeath:
		IMPX A 0 ACS_ExecuteAlways(914,0,15)
		IMPX S 5 A_ImpXDeath1
		IMPX TU 5
		IMPX V 5 A_Gravity
		IMPX W 5 
		Wait
	Crash:
		IMPX III 1 A_SpawnItemEx("Blood", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX I 4 A_ImpExplode
		IMPX J 7 A_Scream
		IMPX K 7
		IMPX L -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(914,0,15)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	}
}

ACTOR NewHereticImpLeader : NewHereticImp replaces HereticImpLeader 5
{
  Game Heretic
  SpawnID 7
  Health 80
  -MISSILEMORE
  AttackSound "himp/leaderattack"
  States
  {
	Spawn:
		IMPX A 0
		IMPX A 0 ACS_ExecuteAlways(913,0,80,8,0)//increase health on higher difficulties
		IMPX ABCB 10 A_Look
		Loop
	Idle:
		IMPX ABCB 10 A_Look
		Loop
	Melee:
		Stop
	Missile:
		IMPX DE 6 A_FaceTarget
		IMPX F 6 A_CustomComboAttack("HereticImpBall", 32, random(5,12) + ACS_ExecuteWithResult(912,1,0,0), "himp/leaderattack")
		Goto See
		Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(914,0,20)
		TNT1 A 0 ACS_ExecuteAlways(560,0,0,0,0)
		goto See
	Death:
		IMPX A 0 ACS_ExecuteAlways(914,0,20)
		IMPX G 1 A_ImpDeath
		IMPX G 1 A_SpawnItemEx ("GIB1", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX G 1 A_SpawnItemEx ("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX G 1 A_SpawnItemEx ("GIB3", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB5", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 2
		Wait
	XDeath:
		IMPX A 0 ACS_ExecuteAlways(914,0,20)
		IMPX S 5 A_ImpXDeath1
		IMPX TU 5
		IMPX V 5 A_Gravity
		IMPX W 5 
		Wait
	Crash:
		IMPX III 1 A_SpawnItemEx("Blood", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX I 4 A_ImpExplode
		IMPX J 7 A_Scream
		IMPX K 7
		IMPX L -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(914,0,20)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
  }
}

Actor NewHereticImpBall : HereticImpBall replaces HereticImpBall
{
	Damage (random(1, 8) + ACS_ExecuteWithResult(912,1,0,0)/2)
}