Actor LegendaryCatharsi
{
//Creator: Trusar
//Origin: Nexus Infinity
//Sprite: LFRC
//Title: "Legendary Catharsi"
Health 1200
GibHealth 40
Radius 18
Height 56
Speed 10
Mass 400
PainChance 40
BloodColor "Blue"
DropItem "LegendarySphere" 160 1
DropItem "LegendaryRune" 128 1
DropItem "LegGreaterDemonicEnergy" 256
DropItem "LegDemonicEnergy" 256
DropItem "BossLifeEssence" 256
DropItem "BossArmorBonusMax" 256
DropItem "Legendary Plasmatic Cannon" 64
DropItem "Legendary 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.675
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 "PlayerDTRG", 0.5
DamageFactor "Cyber10K", 0.0
DamageFactor "DemolisherEx", 0.0
DamageFactor "DarkDemoEx", 0.0
DamageFactor "CerChainguns", 0.0
DamageFactor "CerEnergyBall", 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 Legendary Catharsi."
Tag "\c[z3]Legendary Catharsi\c-"
var int user_rush;
var int user_music;
var int user_missile;
States
{
Spawn:
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC A 8 Bright A_Look
  Loop
See:
  TNT1 A 0 A_JumpIf(user_music == 1,3)
  TNT1 A 0 ACS_NamedExecuteAlways("InfinityMusic",0,2057,3)
  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("LHellionSmokeSpawner",0,0,0,0)
  LFRC AA 2 Bright A_Chase
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC BB 2 Bright A_Chase
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC CC 2 Bright A_Chase
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC DD 2 Bright A_Chase
  Loop
Rush:
  TNT1 A 0 A_JumpIf(user_rush == 4,"See")
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItemEx("LegFormGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
  TNT1 AA 0 A_Chase
  LFRC A 1 Bright A_Chase
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItemEx("LegFormGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
  TNT1 AA 0 A_Chase
  LFRC B 1 Bright A_Chase
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItemEx("LegFormGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
  TNT1 AA 0 A_Chase
  LFRC C 1 Bright A_Chase
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItemEx("LegFormGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
  TNT1 AA 0 A_Chase
  LFRC 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")
15K:
  TNT1 A 0 A_PlaySound("weapons/charge15k")
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC F 8 Bright A_CustomMissile("LCatharsiBall",30,-3)
  LFRC E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC F 8 Bright A_CustomMissile("LCatharsiBall",30,-3)
  LFRC E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC F 8 Bright A_CustomMissile("LCatharsiBall",30,-3)
  LFRC E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC F 8 Bright A_CustomMissile("LCatharsiBall",30,-3)
  LFRC E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC F 8 Bright A_CustomMissile("LCatharsiBall",30,-3)
  LFRC E 11 Bright A_FaceTarget
  Goto See
10K:
  TNT1 A 0 A_PlaySound("weapons/charge15k")
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC E 4 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  LFRC F 8 Bright A_CustomMissile("LFRCharsi10KProjectile",30,-3,Random(-12,12))
  LFRC E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  LFRC F 8 Bright A_CustomMissile("LFRCharsi10KProjectile",30,-3,Random(-12,12))
  LFRC E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  LFRC F 8 Bright A_CustomMissile("LFRCharsi10KProjectile",30,-3,Random(-12,12))
  LFRC E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  LFRC F 8 Bright A_CustomMissile("LFRCharsi10KProjectile",30,-3,Random(-12,12))
  LFRC E 5 Bright A_FaceTarget
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
  LFRC F 8 A_CustomMissile("LFRCharsi10KProjectile",30,-3,Random(-12,12))
  LFRC E 11 Bright A_FaceTarget
  Goto See
Cannon:
  TNT1 A 0 A_JumpIf(user_missile == 5,"See")
  LFRC EEEE 2 Bright A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  LFRC E 2 Bright A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_CustomMissile("LegCatharsiCannonBall",30,-3,Random(-12,12))
  LFRC 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
  LFRC E 10 Bright A_FaceTarget
PlasmaticLoop:
  TNT1 A 0 A_JumpIfCloser(350,"10K")
  LFRC E 3 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_CustomMissile("LegendaryProjectile",30,-3,Random(-12,12),0)
  LFRC 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","15k")
  Loop
Railgun:
  TNT1 A 0 A_PlaySound("weapons/rgcharge")
  LFRC E 25 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  LFRC F 5 Bright A_CustomMissile("LegCatharsiRail",30,-3,Random(-12,12),0)
  LFRC E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  LFRC F 5 Bright A_CustomMissile("LegCatharsiRail",30,-3,Random(-12,12),0)
  LFRC E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  LFRC F 5 Bright A_CustomMissile("LegCatharsiRail",30,-3,Random(-12,12),0)
  LFRC E 10 Bright A_FaceTarget
  TNT1 A 0 A_FaceTarget
  TNT1 A 0 A_PlaySound("monsters/darkcyberrail",CHAN_WEAPON)
  LFRC F 5 Bright A_CustomMissile("LegCatharsiRail",30,-3,Random(-12,12),0)
  goto see
Grenades:
  LFRC E 4 Bright A_FaceTarget
  LFRC F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  LFRC E 4 Bright A_FaceTarget
  LFRC F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  LFRC E 4 Bright A_FaceTarget
  LFRC F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  LFRC E 4 Bright A_FaceTarget
  LFRC F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  LFRC E 4 Bright A_FaceTarget
  LFRC F 3 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  LFRC E 3 Bright A_FaceTarget
  LFRC F 2 Bright A_CustomMissile("LegCatharsiGrenade",30,-3,Random(-12,12),0)
  TNT1 A 0 A_Jump(87,"15K","10K","Railgun")
  Goto See
Pain:
  LFRC G 3 Bright A_Pain
  TNT1 A 0 A_Jump(80,"Missile")
  Goto See
Death:
  TNT1 A 0
  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("TrueLegMode") == 0,3)
  TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"TrueLeg")
  TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"TrueLeg")
  TNT1 A 0 A_Jump(40,"TrueLeg")
Death2:
  LFRC H 4 Bright A_NoBlocking
  LFRC I 4 Bright A_Scream
  LFRC JKL 4 Bright
  LFRC M 4
  TNT1 A 0 A_Jump(164,3)
  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("SignetAvaliableTokensCheck") == 2,2)
  TNT1 A 0 A_JumpIfInTargetInventory("SignetActiveToken",1,"SignetResurrect")
  LFRC N -1
  Stop
TrueLeg:
  LFRC H 4 
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC I 4 A_SetTranslucent(1)
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC J 4
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC K 4 A_Scream
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC L 6 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC M 6 A_Fall
  TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC N 140
  LFRC N 0 A_PlaySoundEx("brain/spit","Voice",0,2)
  LFRC NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 2 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  LFRC N 5 A_SpawnItem("BlueLightning")
  TFRC NMLKJIH 15 Bright
  TNT1 A 0 A_SpawnItemEx("TrueLegendaryCatharsi",0,0,16,0,0,0,0,32)
  TNT1 A 1
  Stop
XDeath:
  TNT1 A 0 A_Scream
  TNT1 AA 0 A_CustomMissile("LegendaryDRuneFlameSpawner",-20,0,random(0,-360),2,random(0,360)) 
  LFRC G 2 A_PlaySound("monster/homingrockbeep",6)
  TNT1 AA 0 A_CustomMissile("LegendaryDRuneFlameSpawner",-20,0,random(0,-360),2,random(0,360)) 
  LFRC G 2 A_PlaySound("monster/homingrockbeep",6)
  TNT1 AA 0 A_CustomMissile("LegendaryDRuneFlameSpawner",-20,0,random(0,-360),2,random(0,360)) 
  LFRC G 2 A_PlaySound("monster/homingrockbeep",6)
  TNT1 AA 0 A_CustomMissile("LegendaryDRuneFlameSpawner",-20,0,random(0,-360),2,random(0,360)) 
  LFRC G 2 A_PlaySound("monster/homingrockbeep",6)
  TNT1 AA 0 A_CustomMissile("LegendaryDRuneFlameSpawner",-20,0,random(0,-360),2,random(0,360)) 
  LFRC G 2 A_PlaySound("monster/homingrockbeep",6)
  TNT1 AA 0 A_CustomMissile("LegendaryDRuneFlameSpawner",-20,0,random(0,-360),2,random(0,360)) 
  LFRC G 2 A_PlaySound("monster/homingrockbeep",6)
  TNT1 AA 0 A_CustomMissile("LegendaryDRuneFlameSpawner",-20,0,random(0,-360),2,random(0,360)) 
  LFRC G 2 A_PlaySound("monster/homingrockbeep",6)
  TNT1 AA 0 A_CustomMissile("LegendaryDRuneFlameSpawner",-20,0,random(0,-360),2,random(0,360)) 
  LFRC G 7 A_PlaySound("monster/homingrockbeep",6)
  TNT1 A 0 A_PlaySound("weapons/dtech10kexplode")
  TNT1 A 0 A_NoBlocking
  TNT1 A 0 A_Explode(100,200)
  LFRC N 4 A_SpawnItem("TLegCybDTBFGEx",0,-10)
  LFRC OPQRSTUV 4
  LFRC W -1
  Stop
SignetResurrect:
  TNT1 A 0 A_GiveToTarget("ResurrectedMonsters",1)
  TNT1 A 0 Thing_ChangeTID(0,ACS_NamedExecuteWithResult("SignetTargetID"))
  LFRC N 100 A_ChangeFlag(FRIENDLY,1)
  LFRC N 200 A_SpawnItem("SignetRessurectionFire")
  LFRC N 40 Bright A_SpawnItem("SignetRessurectionFlame")
  //LEGN N 0 A_PlaySoundEx("TLegZomb/Resurrect",7,0,0.4)
  LFRC NMLKJIH 15 Bright
  TNT1 A 3 A_SpawnItemEx("FriendlyLegendaryCatharsi",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,tid-2)
  TNT1 A 1
  Stop
}
}

Actor LCatharsiBall : LFormicidaeBall { Damage 10 ExplosionDamage 32 Species "Imps" }

Actor LFRCharsi10KProjectile : TrueLegendary10KProjectile
{
Speed 30
Damage 10
ExplosionDamage 32
ExplosionRadius 100
Species "Imps"
States
{
Death:
   XDeath:  
      TNT1 A 0
      TNT1 A 1 A_SpawnItem("LegCatharsi10KEx")
      Stop
	  }
}

ACTOR LegCatharsi10KEx : LegCyber10KEx
{
  Damage 20
  Species "Imps"
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("BFGShockwaveBlue", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AA 0 A_SpawnItemEx("LegendaryBlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 AAAA 0 A_CustomMissile("KaboomBlue2", 0, 0, random(0,360), 2, random(0,360))
    TBE1 A 4 Bright A_Detonate
    TBE1 BCDEF 4 Bright
    Stop
  }
}

Actor LegCatharsiCannonBall : LegBehCannonProj {DamageType "Legendary"}
Actor LegCatharsiRail : TrueLegendaryCyberRail {Damage 60}

ACTOR LegCatharsiGrenade : RifleGrenade
{
  Radius 6
  Height 6
  Speed 30
  Damage 32
  Species "Imps"
  Scale 0.75
  Projectile
  +DONTSPLASH
  +THRUSPECIES
  +DOOMBOUNCE
  -NOGRAVITY
  -GRENADETRAIL
  -ROCKETTRAIL
  +NOTIMEFREEZE
  Gravity 0.4
  WallBounceFactor 0.25
  BounceFactor 0.36
  ExplosionDamage 80
  ExplosionRadius 140
  SeeSound "Weapons/GrenadeBounce"
  DeathSound "Weapons/RockLX"
  DamageType "ImpComet"
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_StopSound
  SpawnLoop:
    LRND A 1 Bright A_CustomMissile("GrenadeTrail",Random(-1,1),Random(-1,1))     		
    Loop
  Death:
  	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("LegendaryBlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
    TNT1 AAA 0 A_CustomMissile("BlueKaboom3", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAAA 0 A_SpawnItemEx("LegendaryDebris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
    TNT1 A 0 A_Explode
    TNT1 A 1 A_SpawnItem("LegendaryBlueRocketEx")
    Stop	
    }
}