Actor Apostle : McM_Monster replaces BaronOfHell {
	Health 1250
	Radius 24
	Height 64
	ProjectilePassHeight 70
	Mass 2048
	Speed 8
	PainChance 24
	Scale 1.15
	Monster
	+FLOORCLIP
	+DONTHARMSPECIES
	+DONTHURTSPECIES
	+BOSSDEATH
	SeeSound "Apostle/See"
	PainSound "Apostle/pain"
	DeathSound "Apostle/Die"
	ActiveSound "Apostle/Act"
	HitObituary "%o was torn limb from limb by an Apostle of Torment."
	Obituary "%o was murdered by an Apostle of Torment."
	Tag "Apostle of Torment"
	Species "Baron"
	BloodColor "DF 15 15"
	const int b2ang = 6;
	States {
		Idle: 
			LOHS AB 10 A_Look 
		Loop 
		See: 
			LOHS AABBCCDD 3 Fast A_Chase 
		Loop 
		Missile: 
			TNT1 A 0 A_Jump(96, "Volley")
		MissileCont:
			TNT1 A 0 A_Jump(128, "Other")
			LOHS E 6 A_FaceTarget 
			LOHS F 6 A_FaceTarget 
			LOHS G 6 A_CustomComboAttack("ApostleBall", 42, 10 * random(3, 8), "baron/melee")
			TNT1 A 0 A_Jump(128, "Missile")
		Goto See
		Other:
			LOHS P 6 A_FaceTarget 
			LOHS Q 6 A_FaceTarget 
			LOHS R 6 A_CustomComboAttack("ApostleBall", 42, 10 * random(3, 8), "baron/melee") 
		Goto See
		Volley:
			TNT1 A 0 A_JumpIfInventory("MCM_BehaviorToggle", 1, "VolleyCont")
		Goto MissileCont
		VolleyCont:
			LOHS P 1 A_FaceTarget
			TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
			TNT1 A 0 A_GiveInventory("ApostleWeakness", 1)
			TNT1 A 0 ACS_NamedExecuteAlways("Apostle Volley FX")
			TNT1 A 0 A_PlaySound("Apostle/Volley", 7)
			LOHS PPPPPP 8 A_FaceTarget
			LOHS PP 7 A_FaceTarget
			LOHS Q 7 A_FaceTarget
			TNT1 A 0 A_GiveInventory("ApostleCircleSpawner", 1)
			TNT1 A 0 A_CustomMissile("ApostleBall2", 42, 0, b2ang)
			LOHS R 6 A_CustomComboAttack("ApostleBall2", 42, 10 * random(3, 8), "baron/melee") 
			LOHS E 7 A_FaceTarget
			LOHS F 6 A_FaceTarget
			TNT1 A 0 A_CustomMissile("ApostleBall2", 42, 0, -b2ang)
			LOHS G 5 A_CustomComboAttack("ApostleBall2", 42, 10 * random(3, 8), "baron/melee") 
			LOHS P 6 A_FaceTarget
			LOHS Q 5 A_FaceTarget
			TNT1 A 0 A_CustomMissile("ApostleBall2", 42, 0, b2ang)
			LOHS R 4 A_CustomComboAttack("ApostleBall2", 42, 10 * random(3, 8), "baron/melee") 
			LOHS E 5 A_FaceTarget
			LOHS F 4 A_FaceTarget
			TNT1 A 0 A_GiveInventory("ApostleCircleSpawner", 1)
			TNT1 A 0 A_CustomMissile("ApostleBall2", 42, 0, -b2ang)
			LOHS G 3 A_CustomComboAttack("ApostleBall2", 42, 10 * random(3, 8), "baron/melee")
			LOHS P 4 A_FaceTarget
			LOHS Q 3 A_FaceTarget
			TNT1 A 0 A_CustomMissile("ApostleBall2", 42, 0, b2ang)
			LOHS R 2 A_CustomComboAttack("ApostleBall2", 42, 10 * random(3, 8), "baron/melee") 
			LOHS E 3 A_FaceTarget
			LOHS F 2 A_FaceTarget
			TNT1 A 0 A_CustomMissile("ApostleBall2", 42, 0, -b2ang)
			LOHS G 1 A_CustomComboAttack("ApostleBall2", 42, 10 * random(3, 8), "baron/melee")
			LOHS P 3 A_FaceTarget
			LOHS Q 2 A_FaceTarget
			TNT1 A 0 A_GiveInventory("ApostleCircleSpawner", 1)
			TNT1 A 0 A_CustomMissile("ApostleBall2", 42, 0, b2ang)
			LOHS R 1 A_CustomComboAttack("ApostleBall2", 42, 10 * random(3, 8), "baron/melee") 
			LOHS E 3 A_FaceTarget
			LOHS F 2 A_FaceTarget
			TNT1 A 0 A_CustomMissile("ApostleBall2", 42, 0, -b2ang)
			LOHS G 1 A_CustomComboAttack("ApostleBall2", 42, 10 * random(3, 8), "baron/melee")
			LOHS P 3 A_FaceTarget
			LOHS Q 2 A_FaceTarget
			TNT1 A 0 A_GiveInventory("ApostleCircleSpawner", 1)
			TNT1 A 0 A_CustomMissile("ApostleBall2", 42, 0, b2ang)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			LOHS R 1 A_CustomComboAttack("ApostleBall2", 42, 10 * random(3, 8), "baron/melee") 
		Goto See
		Pain: 
			TNT1 A 0 A_TakeInventory("ApostleWeakness", 1)
			TNT1 A 0 A_StopSound(7)
			LOHS H 5 ACS_NamedExecuteAlways("Apostle FX Control", 0, 0)
			TNT1 A 0 ACS_NamedExecuteAlways("Apostle FX Control", 0, 1)
			LOHS H 5 A_Pain 
		Goto See 
		Death: 
			LOHS I 6 ACS_NamedExecuteAlways("Apostle FX Control", 0, 0)
			LOHS J 6 A_Scream 
			LOHS K 3
			LOHS K 3 A_Fall
			LOHS LMN 6
			LOHS O -1 A_BossDeath
		Stop 	
		Raise: 
			LOHS ONMLKJI 5 
		Goto See
		Death.Corpse:
			LOHS O -1
		Stop
	}
}

Actor ApostleBall {
	Radius 8
	Height 16
	Speed 24
	Damage (8 * random(2, 4))
	Projectile
	RenderStyle Add
	Alpha 0.67
	+FORCEXYBILLBOARD
	+DONTBLAST
	+PIERCEARMOR
	SeeSound "Apostle/Fire"
	DeathSound "Apostle/Hit"
	States {
		Spawn:
			HPLB A 2 Bright A_SpawnItemEx("ApostleBallTrail",0,0,0,0,0,0,0,128)
			HPLB B 2 Bright A_SpawnItemEx("ApostleBallTrail",0,0,0,0,0,0,0,128)
			HPLB C 2 Bright A_SpawnItemEx("ApostleBallTrail",0,0,0,0,0,0,0,128)
			HPLB D 2 Bright A_SpawnItemEx("ApostleBallTrail",0,0,0,0,0,0,0,128)
		Loop
		Death:
			HPLB EFHIJ 3 Bright
		Stop
	}
}

Actor ApostleCircleSpawner : MCM_Activator {
	States {
		Pickup:
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 0, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 24, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 48, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 72, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 96, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 120, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 144, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 168, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 192, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 216, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 240, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 264, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 288, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 312, CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("ApostleFloorBall", 8, 0, 336, CMF_AIMDIRECTION)
		Stop
	}
}

Actor ApostleFloorBall : ApostleBall {
	Speed 8
	radius 5
	height 10
	scale 0.875
	Damage (5 * random(2, 3))
	States {
		Spawn:
			HPLB A 2 Bright A_SpawnItemEx("ApostleBallTrail",0,0,0,0,0,0,0,128)
			TNT1 A 0 ThrustThing(angle * 256 / 360, 6, 0, 0)
			TNT1 A 0 A_SetAngle(angle + 24)
			HPLB B 2 Bright A_SpawnItemEx("ApostleBallTrail",0,0,0,0,0,0,0,128)
			TNT1 A 0 ThrustThing(angle * 256 / 360, 6, 0, 0)
			TNT1 A 0 A_SetAngle(angle + 24)
			HPLB C 2 Bright A_SpawnItemEx("ApostleBallTrail",0,0,0,0,0,0,0,128)
			TNT1 A 0 ThrustThing(angle * 256 / 360, 6, 0, 0)
			TNT1 A 0 A_SetAngle(angle + 24)
			HPLB D 2 Bright A_SpawnItemEx("ApostleBallTrail",0,0,0,0,0,0,0,128)
			TNT1 A 0 ThrustThing(angle * 256 / 360, 6, 0, 0)
			TNT1 A 0 A_SetAngle(angle + 24)
		Loop
	}
}

Actor ApostleBallTrail {   
	+NOINTERACTION
	+FORCEXYBILLBOARD
	RenderStyle Add
	Alpha 0.67
	+CLIENTSIDEONLY
	States {
		Spawn:
			TNT1 A 2 Bright
			HPLB KLMNOP 2 Bright
		Stop 
	}
}

Actor Apostle_BreakFX : MCM_Bool { }

Actor ApostleBall2 {
	Radius 8
	Height 16
	Speed 32
	Damage (20)
	Projectile
	RenderStyle Add
	Alpha 0.925
	Translation "0:255=172:191"
	Decal PlasmaScorchLower
	SeeSound "Apostle/Fire"
	DeathSound "Apostle/Hit"
	States {
		Spawn:
			ANFB AAA 1 Bright A_SpawnItemEx("ApostleBall2Trail", random(-5,5), 0, random(-8, 8))
			ANFB BBB 1 Bright A_SpawnItemEx("ApostleBall2Trail", random(-5,5), 0, random(-8, 8))
			ANFB CCC 1 Bright A_SpawnItemEx("ApostleBall2Trail", random(-5,5), 0, random(-8, 8))
		SpawnLoop:
			TNT1 A 0 A_CustomMissile("ApostleExplosion", 0, 0)
			ANFB AA 1 Bright A_SpawnItemEx("ApostleBall2Trail", random(-5,5), 0, random(-8, 8))
			ANFB BB 1 Bright A_SpawnItemEx("ApostleBall2Trail", random(-5,5), 0, random(-8, 8))
			ANFB CC 1 Bright A_SpawnItemEx("ApostleBall2Trail", random(-5,5), 0, random(-8, 8))
		Loop
		Death:
			ANFB DEFG 3 Bright
		Stop
	}
}

Actor ApostleBall2Trail {
	+CLIENTSIDEONLY
	RenderStyle Add
	Alpha 0.8
	Scale 0.5
	States {
		Spawn:
			TNT1 A 1
			TNT1 A 0 ThrustThingZ(0, random(-3,8), 0, 1)
			SHTR ABCDDE 3 Bright
			SHTR F 1 Bright A_FadeOut(0.1)
		Wait
	}
}

Actor ApostleExplosion {
	Projectile
	Speed 0
	Damage 0
	+THRUACTORS
	Translation "0:255=%[0.00,0.00,0.00]:[1.17,0.00,0.00]"
	RenderStyle Add
	Alpha 0.925
	SeeSound "Apostle/Exp1"
	States {
		Spawn:
			STMX AB 4 Bright
			TNT1 A 0 A_Explode(16, 84, 0)
			STMX CDE 4 Bright
			TNT1 A 0 A_PlaySound("Apostle/Exp2")
			TNT1 A 0 A_Explode(32, 128, 0)
			STMX FFGGHHIIJJKKLL 1 Bright A_SetScale(scalex - 0.075, scaley - 0.075)
		Stop
	}
}

Actor ApostleWeakness : PowerProtection {
	damagefactor "normal", 1.333
	powerup.duration -2
}