Actor EnragedLegendarySoul 
{
//$Category Monsters/ILCA
//$Sprite ESOLA1
//$Title "Enraged Legendary Soul"
Monster
Health 900
Radius 16
Height 56
Mass 100
Speed 15
Damage 14
PainChance 50
+FLOAT
+NOGRAVITY
+NOTARGET
+NOINFIGHTING
+BOSS
+AVOIDMELEE
+NOTIMEFREEZE
+MISSILEMORE
+MISSILEEVENMORE
+NOICEDEATH
+DONTGIB
+NOTELEFRAG
+QUICKTORETALIATE
+DONTHARMSPECIES
+DONTHURTSPECIES
+NORADIUSDMG
+EXTREMEDEATH
+DONTRIP
+DONTFALL
+NOFEAR
BloodColor "Red"
Species "Souls"
DamageFactor 0.7
DamageFactor "SoulToxic", 0.0
DamageFactor "BombBreath", 0.0
DamageFactor "Legendary1", 0.0
DamageFactor "LegendaryPlayer", 0.0
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LegendaryGuruPlayer", 0.1
DamageFactor "PDTBFG", 0.10
DamageFactor "PDTBFGTracer", 0.10
DamageFactor "PlayerDevBall", 0.110
DamageFactor "PlayerDevBall2", 0.110
DamageFactor "PlayerDTBFGRailgunSlug", 0.110
DamageFactor "PlayerDevTracer", 0.110
DamageFactor "DBFG10K2", 0.65
DamageFactor "PlayerDBFG10K2", 0.65
DamageFactor "DBFG2", 0.65
DamageFactor "PlayerDTRG", 0.5
DamageFactor "PlayerDBFG2", 0.65
DropItem "EnragedLegendarySphere" 70 1
DropItem "EnragedLegendaryArmor" 90 1
DropItem "ILDemonAmmoBox" 120
DropItem "ILDemonAmmo" 240
DropItem "ILDemonAmmo" 200
DropItem "ILDemonAmmo" 90
DropItem "LegendaryBossLifeEssence" 256
DropItem "LegendaryBossArmorBonusMax" 256
DropItem "LegendaryBossLifeEssence" 128
DropItem "LegendaryBossArmorBonusMax" 128
DropItem "Enraged Legendary Plasmatic Rifle" 6 1
SeeSound "legsoul/see"
PainSound "legsoul/pain"
DeathSound "legsoul/death"
ActiveSound "legsoul/idle"
AttackSound "legsoul/attack"
Obituary "%o wasn't aware of the volatility of an Enraged Legendary Soul."
Tag "\c[m6]Enraged\c- \c[z3]Legendary Soul\c-"
Scale 1.2
var int user_delay;
var int user_music;
var int user_ragewait;
States
{
  Spawn:
    TNT1 A 0 A_SpawnItem("EnragedHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
    ESOL A 2 Bright A_Look
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
    ESOL A 2 Bright A_Look
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
    ESOL A 2 Bright A_Look
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
    ESOL A 2 Bright A_Look
    Loop
  See:
    TNT1 A 0 A_JumpIf(user_music == 1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,409)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_SpawnItem("EnragedHellionSmokeSpawner")
	ESOL A 0 A_UnSetInvulnerable
    ESOL A 2 Bright A_Chase
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
	ESOL A 2 Bright A_Chase
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
	ESOL A 2 Bright A_Chase
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
	TNT1 A 0 A_Jump(68,"Avoid","Rush","Teleport")
    Loop	
  Rush:
    TNT1 A 0
	ESOL A 0 A_Chase
    ESOL A 1 Bright A_SpawnItemEx("ELegSoulGhost")
	TNT1 A 0 A_Jump(12,"See")	
    Loop
  Avoid:
	ESOL A 0
	ESOL A 0 A_SetAngle(angle+random(-80,80))
	ESOL A 0 A_Recoil(-55)
	ESOL A 0 A_FaceTarget
  AvoidLoop:
    TNT1 A 0 A_JumpIf(user_delay == 12,"AvoidEnd")
	ESOL A 1 Bright A_SpawnItemEx("ELegSoulGhost2")
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
	TNT1 A 0 A_SetUserVar(user_delay,user_delay+1)
	Loop
  AvoidEnd:
    TNT1 A 0 A_SetUserVar(user_delay,0)
	TNT1 A 0 A_Jump(186,"See")
	ESOL A 1 Bright A_Stop
    Goto Avoid
  Teleport:
    ESOL A 1 Bright A_UnSetShootable
	ESOL AAAAAAAAAAA 1 A_FadeOut(0.1,0)
	ESOL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
    ESOL A 1 A_PlayWeaponSound("boss/teleport")
	ESOL AAAAAAAAAAA 1 A_FadeIn(0.1)
    ESOL A 1 Bright A_SetShootable
    Goto See
  Missile:
    TNT1 A 0 A_SetTranslucent(1)
    TNT1 A 0 A_Jump(16,"Super")
	TNT1 A 0 A_Jump(40,"Rage")
	TNT1 A 0 A_Jump(127,"Proj")
  Normal:
	ESOL B 10 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("EnragedHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
	ESOL B 2 Bright A_SkullAttack(50)
	TNT1 A 0 A_SpawnItem("EnragedHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
	ESOL B 2 Bright A_CposRefire
	TNT1 A 0 A_SpawnItem("EnragedHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
	ESOL B 2 Bright A_CposRefire
	TNT1 A 0 A_SpawnItem("EnragedHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItem("ESoulFireSpawner")
	TNT1 A 0 A_JumpIf(velx != 0 || vely != 0,2)
	TNT1 A 0 A_Jump(188,"See")
	TNT1 A 0 A_Jump(16,"See")
	ESOL B 2 Bright A_CposRefire
	Goto Normal+1	
  Proj:
   	ESOL BBB 3 Bright A_FaceTarget
	ESOL B 0 A_FaceTarget
	ESOL B 4 Bright A_CustomMissile("ELegSoulBall",20,0,random(-3,3))
	ESOL B 0 A_FaceTarget
	ESOL B 4 Bright A_CustomMissile("ELegSoulBall",20,0,random(-3,3))
	ESOL B 0 A_FaceTarget
	ESOL B 4 Bright A_CustomMissile("ELegSoulBall",20,0,random(-3,3))
	ESOL B 0 A_FaceTarget
	ESOL B 4 Bright A_CustomMissile("ELegSoulBall",20,0,random(-3,3))
	ESOL B 0 A_FaceTarget
	ESOL B 4 Bright A_CustomMissile("ELegSoulBall",20,0,random(-3,3))
	ESOL B 0 A_FaceTarget
	ESOL B 4 Bright A_CustomMissile("ELegSoulBall",20,0,random(-3,3))
	Goto See
  Rage:	
    TNT1 A 0 A_JumpIfHealthLower(300,"Kamikaze")
    ESOL B 1 Bright A_JumpIfCloser(1500,1)
    Goto Normal
    ESOL B 1 Bright A_PlaySound("legsoul/see")
	ESOL B 0 A_SetInvulnerable
	ESOL B 1 Bright A_FaceTarget
  RageWait:
    TNT1 A 0 A_JumpIf(user_ragewait >= 20,"RageGo")
	TNT1 A 0 A_FaceTarget
	ESOL B 2 Bright A_SpawnItem("ELFiendFlameSpawner")
	TNT1 A 0 A_SetUserVar("user_ragewait",user_ragewait+1)
	Loop
  RageGo:
    TNT1 A 0 A_SetUserVar("user_ragewait",0) 
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_CustomMissile("ELegSoulCharge",18,0,0,CMF_AIMDIRECTION)
	TNT1 A 0 A_SpawnItemEx("ELegSoulGhost2")
	TNT1 A 0 A_SpawnItem("ELFiendFlameSpawner",0,0,0,0)
	ESOL B 2 Bright A_SkullAttack(85)
	TNT1 A 0 A_CustomMissile("ELegSoulCharge",18,0,0,CMF_AIMDIRECTION)
	TNT1 A 0 A_SpawnItemEx("ELegSoulGhost2")
	TNT1 A 0 A_SpawnItem("ELFiendFlameSpawner",0,0,0,0)
	ESOL B 2 Bright A_CposRefire
	TNT1 A 0 A_CustomMissile("ELegSoulCharge",18,0,0,CMF_AIMDIRECTION)
	TNT1 A 0 A_SpawnItemEx("ELegSoulGhost2")
	TNT1 A 0 A_SpawnItem("ELFiendFlameSpawner",0,0,0,0)
	ESOL B 2 Bright A_CposRefire
	TNT1 A 0 A_CustomMissile("ELegSoulCharge",18,0,0,CMF_AIMDIRECTION)
	TNT1 A 0 A_SpawnItemEx("ELegSoulGhost2")
	TNT1 A 0 A_SpawnItem("ELFiendFlameSpawner",0,0,0,0)
	ESOL B 2 Bright A_CposRefire
	Goto RageGo+3
  Super:
  	TNT1 A 0 Bright A_PlaySound("legsoul/see")
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_FaceTarget
  SuperWait:
    TNT1 A 0 A_JumpIf(user_ragewait >= 22,"SuperGo")
	ESOL B 2 Bright A_SpawnItem("LSoulFlameSpawner")
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_ragewait",user_ragewait+1)
	Loop
  SuperGo:
	TNT1 A 0 A_Jump(128,"Super2")
	TNT1 A 0 A_SetUserVar("user_ragewait",0) 
	ESOL B 4 Bright A_CustomMissile("ELegSoulBigBall",20,0,0)
	ESOL B 8 A_UnSetInvulnerable
    Goto RageGo
  Super2:
    TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_SetUserVar("user_ragewait",0) 
	ESOL B 4 Bright A_CustomMissile("ELegSoul15K",20)
	ESOL B 8 A_FaceTarget
	ESOL B 4 Bright A_CustomMissile("ELegSoul15K",20)
	ESOL B 8 A_FaceTarget
	ESOL B 4 Bright A_CustomMissile("ELegSoul15K",20)
    Goto See
  Kamikaze:
	ESOL B 1 Bright A_PlaySound("legsoul/see")
	ESOL B 0 A_SetInvulnerable
	ESOL B 1 Bright A_FaceTarget
  KamikazeWait:
    TNT1 A 0 A_JumpIf(user_ragewait >= 38,"KamikazeGo")
	TNT1 A 0 A_SetUserVar("user_ragewait",user_ragewait+1)
	ESOL B 0 A_FaceTarget
	TNT1 A 0 Radius_Quake(4,2,0,80,0)
	ESOL B 2 Bright A_SpawnItem("ELFiendFlameSpawner")
	Loop
  KamikazeGo:
    TNT1 A 0 A_Jump(64,"KamikazeSuper")
    TNT1 A 0 A_ChangeFlag(NOINTERACTION,1)
    TNT1 A 0 A_CustomMissile("ELegSoulKamikaze")
	TNT1 A 1 A_ChangeFlag(COUNTKILL,0)
	Stop
  KamikazeSuper:
    TNT1 A 0 A_JumpIf(user_ragewait >= 76,"KamikazeSuperGo")
	TNT1 A 0 A_SetUserVar("user_ragewait",user_ragewait+1)
	ESOL B 0 A_FaceTarget
	TNT1 A 0 Radius_Quake(8,2,0,80,0)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner")
	TNT1 AAAA 0 A_SpawnItemEx("SentientBrainLightning2",Random(-1,1),Random(-1,1),9)
	ESOL B 2 Bright A_SpawnItem("ELFiendFlameSpawner")
	Loop
  KamikazeSuperGo:
    TNT1 A 0 A_ChangeFlag(NOINTERACTION,1)
    TNT1 A 0 A_CustomMissile("ELegSoulKamikazeSuper")
	TNT1 A 1 A_ChangeFlag(COUNTKILL,0)
	Stop
  Pain:
    TNT1 A 0
	TNT1 A 0 A_KillChildren
    TNT1 A 0 A_Jump(8,"Super")	
  	TNT1 A 0 A_Jump(21,"Teleport")	
	TNT1 A 0 A_Jump(128,"PainMissile")
    ESOL C 2 Bright
    ESOL C 2 Bright A_Pain
    Goto See
  PainMissile: 
    ESOL C 2 Bright
    ESOL C 2 Bright A_Pain
    Goto Missile
  Death:
    TNT1 A 0
    TNT1 A 0 A_SetTranslucent(0.75,1)
	ESOL D 0 A_Scream
    ESOL DDDDEEEE 2 Bright A_SpawnItemEx("EKaboomLN",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("ESoulPart1",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
	TNT1 A 0 A_SpawnItemEx("ESoulPart2",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
	TNT1 AA 0 A_SpawnItemEx("ESoulPart3",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
    ESOL F 4 Bright
	TNT1 A 0 A_Explode(480,240)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(15,20,0,20,0)
	TNT1 A 0 A_PlaySound("weapons/dtech10kexplode")
	TNT1 A 0 A_SpawnItemEx("DTech10KShockwave",0,0,15,0,0,0,0,128)
    TNT1 AA 0 A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,128) 
	TNT1 A 0 A_SpawnItem("RedDTBFGEx",0,-10)
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),2,random(0,360))
	TNT1 AAAA 0 A_SpawnItemEx("EKaboomLN",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
    ESOL G 4 Bright A_NoBlocking
	TNT1 AAAA 0 A_SpawnItemEx("EKaboomLN",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
    ESOL H 4 Bright
    Stop
  }
}

ACTOR ESoulFire : CardinalFire
{
Scale 0.3
States
{
Spawn:
EMKE ABCDEFGHIJKL 2 Bright A_FadeOut
Stop
}
}

ACTOR ESoulFireEx : Kaboom3
{
Scale 0.2
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
EXPO AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05)
Stop
}
}

ACTOR ESoulFireSpawner : RedParticleSpawner
{
States
{
Spawn:
  TNT1 A 0	
  TNT1 A 0 A_PlaySound("monster/ambientfire3")
  TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
  TNT1 A 0 A_SpawnItemEx("ESoulFireEx",random(-8,-4),random(-4,4),random(7,12),0,0,random(2,4),0,128)
  TNT1 AAAA 0 A_SpawnItemEx("ESoulFire",random(-8,-4),random(-4,4),random(7,12),0,0,random(2,4),0,128)
  TNT1 A 1
    Stop
  }
}

ACTOR ELegSoulBall : LegSoulBall
{
Damage 8
States
{
  Spawn:
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleRed",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	ESA1 AB 3 Bright
	TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleRed",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	ESA1 CD 3 Bright
    Loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("EKaboomLN2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
    ESA1 EFGHIJ 3 Bright
    Stop
  }
}

Actor ELegSoulBigBall : LegSoulBigBall
{
Damage 36 //damage was already bloated as hell
States
{
  Spawn:
	ESA2 ABCD 2 Bright A_SpawnItemEx("ELegSoulBigBallTrail",0,0,2,0,0,0,0,128,0)
	Loop
  Death:
  
  	TNT1 A 0 A_SpawnItemEx("BFGShockwaveRed", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 AAAAAA 0 A_CustomMissile("EKaboomLN", 0, 0, random(0,360), 2, random(0,360))
    TNT1 AAA 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(356,320,0) //like jesus christ, it's a soul, Blood
	ESA2 EFG 4 Bright
	Stop
 }
}

ACTOR ELegSoul15k : BFG15KBall 
{
Damage 30
Speed 37
States
{
Spawn:
    EFS1 AB 2 Bright A_SpawnItemEx("RedParticleSpawner",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
    TNT1 A 0 A_SpawnItemEx("BFGShockwaveRed", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
	TNT1 AAA 0 A_CustomMissile("Kaboom14", 0, 0, random(0,360), 2, random(0,360))      
    EFE1 A 4 Bright A_Explode	
    EFE1 BCDEF 4 Bright
    Stop
    }
}

ACTOR ELegSoulBigBallTrail : BFG9500Trail
{
Scale 2.9
Alpha 0.67
+NOTIMEFREEZE
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1
    ESA2 ABCDABCD 2 A_FadeOut(0.1)
	Stop
    }
}

ACTOR ELegSoulGhost : LegendarySoulGhost
{
Scale 1.25
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 0
	TNT1 A 0
Fade:
    TNT1 A 1
    ESOL A 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR ELegSoulGhost2 : ELegSoulGhost
{
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 0
	TNT1 A 0
Fade:
    TNT1 A 0
    TNT1 A 1
    ESOL C 2 A_FadeOut(0.10)
    Goto Fade+2
    }
}

ACTOR ELegSoulCharge : BigLFLunge
{
Damagetype "SoulToxic"
States
{
Spawn:
TNT1 A 2
TNT1 A 1 A_Explode(68,412,0)
Stop
Death:
TNT1 A 2
TNT1 A 1 A_Explode(68,412,0)
Stop
}
}

ACTOR ELSoulFlameSpawner : LegendaryRedParticleSpawner
{
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 AAAAAA 0 A_SpawnItemEx("ELFiendFlame",random(20,-20),random(20,-20),random(40,80),0,0,random(2,6),0,128,0)
    TNT1 A 1
    Stop
  Toaster:
    TNT1 A 0
	Stop		
  }
}


Actor ELegSoulEvent : LegZombieStrafing
{
+FORCERADIUSDMG
States
{
  Pickup:
    NULL A 1 
	NULL A 1 A_SpawnItem("ELegSoulEventSmokeSpawner")
	NULL A 1 A_Explode(3,128)
    Stop	
  }
}
ACTOR ELegSoulEventSmokeSpawner : LegendaryRedParticleSpawner
{
States
{
  Spawn:
    TNT1 A 0
    TNT1 AAA 0 A_SpawnItemEx("ELegSoulEventSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,128,0)
    TNT1 A 1
    Stop
  }
}

ACTOR ELegSoulEventSmoke
{
+MISSILE
+DONTSPLASH
+NOBLOCKMAP
+NOGRAVITY
+NOTELEPORT
+FORCEXYBILLBOARD
+THRUACTORS
+NOTIMEFREEZE
Scale 0.4
RenderStyle Normal
States
{
  Spawn:
	EMKE ABCDEFGHIJKL 2 Bright A_FadeOut
	Stop
}
}

ACTOR ESoulPart1 : SoulPart1
{
SeeSound ""
States
{
Spawn:
EGI1 ABCDEFGH 4
Loop
Death:
Crash:
EGI1 E 150
EGI1 E 5 A_FadeOut(0.10)
Goto Death+1
}
}

ACTOR ESoulPart2 : SoulPart1
{
States
{
Spawn:
EGI2 ABCDEFGH 4
Loop
Death:
Crash:
EGI2 D 150
EGI2 D 5 A_FadeOut(0.10)
Goto Death+1
}
}

ACTOR ESoulPart3 : SoulPart1
{
States
{
Spawn:
EGI3 ABCDEFGH 4
Loop
Death:
Crash:
EGI3 A 150
EGI3 A 5 A_FadeOut(0.10)
Goto Death+1
}
}

ACTOR ELegSoulKamikaze
{
Radius 16
Height 56
Health 100
Damage 50
Speed 45
Scale 1.2
DropItem "EnragedLegendarySphere" 70 1
DropItem "EnragedLegendaryArmor" 90 1
DropItem "ILDemonAmmoBox" 120
DropItem "ILDemonAmmo" 240
DropItem "ILDemonAmmo" 200
DropItem "ILDemonAmmo" 90
DropItem "LegendaryBossLifeEssence" 256
DropItem "LegendaryBossArmorBonusMax" 256
DropItem "LegendaryBossLifeEssence" 128
DropItem "LegendaryBossArmorBonusMax" 128
SeeSound "legsoul/attack"
DeathSound "legsoul/death"
DamageType "SoulToxic"
Species "EleSouls"
Tag "\c[m6]Enraged\c- \c[z3]Legendary Soul\c-"
Decal Scorch
PROJECTILE
+SOLID
+SHOOTABLE
+NOBLOOD
+NOBLOODDECALS
+SKYEXPLODE
+NOTARGETSWITCH
-NOBLOCKMAP
var int user_music;
States
{
Spawn:
	ESOL B 3 Bright A_SpawnItem("ELFiendFlameSpawner")
	ESOL B 3 Bright A_SpawnItem("ELFiendFlameSpawner")
    Loop
Death:
	TNT1 A 0 A_Die
Explode:
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
	TNT1 AA 0 A_SpawnItemEx("ESoulPart1",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
	TNT1 A 0 A_SpawnItemEx("ESoulPart2",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
	TNT1 AA 0 A_SpawnItemEx("ESoulPart3",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
    TNT1 AAA 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(480,240)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(15,20,0,20,0)
	TNT1 A 0 A_PlaySound("weapons/dtech10kexplode")
	TNT1 A 0 A_SpawnItemEx("DTech10KShockwave",0,0,15,0,0,0,0,128)
	TNT1 A 0 A_SpawnItem("RedDTBFGEx",0,-10)
	ESOL DDDDEEEE 2 Bright A_SpawnItemEx("EKaboomLN",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),2,random(0,360))
    ESOL F 4 Bright A_NoBlocking
	TNT1 AAAA 0 A_SpawnItemEx("EKaboomLN",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
	ESOL G 4 Bright 
	TNT1 AAAA 0 A_SpawnItemEx("EKaboomLN",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
    ESOL H 4 Bright
    Stop
    }
}

ACTOR ELegSoulKamikazeSuper : ELegSoulKamikaze
{
Speed 48
var int user_explode;
States
{
Spawn:
	TNT1 A 0 A_SpawnItem("LSoulFlameSpawner")
	ESOL B 3 Bright A_SpawnItem("ELFiendFlameSpawner")
    Loop
Death:
	TNT1 A 0 A_Die
Explode:
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
	TNT1 A 0 A_Explode
	TNT1 AA 0 A_SpawnItemEx("ESoulPart1",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
	TNT1 A 0 A_SpawnItemEx("ESoulPart2",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
	TNT1 AA 0 A_SpawnItemEx("ESoulPart3",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
Explode1:
	TNT1 A 0 A_JumpIf(user_explode == 3,"Explode2")
    TNT1 AAA 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(120,240)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(9,20,0,20,0)
	TNT1 A 0 A_PlaySound("weapons/dtech10kexplode")
	TNT1 A 0 A_SpawnItemEx("DTech10KShockwave",0,0,15,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("RedDTBFGEx",Random(-35,35),Random(-30,30),Random(0,35))
	ESOL D 6 Bright A_SpawnItemEx("EKaboomLN",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
	TNT1 A 0 A_SetUserVar(user_explode,user_explode+1)
	Loop
Explode2:
	TNT1 A 0 A_JumpIf(user_explode == 6,"Explode3")
    TNT1 AAA 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(120,240)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(10,20,0,20,0)
	TNT1 A 0 A_PlaySound("weapons/dtech10kexplode")
	TNT1 A 0 A_SpawnItemEx("DTech10KShockwave",0,0,15,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("SoulDevExplosion",0,0,10,0,0,0,Random(0,360))
	TNT1 A 0 A_SpawnItemEx("RedDTBFGEx",Random(-15,15),Random(-10,10),Random(0,15))
	ESOL E 5 Bright A_SpawnItemEx("EKaboomLN",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
	TNT1 A 0 A_SetUserVar(user_explode,user_explode+1)
	Loop
Explode3:
	TNT1 A 0 A_JumpIf(user_explode == 6,"Explode4")
    TNT1 AAA 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(120,240)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(10,20,0,20,0)
	TNT1 A 0 A_PlaySound("weapons/dtech10kexplode")
	TNT1 A 0 A_SpawnItemEx("DTech10KShockwave",0,0,15,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("SoulDevExplosion",0,0,10,0,0,0,Random(0,360))
	TNT1 A 0 A_SpawnItemEx("RedDTBFGEx",Random(-15,15),Random(-10,10),Random(0,15))
	ESOL E 5 Bright A_SpawnItemEx("EKaboomLN",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
	TNT1 A 0 A_SetUserVar(user_explode,user_explode+1)
	Loop
Explode4:
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),2,random(0,360))
    ESOL F 4 Bright A_NoBlocking
	TNT1 A 0 A_PlaySound("Weapons/GuruBlast3",5)
	TNT1 A 0 A_Explode(1400,246,0,1)
	TNT1 A 0 A_SpawnItemEx("ELegBFGGlowX",0,0,10,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("ELegBFGGlowY",0,0,10,0,0,0,0,128,0)
	TNT1 AAAAAAA 0 A_SpawnItemEx("ELegBFGSphereSmoke",random(126,-126),random(126,-126),random(66,-66),0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),0,0)
	TNT1 AAAAAAA 0 A_SpawnItemEx("ELegBFGSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("ELegBFGSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,0,0)
	ESOL GH 4 Bright 
    Stop
    }
}

Actor SoulDevExplosion
{
Radius 0
Height 0
DamageType "SoulToxic"
Species "EleSouls"
States
{
Spawn:
	TNT1 A 0 A_Explode(309,256)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 A_PlaySound("weapons/dtech10kexplode")
	TNT1 A 0 A_SpawnItemEx("DevastatorShockWave2",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItem("RedDTBFGEx",0,-10)
	CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,18,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,36,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,54,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,72,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,90,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,108,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,126,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,144,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,144,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,162,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,180,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,196,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,216,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,234,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,252,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,270,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,288,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,306,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,324,2)
    CRE9 D 0 Bright A_CustomMissile("PlayerDevastatorBall2",0,0,342,2)
	CRE9 AAAAAABBBBBBCCCCCCDDDDDD 1 A_CustomMissile("KaboomDevastator22",0,0,random(0,360),2,random(0,360))
    CRE9 EF 6 Bright
    Stop
}
}