Actor Heterodox
{
Monster
Health 1600
Height 64
Radius 24
Mass 1000
Speed 6
Bloodcolor "Black"
Painchance "Mine", 128
Painchance 28
MeleeDamage 18
+BOSSDEATH
+NOTARGET
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+FASTMELEE
+DONTHARMSPECIES
Species "Nobles"
Species "SatanGuard"
Damagetype "Heterodox"
Damagefactor "Acid", 0.3
Damagefactor "Fire", 0.5
//No Infighting
DamageFactor "SatanGuard", 0.0
DamageFactor "AbyssalSatyr", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
DropItem "BossLifeEssence", 200, 25
DropItem "HEMBossArmorBonusMax35", 200
DropItem "ModdedSoulSphere", 64
DropItem "AcidAmmo", 180, 7
Dropitem "Damned sphere", 96
SeeSound "diablo2/goatman/sight"
ActiveSound "diablo2/goatman/idle"
PainSound "diablo2/goatman/pain"
DeathSound "Goat/death"
MeleeSound "baron/melee"
Obituary "%o was profaned by a Heterodox."
HitObituary "%o was slayed by a Heterodox."
States
	{
	Spawn:
		AZEW A 10 A_Look
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999)
		AZEW AAAABBBB 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		AZEW CCCCDDDD 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		TNT1 A 0 A_Jump(67,"Rush")
		Loop
	Rush:
		AZEW A 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_FastChase
		AZEW A 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase("Melee","")
		AZEW A 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase
		AZEW B 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase
		AZEW B 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase("Melee","")
		AZEW B 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		AZEW C 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase
		AZEW C 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase("Melee","")
		AZEW C 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase("Melee","")
		AZEW D 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase
		AZEW D 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		AZEW D 1 A_SpawnItemEx("AzFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_Chase("Melee","")
		TNT1 A 0 A_Jump(34,"See")
		Loop
	Melee:
		AZEA AAABBBCC 1 A_FaceTarget
		TNT1 A 0 A_GiveToTarget("HeterodoxCurse")
		TNT1 A 0 A_MeleeAttack
		AZEA CCCCC 1 A_JumpIfCloser(64,"Alt")
		AZEA BAA 3
		GoTo See
	Alt:
		AZEA DDDDEEEFF 1 A_FaceTarget
		TNT1 A 0 A_MeleeAttack
		TNT1 A 0 A_JumpIfInventory("Tic",15,"AltEnd")
		TNT1 A 0 A_GiveInventory("Tic",1)
		AZEA FFFF 1 A_JumpIfCloser(64,"Melee")
	AltEnd:
		AZEA EDD 3
		GoTo See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999)
		TNT1 A 0 A_Jump(120,"Homers")
		TNT1 A 0 A_Jump(76,"BigSpread","DarkFireballs")
		TNT1 A 0 A_Jump(30,"AcidBall")
	Normal:
		AZEA AAAAABBBCC 1 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("DamnedBall2",32,5,random(0,8))
		AZEA CDDDDDEEEFF 1 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("DamnedBall2",32,-5,random(-8,0))
		AZEA F 7
		GoTo See
	Homers:
		AZEA AAAAABBBCC 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("DamnedHomer",32,5,0)
		AZEA CDDDDDEEEFF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("DamnedHomer",32,-5,0)
		AZEA F 7
		GoTo See
	BigSpread:
		AZEA AAAAABBBCC 1 Bright A_FaceTarget
		TNT1 AAAAAA 0 A_CustomMissile("DamnedBall2",32,5,random(0,11))
		AZEA CDDDDDEEEFF 1 Bright A_FaceTarget
		TNT1 AAAAAA 0 A_CustomMissile("DamnedBall2",32,-5,random(-11,0))
		AZEA F 7
		GoTo See
	DarkFireBalls:
		AZEA AAAAABBBCC 1 Bright A_FaceTarget
		TNT1 AA 0 A_CustomMissile("HeterodoxBall",32,5,random(0,11))
		AZEA CDDDDDEEEFF 1 Bright A_FaceTarget
		TNT1 AA 0 A_CustomMissile("HeterodoxBall",32,-5,random(-11,0))
		AZEA F 7
		GoTo See
	AcidBall:
		AZEA AAAAABBBCC 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeterodoxAcid",32,5,0)
		AZEA CDDDDDEEEFF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeterodoxAcid",32,-5,0)
		AZEA F 7
		GoTo See
	Pain:
		TNT1 A 0
		AZEP A 2 A_Pain
		AZEP A 3
		GoTo See
	Death:
		TNT1 A 0
		AZED A 2
		TNT1 A 0 A_SpawnItemEx("BlackGibbedGenerator",0,0,32)
		AZED B 5 A_Scream
		AZED C 5 A_Fall
		AZED D 4
		AZED E 4 A_BossDeath
		AZED F 3 A_RemoveChildren
		TNT1 A 0 A_KillMaster
		AZED G 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		AZED GFEDCBA 5
		GoTo See
	}
}

Actor HemHalfDamage : PowerDamage { Damagefactor "Normal", 0.5 }

Actor HeterodoxCurse : PowerUpGiver
{
+Inventory.Quiet
+Inventory.AutoActivate
Inventory.Amount 1
Inventory.MaxAmount 0
Powerup.Color Black 0.5
PowerUp.Type HemHalfDamage
PowerUp.Duration -5
}

ACTOR AzFX
{
Height 64
Radius 1
RENDERSTYLE Translucent
Alpha 0.75
+NONSHOOTABLE
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 1 Bright
		AZEW AABBCCDD 1 A_FadeOut(0.09,0)
		AZEW D 1 A_FadeOut(0.09,1)
		Wait
	}
}

Actor HeterodoxAcid : BaronBall
{
  FastSpeed 25
  Damagetype "Acid"
  SeeSound "Whiteballssee"
  DeathSound "Whiteballsdeth"
  +PierceArmor
  +NoExplodeFloor
  Scale 1.28
  Speed 19
  Decal DoomImpScorch
  Damage 3
  States
  {
	Spawn:	
        ANFB A 1 Bright A_SpawnItemEx("HeteracidTrail",0,0,RANDOM(-3,3),0,0,0,0,128,0)	
        TNT1 A 0 A_Weave(0,4,0,1)
		Loop
    Death:
	    TNT1 A 0
		TNT1 AAA 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 AAAA 0 A_CustomMissile("Kaboom7", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
	    TNT1 A 0 A_RadiusGive("AcidDamageHeterodox",100,RGF_PLAYERS,1)
        TNT1 A 0 A_Explode(18,120,0,100)
		ANFB CDE 3 Bright
        Stop
    }
}

Actor PestilenceAcid : HeterodoxAcid
{
 +SeekerMissile
  States
   {
    
	Spawn:
        ANFB A 1 Bright A_SpawnItemEx("HeteracidTrail",0,0,RANDOM(-3,3),0,0,0,0,128,0)	
        TNT1 A 0 A_Weave(0,4,0,1)
        ANFB A 1 Bright A_SpawnItemEx("HeteracidTrail",0,0,RANDOM(-3,3),0,0,0,0,128,0)	
        TNT1 A 0 A_Weave(0,4,0,1)
		TNT1 A 0 A_SeekerMissile(9,14,SMF_LOOK)
		Loop
   }
}

Actor HeterodoxCurse : CustomInventory
{
 +INVENTORY.ALWAYSPICKUP
 States
  {
   PickUp:
	"####" "#" 0 A_GiveInventory("HeterodoxDebuff")
	Stop
   PickUp.No:
    "####" "#" 0
	Stop
  }
}

Actor HeterodoxDebuff : PowerDamageDown
{
 Damagefactor Normal, 0.5
}

Actor HoundCurse : CustomInventory
{
 +INVENTORY.ALWAYSPICKUP
 States
  {
   PickUp:
	"####" "#" 0 A_GiveInventory("HoundDebuff")
	Stop
   PickUp.No:
    "####" "#" 0
	Stop
  }
}

Actor HoundDebuff : PowerDamageDown
{
 Damagefactor Normal, 0.5
 PowerUp.Duration -2
}

Actor HeterodoxBall : DoomImpBall
{
Speed 27
FastSpeed 29
Scale 1.28
Renderstyle Translucent
Alpha 0.86
Decal "DoomImpScorch"
Bouncecount 3
Bouncetype Hexen
Reactiontime 525
Damage (5*random(1,6))
+PIERCEARMOR
+HEXENBOUNCE
+SEEKERMISSILE
+DONTHARMSPECIES
+FORCEXYBILLBOARD
+MTHRUSPECIES
+HITTRACER
Damagetype "Heterodox"
States
	{
	Spawn:
		NEBL A 1 Bright A_SpawnItemEx("HeterodoxBallTrail",0,0,random(-3,3),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		NEBL B 1 Bright A_SpawnItemEx("HeterodoxBallTrail",0,0,random(-3,3),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		TNT1 A 0 Bright A_Seekermissile(5,7)
		TNT1 A 0 Bright A_CountDown
		Loop
	Crash:
	Death:
		TNT1 A 0
		NEBL CDE 3 Bright
		Stop
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BlackParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAA 0 A_CustomMissile("Kaboom35",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 A_GiveInventory("HeterodoxCurse",1,AAPTR_TRACER)
		NEBL CDE 3 Bright
		Stop
	}
}


Actor HoundDBBall : HeterodoxBall
{
  Damage 2
  States
  {
    Death:
	    TNT1 A 0
		TNT1 A 0 A_GiveInventory("HoundCurse",1,AAPTR_TRACER)
		TNT1 A 0 A_SpawnItemEx("BlackParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 AAAA 0 A_CustomMissile("Kaboom35", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
		NEBL CDE 3 Bright
        Stop
    }   
}

ACTOR EnergyProjectileSparkBlack : EnergyProjectileSparkRed
{
Gravity 0.2
BounceFactor 0.6
Renderstyle Translucent
Alpha 0.9
States
	{
	Spawn:
		SPKZ A 2 Bright A_FadeOut(0.05,1)
		Loop
	}
}

ACTOR EPSZ1 : EnergyProjectileSparkBlack { Scale 0.06 }

ACTOR EPSZ2 : EnergyProjectileSparkBlack
{
Speed 1
Scale 0.05
}

ACTOR EPSZ3 : EnergyProjectileSparkBlack
{
Speed 2
Scale 0.04
}

ACTOR EPSZ4 : EnergyProjectileSparkBlack
{
Speed 3
Scale 0.03
}

ACTOR EPSZ5 : EnergyProjectileSparkBlack
{
Speed 4
Scale 0.02
}

ACTOR EPSZ6 : EnergyProjectileSparkBlack
{
Speed 5
Scale 0.01
}

ACTOR BlackParticleSpawner : RedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("EPSZ1",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSZ2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSZ3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSZ4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSZ5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSZ6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor DamnedBall2 : DamnedBall
{
Damage (5*random(1,8))
Damagetype ""
Damagetype "Heterodox"
}

ACTOR HeteracidTrail
{
Height 1
Radius 1
Renderstyle Add
Alpha 1.0
Gravity 0.0
+NONSHOOTABLE
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		ANFB AAABBBCCCCCCC 1 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR HeterodoxBallTrail
{
Height 1
Radius 1
Renderstyle Translucent
Alpha 0.86
+NONSHOOTABLE
+NOINTERACTION
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		NEBL ABABAB 1 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}