Actor "Dark Catharsi"
{
MONSTER
Health 450
Height 56
Radius 18
Mass 100
Speed 6
BloodColor "Green"
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 "HEMArmorBonusMax20", 185
DropItem "NewCell" 256
DropItem "NewCellPack" 128
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[l2]Dark Catharsi\c-"
States
	{
	Spawn:
		DCTH A 10 A_Look
		DCTH A 0 A_Jump(30,1)
		Loop
		DCTH A 0 A_PlaySound("catharsi/idle")
		Loop
	See:
		DCTH AABB 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
		DCTH 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:
		DCTH A 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("CatharsiGhostA",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCTH A 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("CatharsiGhostA",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCTH B 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("CatharsiGhostB",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCTH B 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("CatharsiGhostB",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
		DCTH C 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("CatharsiGhostC",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCTH C 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("CatharsiGhostC",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCTH D 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("CatharsiGhostD",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCTH D 1 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("CatharsiGhostD",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
		//TNT1 A 0 A_ChangeFlag(NoTarget,1)
		//TNT1 A 0 A_CustomMissile("BribeCaco",1,0,0,2,-90)
		DCTH E 1 A_Jump(30,"BFG10K")
		DCTH EEEEE 3 A_FaceTarget
		//TNT1 A 0 A_ChangeFlag(NoTarget,0)
	MissileLoop:
		DCTH E 2
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
		DCTH F 2 BRIGHT A_CustomMissile("Catharsi15K",30,8,random(4,-8),0)
		DCTH EE 2 A_FaceTarget
		DCTH E 1 A_Jump(32,"Break")
		DCTH E 1 A_CPosRefire
		Loop
	Break:
		DCTH E 15
		GoTo See
	BFG10K:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("weapons/charge15k",CHAN_WEAPON)
		DCTH EEEEE 6 A_FaceTarget
		//TNT1 A 0 A_ChangeFlag(NoTarget,0)
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		DCTH F 3 BRIGHT A_CustomMissile("Catharsi10K",30,8,random(4,-8),0)
		DCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		DCTH F 3 BRIGHT A_CustomMissile("Catharsi10K",30,8,random(4,-8),0)
		DCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		DCTH F 3 BRIGHT A_CustomMissile("Catharsi10K",30,8,random(4,-8),0)
		DCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		DCTH F 3 BRIGHT A_CustomMissile("Catharsi10K",30,8,random(4,-8),0)
		DCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		DCTH F 3 BRIGHT A_CustomMissile("Catharsi10K",30,8,random(4,-8),0)
		DCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON)
		DCTH F 3 BRIGHT A_CustomMissile("Catharsi10K",30,8,random(4,-8),0)
		DCTH EEE 2 A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("weapons/bfg15kcooldown",CHAN_WEAPON)	
		GoTo See
	Pain:
		TNT1 A 0
		DCTH G 3 A_Pain
		GoTo See
	XDeath:
	Death:
		TNT1 A 0
		DCTH GGGG 8 A_PlaySound("monster/homingrockbeep",6)
		DCTH O 3 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 A 0 A_Explode(80,300)
		TNT1 A 0 A_CustomMissile("Catharsi10K",30,0,0,2,-90)
		TNT1 AAAAAAA 0 A_CustomMissile("Catharsi10K",30,0,random(0,360),2,random(0,360))
		DCTH P 5 A_XScream
		TNT1 A 0 A_NoBlocking
		DCTH QRSTUV 3
		DCTH W 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		DCTH WVUTSRQP 4
		DCTH G 5
		GoTo See
	}
}

Actor Catharsi15k
{
Projectile
Height 15
Radius 15
Speed 35
Scale 0.5
RenderStyle Add
Alpha 0.75
ExplosionDamage 20
ExplosionRadius 134
Damage 5
+RANDOMIZE
+FORCERADIUSDMG
+STRIFEDAMAGE
+THRUSPECIES
+MTHRUSPECIES
+DONTHARMSPECIES
Damagetype "Catharsi15k"
SeeSound "weapons/bfg15kfire"
DeathSound "weapons/bfg95explode"
States
	{
	Spawn:
		BFS1 AB 2 Bright A_SpawnItemEx("BFGTrailParticleGreen",Random(-8,8),Random(-8,8),Random(-8,8),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),128)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("BFGShockwave",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SpawnItemEx("GreenParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom13",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		//TNT1 A 0 Bright A_BFGSpray("CatharsiCustomSpray",20,7) //FUCKING WHY
		BFE1 A 4 Bright A_Explode
		BFE1 BCDEF 4 Bright
		Stop
	}
}

ACTOR Catharsi10K : FastProjectile
{
PROJECTILE
Height 1
Radius 1
Speed 200
Scale 0.15
RenderStyle Add
Alpha 0.85
+NOEXTREMEDEATH
+THRUSPECIES
+DONTHARMSPECIES
DamageType "Catharsi10K"
DeathSound "weapons/bfg95explode"
Obituary "%o was reduced to chars by a Dark Catharsi."
States
	{
	Spawn:
		TRA2 A 1 Bright
		Loop
	Death:
	XDeath:  
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("Catharsi10KEx",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		Stop
	}
}

ACTOR Catharsi10KEx
{
Height 8
Radius 11
Scale 0.85
Renderstyle Add
Alpha 0.75
Damage (80)
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+FORCERADIUSDMG
+THRUSPECIES
+DONTHARMSPECIES
DamageType "Catharsi10K"
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BFGShockwave",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AA 0 A_SpawnItemEx("GreenParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAA 0 A_CustomMissile("Kaboom13",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		BFE1 A 4 Bright A_Detonate
		BFE1 BCDEF 4 Bright
		Stop
	}
}

ACTOR CatharsiGhostA
{
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:
		DCTH A 2 A_FadeOut(0.1,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

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

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

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