Actor NemesisCatharsi 
{
//Creator: Eshkere_Jason
//Origin: Divine Infinity
//Sprite: NCTH
//Title: "Nemesis Catharsi"
Health 1750
GibHealth 40
Radius 18
Height 56
Speed 15
Mass 400
PainChance 25
BloodColor "Black"
DropItem "NemesisSoulSphere" 70
DropItem "NemesisHealthBonusMax", 256, 32
DropItem "NemesisArmorBonus32", 256
DropItem "NemesisHealthBonusMax", 256, 32
DropItem "NemesisArmorBonus32", 256
DropItem "NemesisPowerSphere" 85
DropItem "NemesisGreaterDemonicEnergy" 200 
DropItem "NemesisDemonicEnergy" 256
DropItem "Nemesis Rifle" 50
DropItem "Legendary Rune", 128, 1
DropItem "Nemesis Plasmatic Cannon" 64
DropItem "Nemesis Plasmatic Rifle" 128
DamageFactor "LegendaryZombie", 0.0
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDTBFGRailgunSlug", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor 0.4
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor "DBFG10K2", 0.65
DamageFactor "PlayerDBFG10K2", 0.65
DamageFactor "DBFG2", 0.65
DamageFactor "PlayerDBFG2", 0.65
DamageFactor "Cyber10K", 0.0
DamageFactor "DemolisherEx", 0.0
DamageFactor "CerChainguns", 0.0
DamageFactor "CerEnergyBall", 0.0
DamageFactor "PlayerNemesisPlasma", 0.0
DamageFactor "Explosion", 0.2
DamageFactor "PlayerDTRG", 0.4
DamageFactor "DTRailgun", 0.4
DamageFactor "PDTPuff", 0.4
DamageFactor "RailG", 0.3
DamageFactor "PlayerPyro", 0.2
DamageFactor "VileFires", 0.0
DamageFactor "DarkDemoEx", 0.0
MONSTER 
+NOTIMEFREEZE
+BOSS
+BOSSDEATH
+FLOORCLIP
+MISSILEMORE
+QUICKTORETALIATE
+NOICEDEATH
+NODROPOFF
+DONTGIB
+NOTARGET
+NORADIUSDMG
+NOFEAR
SeeSound "LegCatharsi/See"
PainSound "LegCatharsi/pain"
DeathSound "LegCatharsi/death"
ActiveSound "LegCatharsi/Act"
Obituary "%o was lazerized by a \c[g3]Nemesis Catharsi.\c-"
Tag "\c[g3]Nemesis Catharsi\c-"
var int user_rush;
var int user_music;
var int user_missile;
var int user_deathtimer;
States
{
Spawn:
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH A 8 Bright A_Look
  Loop
See:
  TNT1 A 0 A_JumpIf(user_music == 1,3)
  TNT1 A 0 ACS_NamedExecuteAlways("InfinityMusic",0,6784,560)
  TNT1 A 0 A_SetUserVar("user_music",1)
  TNT1 A 0 A_SetUserVar("user_missile",0)
  TNT1 A 0 A_SetUserVar("user_rush",0)
  TNT1 A 0 A_Jump(36,"Rush")
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH AA 2 Bright A_Chase
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH BB 2 Bright A_Chase
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH CC 2 Bright A_Chase
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH DD 2 Bright A_Chase
  Loop
Rush:
  TNT1 A 0 A_JumpIf(user_rush == 4,"See")
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItemEx("GhostNemesisCatharsiA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
  TNT1 AA 0 A_Chase
  NCTH A 1 Bright A_Chase
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItemEx("GhostNemesisCatharsiB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
  TNT1 AA 0 A_Chase
  NCTH B 1 Bright A_Chase
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItemEx("GhostNemesisCatharsiC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
  TNT1 AA 0 A_Chase
  NCTH C 1 Bright A_Chase
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItemEx("GhostNemesisCatharsiD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
  TNT1 AA 0 A_Chase
  NCTH D 1 Bright A_Chase
  TNT1 A 0 A_SetUserVar(user_rush,user_rush+1)
  Loop
Missile:
  TNT1 A 0 A_Jump(128,"10K","Cannon","Plasmatic","Railgun","Grenades","Rocket")
10K:
  TNT1 A 0 A_PlaySound("weapons/charge15k")
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  NCTH F 8 Bright A_CustomMissile("Nemesis10kProjectile",30,-3,Random(-12,12))
  NCTH E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  NCTH F 8 Bright A_CustomMissile("Nemesis10kProjectile",30,-3,Random(-12,12))
  NCTH E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  NCTH F 8 Bright A_CustomMissile("Nemesis10kProjectile",30,-3,Random(-12,12))
  NCTH E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  NCTH F 8 Bright A_CustomMissile("Nemesis10kProjectile",30,-3,Random(-12,12))
  NCTH E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  NCTH F 8 A_CustomMissile("Nemesis10kProjectile",30,-3,Random(-12,12))
  NCTH E 11 Bright A_FaceTarget
  Goto See
Cannon:
  TNT1 A 0 A_JumpIf(user_missile == 10,"See")
  NCTH EEEE 2 Bright A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  NCTH E 2 Bright A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_CustomMissile("NemesisRifleShotEnemy",30,-3,Random(-12,12))
  NCTH F 2 Bright A_PlaySoundEx("legendarycannon/fire","Weapon")
  TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
  Loop
Plasmatic:
  TNT1 A 0 A_SetShootable
  TNT1 A 0 A_UnsetInvulnerable
  NCTH E 10 Bright A_FaceTarget
PlasmaticLoop:
  TNT1 A 0 A_JumpIfCloser(350,"10K")
  NCTH E 3 Bright A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_CustomMissile("NemesisZombieCannonProj",30,-3,Random(-12,12),0)
  NCTH F 3 Bright A_PlaySoundEx("BlueDTRFire","Weapon")
  TNT1 A 0 A_SpidRefire
  TNT1 A 0 A_Jump(20,"See")
  TNT1 A 0 A_Jump(20,"Railgun","10K")
  Loop
Railgun:
  TNT1 A 0 A_PlaySound("weapons/rgcharge")
  NCTH E 25 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  NCTH F 5 Bright A_CustomMissile("NemesisRevRailLaser",30,-3,Random(-12,12),0)
  NCTH E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  NCTH F 5 Bright A_CustomMissile("NemesisRevRailLaser",30,-3,Random(-12,12),0)
  NCTH E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  NCTH F 5 Bright A_CustomMissile("NemesisRevRailLaser",30,-3,Random(-12,12),0)
  NCTH E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  NCTH F 5 Bright A_CustomMissile("NemesisRevRailLaser",30,-3,Random(-12,12),0)
  goto see
Grenades:
  NCTH E 4 Bright A_FaceTarget
  NCTH F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  NCTH E 4 Bright A_FaceTarget
  NCTH F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  NCTH E 4 Bright A_FaceTarget
  NCTH F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  NCTH E 4 Bright A_FaceTarget
  NCTH F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  NCTH E 4 Bright A_FaceTarget
  NCTH F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  NCTH E 3 Bright A_FaceTarget
  NCTH F 2 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  TNT1 A 0 A_Jump(87,"10K","Railgun")
  Goto See
Rocket:
  TNT1 A 0 A_PlaySound("weapons/rgcharge")
  NCTH E 25 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  NCTH F 5 Bright A_CustomMissile("NemesisRevRocket",30,-3,Random(-12,12),0)
  NCTH E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  NCTH F 5 Bright A_CustomMissile("NemesisRevRocket",30,-3,Random(-12,12),0)
  NCTH E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  NCTH F 5 Bright A_CustomMissile("NemesisRevRocket",30,-3,Random(-12,12),0)
  NCTH E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  NCTH F 5 Bright A_CustomMissile("NemesisRevRocket",30,-3,Random(-12,12),0)
  NCTH E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  NCTH F 5 Bright A_CustomMissile("NemesisRevRocket",30,-3,Random(-12,12),0)
  goto see
Pain:
  NCTH G 3 Bright A_Pain
  TNT1 A 0 A_Jump(80,"Missile")
  Goto See
Death:
  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("NoVexedBoys") == 1,4)
  TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"VexedSpawn")
  TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"VexedSpawn")
  TNT1 A 0 A_JumpIf(user_deathtimer <= 10,"VexedSpawn")
  NCTH H 4 Bright A_NoBlocking
  NCTH I 4 Bright A_Scream
  NCTH JKL 4 Bright
  NCTH M 4
  NCTH N -1
  Stop
  VexedSpawn:
  NCTH G 3 Bright A_Pain
  NCTH G 0 A_PlaySoundEx("brain/spit",7,0,2)
  NCTH GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
  NCTH GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
  NCTH GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
  TNT1 A 0 A_SpawnItemEx("NemesisLightning")
  NCTH GGGGGGGGGGGG 2 Bright A_SpawnItemEx("VexedNemesisFlameSpawner")
  TNT1 A 0 A_SpawnItemEx("VexedNemesisCatharsi",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TELEFRAG)
  TNT1 A 1
  Stop
XDeath:
  NCTH H 4 Bright A_NoBlocking
  NCTH I 4 Bright A_Scream
  NCTH JKL 4 Bright
  NCTH M 4
  NCTH N -1
  Stop
	}
}

Actor INFNemesisCatharsi : NemesisCatharsi
{
Tag "\c[g3]Nemesis Catharsi\c-"
States
{
  Spawn:
    TNT1 A 0 A_Jump(130,"Remove")
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RuneTier2SpawnCheck") == 2,1)
	Goto Remove
  Idle:
	TNT1 A 0 A_SpawnItem("NemesisHellionSmokeSpawner",0,0,0,0)
    NCTH A 8 Bright A_Look
	Loop
  Remove:
	TNT1 A 1
	TNT1 A 0 A_SpawnItemEx("Imp",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_ChangeFlag("COUNTKILL", FALSE)
	TNT1 A 0
	Stop
	}
}

ACTOR GhostNemesisCatharsiA 
{
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
    TNT1 A 1
    NCTH A 2 A_FadeOut(0.10)
    Goto Fade+1
  Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR GhostNemesisCatharsiB : GhostNemesisCatharsiA
{   
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
    TNT1 A 1
    NCTH B 2 A_FadeOut(0.10)
    Goto Fade+1
    }
}

ACTOR GhostNemesisCatharsiC : GhostNemesisCatharsiA
{   
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
    TNT1 A 1
    NCTH C 2 A_FadeOut(0.10)
    Goto Fade+1
    }
}

ACTOR GhostNemesisCatharsiD : GhostNemesisCatharsiA
{   
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
    TNT1 A 1
    NCTH D 2 A_FadeOut(0.10)
    Goto Fade+1
    }
}

ACTOR GhostNemesisCatharsiE : GhostNemesisCatharsiA
{   
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
    TNT1 A 1
    NCTH E 2 A_FadeOut(0.10)
    Goto Fade+1
    }
}

ACTOR GhostNemesisCatharsiF : GhostNemesisCatharsiA
{   
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
    TNT1 A 1
    NCTH F 2 A_FadeOut(0.10)
    Goto Fade+1
    }
}