Actor BlueCatharsi
{
MONSTER
Health 450
Height 56
Radius 18
Mass 100
Speed 6
BloodColor "Blue"
Painchance "Mine", 128
Painchance "AdvancedImp", 0
Painchance "Shadow", 0
Painchance "SoulToxic", 0
Painchance "Cacolich", 0
PainChance 30
+NODROPOFF
+NORADIUSDMG
+MissileMore
+MissileEvenMore
+QuickToRetaliate
+FloorClip
+AvoidMelee
+DONTHARMSPECIES
Species "AdvancedImp"
Damagetype "AdvancedImp"
Damagefactor "Fire", 0.7
RadiusDamageFactor 0.25
//No Infighting
Damagefactor "AdvancedImp", 0.0
Damagefactor "Shadow", 0.0
Damagefactor "Catharsi15k", 0.0
Damagefactor "Catharsi10K", 0.0
Damagefactor "Nightshade", 0.0
Damagefactor "HellionFire", 0.0
DamageFactor "SoulToxic", 0.25
DamageFactor "Cacolich", 0.25
DropItem "LifeEssence", 235, 20
DropItem "PortableMedkit" 190
DropItem "ArmorPlate" 190
DropItem "BackPack" 55
DropItem "DCell" 20
DropItem "DCell" 20
DropItem "DCell" 20
DropItem "HandGrenadeAmmo" 200 1
DropItem "MineAmmo" 123 1
SEESOUND "catharsi/sit"
PAINSOUND "catharsi/pain"
DEATHSOUND "catharsi/death"
ACTIVESOUND "imp/active"
OBITUARY "%o was reduced to tiny chars by a Dark Catharsi."
Tag "\c[f0]Blue Catharsi\c-"
States
	{
	Spawn:
		BCTH A 10 A_Look
		BCTH A 0 A_Jump(30,1)
		Loop
		BCTH A 0 A_PlaySound("catharsi/idle")
		Loop
	See:
		BCTH AABB 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
		BCTH CCDD 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
		TNT1 A 0 A_Jump(62,"Boost")
		Loop
	Boost:
		BCTH A 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BlueCatharsiGhostA",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		BCTH A 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BlueCatharsiGhostA",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		BCTH B 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BlueCatharsiGhostB",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		BCTH B 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BlueCatharsiGhostB",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
		BCTH C 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BlueCatharsiGhostC",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		BCTH C 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BlueCatharsiGhostC",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		BCTH D 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BlueCatharsiGhostD",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		BCTH D 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BlueCatharsiGhostD",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
		TNT1 A 0 A_Jump(50,"See")
		Loop
	Missile:
		TNT1 A 0
		BCTH E 1 A_Jump(130,"BFG10K")
		BCTH EEEEE 3 A_FaceTarget
	MissileLoop:
		BCTH E 2
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
		BCTH F 2 BRIGHT A_CustomMissile("BlueAnni15K",30,8,random(4,-8),0)
		BCTH EE 2 A_FaceTarget
		BCTH E 1 A_Jump(32,"Break")
		BCTH E 1 A_CPosRefire
		Loop
	Break:
		BCTH E 15
		GoTo See
	BFG10K:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("weapons/charge15k",CHAN_WEAPON)
		BCTH EEEEE 6 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		BCTH F 3 BRIGHT A_CustomMissile("CorruptedGeneral10KProjectile",30,8,random(4,-8),0)
		BCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		BCTH F 3 BRIGHT A_CustomMissile("CorruptedGeneral10KProjectile",30,8,random(4,-8),0)
		BCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		BCTH F 3 BRIGHT A_CustomMissile("CorruptedGeneral10KProjectile",30,8,random(4,-8),0)
		BCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		BCTH F 3 BRIGHT A_CustomMissile("CorruptedGeneral10KProjectile",30,8,random(4,-8),0)
		BCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		BCTH F 3 BRIGHT A_CustomMissile("CorruptedGeneral10KProjectile",30,8,random(4,-8),0)
		BCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		BCTH F 3 BRIGHT A_CustomMissile("CorruptedGeneral10KProjectile",30,8,random(4,-8),0)
		BCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kcooldown",CHAN_WEAPON)	
		GoTo See
	Pain:
		TNT1 A 0
		BCTH G 3 A_Pain
		GoTo See
	XDeath:
	Death:
		TNT1 A 0
		BCTH GGGG 8 A_PlaySound("monster/homingrockbeep",6)
		BCTH O 3 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 A 0 A_Explode(80,300)
		TNT1 A 0 A_CustomMissile("CorruptedGeneral10KProjectile",30,0,0,2,-90)
		TNT1 AAAAAAA 0 A_CustomMissile("CorruptedGeneral10KProjectile",30,0,random(0,360),2,random(0,360))
		BCTH P 5 A_XScream
		TNT1 A 0 A_NoBlocking
		BCTH QRSTUV 3
		BCTH W 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		BCTH WVUTSRQP 4
		BCTH G 5
		GoTo See
	}
}

ACTOR BlueCatharsiGhostA
{
Height 56
Radius 2
RENDERSTYLE Translucent
Alpha 0.7
+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
		Goto Fade
	Fade:
		BCTH A 2 A_FadeOut(0.1,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor BlueCatharsiGhostB : CatharsiGhostA
{
States
	{
	Fade:
		BCTH B 2 A_FadeOut(0.1,1)
		Loop
	}
}

Actor BlueCatharsiGhostC : CatharsiGhostA
{
States
	{
	Fade:
		BCTH C 2 A_FadeOut(0.1,1)
		Loop
	}
}

Actor BlueCatharsiGhostD : CatharsiGhostA
{
States
	{
	Fade:
		BCTH D 2 A_FadeOut(0.1,1)
		Loop
	}
}