Actor LegendaryRedeemer 16507
{
//$Category Monsters/LCA
//$Sprite LREDA1
//$Title "Legendary Redeemer"
Monster
Health 1400
Radius 31
Height 56
Mass 400
Speed 12
BloodColor "Blue"
PainChance 28
+BOSS
+NOFEAR
+NOICEDEATH
+FLOAT
+NOGRAVITY
+NOTARGET
+AVOIDMELEE
+NOTIMEFREEZE
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTGIB
+NOTELEFRAG
+NORADIUSDMG
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "CacoDemon"
Species "Redeemer"
DamageFactor 0.65
DamageFactor "PDTBFG", 0.1
DamageFactor "PDTBFGTracer", 0.1
DamageFactor "PlayerDevBall", 0.11
DamageFactor "PlayerDevBall2", 0.11
DamageFactor "PlayerDTBFGRailgunSlug", 0.11
DamageFactor "PlayerDevTracer", 0.11
DamageFactor "DBFG10K2", 0.65
DamageFactor "PlayerDBFG10K2", 0.65
DamageFactor "DBFG2", 0.65
DamageFactor "PlayerDTRG", 0.5
DamageFactor "PlayerDBFG2", 0.65
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
//No infighting
DamageFactor "Legendary", 0.0
DamageFactor "Legendary1", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "CacoComet", 0.0
DropItem "BossLifeEssence", 256
DropItem "BossArmorBonusMax", 256
DropItem "LDemonAmmo", 250
DropItem "LDemonAmmoBox", 250
DropItem "LegendaryPowerSphere", 65, 1
DropItem "LegTimeFreezeSphere", 70, 1
DropItem "LegendarySphere", 140, 1
DropItem "Legendary Plasmatic Rifle", 180, 1
DropItem "LegendaryRune", 45, 1
SeeSound "redeemer/see"
PainSound "redeemer/pain"
DeathSound "redeemer/death"
ActiveSound "redeemer/idle"
Obituary "not one cell was left of %o after being defeated by a Legendary Redeemer."
Tag "\c[z3]Legendary Redeemer\c-"
var int user_delay;
var int user_portal;
var int user_suicide;
var int user_timer;
var int user_music;
var int user_clone;
States
	{
	Spawn:
		LRED A 10 Bright A_Look
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		Loop
	See:
		TNT1 A 0 A_JumpIf(user_music == 1,3)
		TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,15)
		TNT1 A 0 A_SetUserVar("user_music",1)
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED AAA 2 Bright A_Chase
		TNT1 A 0 A_Jump(68,"Avoid","Rush","Trap","Teleport")
		Loop
	SeeSuicide:
		TNT1 A 0 A_JumpIf(user_timer >= 390,"Explode")
		TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
		TNT1 A 0 A_SpawnItem("LRedFlameSpawner",0,0,0,0)
		LRED A 3 Bright A_Chase("","Kamikaze")
		Loop	
	Rush:
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)	
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 AA 0 A_Chase
		LRED A 1 Bright A_SpawnItemEx("LegendaryRedeemerGhost")
		TNT1 A 0 A_Jump(12,"See")
		Loop
	Avoid:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 A 0 A_SetAngle(angle+random(0,359))
		TNT1 A 0 A_Recoil(-50)
		TNT1 A 0 A_FaceTarget
		LRED GGGGGGGGGGGGG 1 A_SpawnItemEx("LegendaryRedeemerGhost2")
		TNT1 A 0 A_Jump(145,"See")
		LRED G 1 A_Stop
		Goto Avoid
	Teleport:
		LRED A 1 A_UnSetShootable
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED AAAAAAAAAAA 1 A_FadeOut(0.1,0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		LRED A 8
		TNT1 A 0 A_JumpIf(user_clone >= 3,9)
		TNT1 A 0 A_JumpIfCloser(2500,2)
		TNT1 A 0 A_Jump(256,7)
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("FakeLegendaryRedeemer",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,192)
		TNT1 A 0 A_SetUserVar("user_clone",user_clone+1)
		LRED A 8
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		LRED A 1 A_PlayWeaponSound("boss/teleport")
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED AAAAAAAAAAA 1 A_FadeIn(0.1)
		LRED A 1 A_SetShootable
		Goto See		
	Trap:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 A 0 A_SetAngle(random(0,359))
		TNT1 A 0 A_JumpIfCloser(2,2)
		TNT1 A 0 A_Jump(256,"See")
		LRED BC 5 Bright
		TNT1 A 0 A_PlaySound("reedemer/trap")
		LRED D 5 Bright A_SpawnItemEx("LegRedTrap",45,0,16,15)
		Goto See
	Missile:
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 A 0 A_Jump(127,2)
		TNT1 A 0 A_JumpIfHealthLower(400,"Suicide")
		TNT1 A 0 A_JumpIfHealthLower(200,"Suicide")
		TNT1 A 0 A_Jump(127,"FastBall","Laser","Void","TrapAttack")
		TNT1 A 0 A_Jump(64,"Thunder","Storm")
		TNT1 A 0 A_Jump(48,"Portal")
	Normal:
		LRED BC 5 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("LegRedBall",30,10,0,0,0)
		TNT1 A 0 A_CustomMissile("LegRedBall",30,-10,0,0,0)
		TNT1 A 0 A_CustomMissile("LegRedBall",20,10,0,0,0)
		LRED D 5 Bright A_CustomMissile("LegRedBall",20,-10,0,0,0)
		TNT1 A 0 A_Jump(127,"See","Avoid","Laser")
		TNT1 A 0 A_CposRefire
		TNT1 A 0 A_Jump(256,"Normal","FastBall")
		Goto Normal
	FastBall:
		LRED BC 5 Bright A_FaceTarget
		LRED D 5 Bright A_CustomMissile("LegRedFastBall",25,0,0,0,0)
		TNT1 A 0 A_Jump(127,"See","Avoid","Laser")
		TNT1 A 0 A_CposRefire
		TNT1 A 0 A_Jump(256,"Normal","FastBall")
		Goto FastBall
	Laser:
		LRED BC 5 Bright A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_Jump(127,"Void","Teleport")
		Goto See
	Void:
		TNT1 A 0 Bright A_FaceTarget
		LRED B 10 Bright A_PlaySound("exile/voidstart")
		LRED C 8 Bright A_VileTarget("LegRedVoid")
		LRED DDDDDD 8 Bright A_FaceTarget
		TNT1 A 0 A_PlaySound("exile/voidend")
		LRED G 8 Bright
		LRED DCB 5 Bright
		TNT1 A 0 A_Jump(127,"TrapAttack","Avoid")
		Goto See
	TrapAttack:
		LRED BC 5 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("LegRedTrap",45,0,16,15,-4)
		TNT1 A 0 A_SpawnItemEx("LegRedTrap",45,0,16,15,4)
		LRED D 5 Bright A_SpawnItemEx("LegRedTrap",45,0,16,15)
		TNT1 A 0 A_Jump(127,"Teleport")
		TNT1 A 0 A_Jump(64,"Storm","Thunder")
		TNT1 A 0 A_CposRefire
		Goto See
	Storm:
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_PlaySound("redeemer/see")
		TNT1 A 0 Radius_Quake(8,60,0,20,0)
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		LRED G 1 A_UnSetInvulnerable
		TNT1 A 0 A_Jump(127,"Avoid")
		Goto See
	Thunder:
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_PlaySound("redeemer/see")
		TNT1 A 0 Radius_Quake(8,60,0,20,0)
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_SetUserVar("user_delay",0)
		TNT1 A 0 A_Stop
		LRED G 3 Bright A_SpawnItemEx("LegRedThunderCharge",64,0,0)
	ThunderCharge:
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIf(user_delay >= 57,"ThunderDone")
		TNT1 A 0 A_SetUserVar("user_delay",user_delay+1)
		LRED G 3 Bright A_Stop
		Loop
	ThunderDone:
		LRED G 3 Bright A_FaceTarget
		LRED G 3 Bright A_CustomMissile("LegRedThunderBall",5,0,0)
		LRED G 1 Bright A_UnSetInvulnerable
		TNT1 A 0 A_Jump(127,"Avoid")
		Goto See
	Portal:
		LRED E 1 Bright A_JumpIf(user_portal > 0,"Thunder")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_PlaySound("brain/spit")
		TNT1 A 0 Radius_Quake(8,60,0,20,0)
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_SetUserVar("user_delay",0)
		TNT1 A 0 A_Stop
		LRED G 3 Bright A_SpawnItemEx("LegRedPortal",64,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
	PortalCharge:
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIf(user_delay >= 315,"PortalDone")
		TNT1 A 0 A_SetUserVar("user_delay",user_delay+1)
		//LRED G 0 HealThing(10)
		LRED G 3 Bright A_Stop
		Loop
	PortalDone:
		LRED G 3 Bright A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_portal",1)
		TNT1 A 0 A_Jump(127,"Teleport")
		Goto See
	Suicide:
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 A 0 A_SetUserVar("user_suicide",1)
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeFlag("NOBLOCKMONST",TRUE)
		TNT1 A 0 A_SpawnItem("LRedFlameSpawner",0,0,0,0)
		TNT1 A 0 A_PlaySound("redeemer/see")
		TNT1 A 0 Radius_Quake(8,120,0,20,0)
		LRED EEEEEEEEEEEEEFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGG 3 Bright A_SpawnItem("LRedFlameSpawner",0,0,0,0)
		Goto SeeSuicide
	Kamikaze:
		LRED GGGG 5 Bright A_FaceTarget
		TNT1 A 0 A_JumpIfTargetInLos(1)
		Goto SeeSuicide
		TNT1 A 0 A_JumpIfCloser(350,"Explode")
		TNT1 A 0 A_SpawnItem("LRedFlameSpawner",0,0,0,0)
		LRED G 3 Bright A_SkullAttack(35)
		Goto Kamikaze+4  
	Explode:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile("LegSuicideBomb",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("LegendaryStrike")
		LRD4 G 3 Bright A_Die
		Goto SeeSuicide	
	Pain:
		TNT1 A 0
		TNT1 A 0 A_KillChildren
		TNT1 A 0 A_Jump(8,"Thunder")	
		TNT1 A 0 A_Jump(21,"Teleport")	
		TNT1 A 0 A_Jump(128,"PainMissile")
		LRED H 2 Bright
		LRED H 2 Bright A_Pain
		Goto See
	PainMissile: 
		LRED H 2 Bright
		LRED H 2 Bright A_Pain
		Goto Missile
	Death:
		LRED I 5 Bright A_Scream
		TNT1 A 0 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
		LRED JJKKLL 2 Bright A_SpawnItemEx("BlueKaboom",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_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_KillChildren
		LRED MMNNOOPP 2 Bright A_SpawnItemEx("BlueKaboom",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_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
		LRED QQRRSSTTUU 2 A_SpawnItemEx("BlueKaboom",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS) 
		LRED V 50
		LRED VVVVVVVVVVVVVVVVVVVVVVVV 3 A_SpawnItemEx("LegTrapSpawners",0,0,0,0,0,0,0,32,128)
		TNT1 A 0 A_BossDeath
		LRED V 63000 CanRaise
		Stop
	}
}

ACTOR LegRedBall
{
PROJECTILE
Height 6
Radius 8
Speed 28
FastSpeed 36
Scale 0.85
RENDERSTYLE ADD
Decal DoomImpScorch
Damage 10
+NOTIMEFREEZE
SeeSound "monsters/newfireshoot"
DeathSound "monsters/newfireexplode"
States
	{
	Spawn:
		TNT1 A 0 A_CStaffMissileSlither
		LRD1 AB 1 Bright A_SpawnItemEx("LegRedBallTrail",0,0,2,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CStaffMissileSlither
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
		TNT1 AAA 0 A_CustomMissile("Kaboom6", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))	
		LRD1 CDEFG 3 Bright
		Stop
	}
}

ACTOR FakeLegRedBall : LegRedBall { Damage 2 }

ACTOR LegRedBallTrail : BFG9500Trail
{
Scale 0.85
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		LRD1 HIJKLM 2 A_FadeOut(0.15,1)
		Stop
	}
}

ACTOR LegRedFastBall
{
PROJECTILE
Height 8
Radius 8
Speed 58
Scale 1.5
Renderstyle Add
Decal "RevenantScorch"
Damage 18
Seesound "skeleton/attack"
Deathsound "skeleton/tracex"
+NOTIMEFREEZE
States
	{
	Spawn:
		LDR7 AB 1 Bright A_CustomMissile("LegRedFastBallTrail",Random(-2,2),Random(-2,2))
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
		TNT1 AAA 0 A_CustomMissile("Kaboom6", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))		
		LDR7 CD 5 Bright
		LDR7 EF 4 Bright
		LDR7 GH 3 Bright
		Stop
	}
}

ACTOR FakeLegRedFastBall : LegRedFastBall { Damage 5 }

ACTOR LegRedFastBallTrail : BFG9500Trail
{
Scale 1.28
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 1
		LDR8 DEFGHIJKLMNO 1 A_FadeOut(0.025,1)
		Stop
	}
}

Actor LegRedLaser : FastProjectile
{
Height 6
Radius 6
Speed 120
Scale 0.75
Renderstyle Add
Decal "DoomImpScorch"
MissileType "LegRedLaserTrail"
Damage 5
-RIPPER
+EXTREMEDEATH
+NOTIMEFREEZE
SeeSound "baron/attack"
DeathSound "baron/shotx"
States
	{
	Spawn:
		LRD2 ABCB 1 Bright
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,128) 
		TNT1 AAA 0 A_CustomMissile("Kaboom6",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))	
		LRD2 DDFFGGGGG 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor LegRedLaserTrail
{
Scale 0.1
Renderstyle Add
+DROPOFF
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+CANNOTPUSH
+NOTIMEFREEZE
+NODAMAGETHRUST
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright A_SpawnItemEx("LegRedLaserTrail2",0,0,8,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop  
	}
}

Actor LegRedLaserTrail2
{
Scale 0.75
Renderstyle Add
Alpha 0.85
+Nogravity
+NOTIMEFREEZE
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		LRD2 AAA 3 Bright
		LRD2 DDFFGGGGG 1 Bright A_FadeOut(0.1,1)
		Wait
	Toaster:
		TNT1 A 1 Bright
		Stop 
	}
}

ACTOR LegRedVoid : ArchVileFire
{
Scale 2.1
RenderStyle Add
Alpha 0.5
+DONTSPLASH
+EXTREMEDEATH
+FORCERADIUSDMG
+NOTIMEFREEZE
DamageType "CacoComet"
States
	{
	Spawn:
		TNT1 A 0
		LRD3 H 1 Bright A_PlaySoundEx("exile/voidsuck","Voice")
		TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 HGGHH 1 Bright A_Fire
		TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 GGHHG 1 Bright A_Fire
		//TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 GFFEE 1 Bright A_Fire
		//TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 FFEEF 1 Bright A_Fire
		TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 FEEDD 1 Bright A_Fire
		TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 EEDDE 1 Bright A_Fire
		//TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 EDDCC 1 Bright A_Fire
		//TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 DDCCD 1 Bright A_Fire
		TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 DCCBB 1 Bright A_Fire
		TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 CCBBC 1 Bright A_Fire
		//TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 CBBBB 1 Bright A_Fire
		//TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 AAAA 1 Bright A_Fire
		TNT1 A 0 A_Explode(6,128,0)
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		LRD3 B 1 Bright A_StopSoundEx("Voice")
		TNT1 A 0 A_Explode(105,140,0)
		TNT1 A 0 A_SpawnItemEx("LegendaryBlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 AAAAAAAA 0 A_SpawnItemEx("BlueKaboom3",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
		TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX2", 0, 0, random(0,360), 2, random(0,360))
		LRD3 C 1 Bright A_PlaySoundEx("exile/voidend","Voice")
		LRD3 DEFGH 1 Bright
		TNT1 A 20
		TNT1 AAA 1 A_StopSoundEx("Voice")
		Stop
	}
}

Actor LegRedTrap
{ 
Health 25
Radius 16 
Height 32 
Mass 3000 
Speed 0
MONSTER
+LOOKALLAROUND
+AMBUSH
+DONTGIB
+NOTARGET
+NOINFIGHTING
+NOGRAVITY 
+FLOAT
+DONTFALL
+NOPAIN
+DONTHARMSPECIES
+NOBLOCKMONST
+NOTIMEFREEZE
-COUNTKILL
-SOLID
SeeSound "reedemer/trap"
DeathSound "weapons/rocklx"
BloodColor "Blue"
Species "Redeemer"
DamageType "CacoComet"
DamageFactor "CacoComet", 0.0
Scale 1.15
Obituary "%o was blown to pieces by a Legendary Redeemer's trap."
var int user_delay;
States 
	{
	Spawn:
		LRD4 A 20 Bright
		LRD4 A 1 Bright A_Stop
		TNT1 A 0 A_JumpIf(user_delay >= 260,"Suicide")
		TNT1 A 0 A_SetUserVar("user_delay",user_delay+1)
		LRD4 ABCD 1 Bright A_Look
		Goto Spawn+2
	See:
		LRD4 ABCD 2 Bright A_Chase
		Goto Missile
     Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfTargetInLos(1)
		Goto Clear
		TNT1 A 0 A_JumpIfCloser(100,"Suicide")
		LRD4 ABCD 4 Bright A_SkullAttack(18)
		Loop  
	Clear:
		LRD4 A 4 Bright A_ClearTarget
		Goto Spawn+2 
	Suicide:
		LRD4 A 2 Bright A_Die
		Goto Spawn+2    
	Death:
		TNT1 A 0
		TNT1 A 0 A_PlayWeaponSound("weapons/rocklx")
		TNT1 A 0 A_CustomMissile("LegRedTrapBomb",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("LegendaryBlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
		TNT1 AAAAAAAA 0 A_SpawnItemEx("BlueKaboom",random(-32,32),random(-40,40),random(8,16),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
		TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX4", 0, 0, random(0,360), 2, random(0,360))   
		TNT1 A 1 A_Explode(128,128,0)
		Stop
	} 
}

Actor LegRedTrapBomb
{
Projectile
Speed 0
Damage 0
+NOCLIP
+EXTREMEDEATH
+FORCERADIUSDMG
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 
		TNT1 A 1 A_Explode(128,156)
		Stop
	}
}

Actor FakeLegendaryRedeemer
{
Monster
Health 300
Height 56
Radius 31
Speed 12
Scale 1.15
RenderStyle Translucent
Alpha 0.65
BloodColor "Blue"
+FLOAT
+NOGRAVITY
+NOTARGET
+NOINFIGHTING
+AVOIDMELEE
+NOTIMEFREEZE
+MISSILEMORE
+MISSILEEVENMORE
+NOICEDEATH
+DONTGIB
+QUICKTORETALIATE
+DONTHARMSPECIES
+NOPAIN
-COUNTKILL
-SOLID
DamageFactor "CacoComet", 0.0
Species "Redeemer"
SeeSound "redeemer/see"
PainSound "redeemer/pain"
DeathSound "redeemer/death"
ActiveSound "redeemer/idle"
Obituary "%o was out played by a Legendary Redeemer's clone."
Tag "\c[z3]Legendary Redeemer\c-"
var int user_delay;
States
	{
	Spawn:
		LRED A 10 Bright A_Look
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		Loop
	See:
		TNT1 A 0 A_JumpIf(user_delay > 875,"Over")
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED AAA 2 Bright A_Chase
		TNT1 A 0 A_Jump(48,"Rush")
		TNT1 A 0 A_SetUserVar("user_delay",user_delay+1)
		Loop
	Rush:
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)	
		TNT1 AA 0 A_Chase
		LRED A 1 Bright A_SpawnItemEx("LegendaryRedeemerGhost")
		TNT1 A 0 A_Jump(12,"See")
		Loop
	Missile:
		TNT1 A 0 A_Jump(127,"FastBall")
		LRED BC 5 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("FakeLegRedBall",30,10,0,0,0)
		LRED D 0 A_CustomMissile("FakeLegRedBall",30,-10,0,0,0)
		TNT1 A 0 A_CustomMissile("FakeLegRedBall",20,10,0,0,0)
		LRED D 5 Bright A_CustomMissile("FakeLegRedBall",20,-10,0,0,0)
		Goto See
	FastBall:
		LRED BC 5 Bright A_FaceTarget
		LRED D 5 Bright A_CustomMissile("FakeLegRedFastBall",25,0,0,0,0)
		Goto See	
	Over:
		TNT1 A 0 A_Stop
		LRED A 1 A_Die
		LRED A 4 A_FadeOut(0.1,1)
		Wait
	Death:
		LRED EF 5 A_FaceTarget
		LRED G 4 A_ScreamAndUnblock
		LRED GGGGGGGGGG 4 A_FadeOut(0.1,1)
		LRED G 1
		Stop
	}
}

Actor LegRedThunderBall
{
Projectile
Height 6
Radius 12
Speed 25
BounceCount 6
Scale 0.25
RenderStyle Add
Alpha 0.8
DECAL "BlueBFG9500Lightning"
Damage 50
+EXTREMEDEATH
+SKYEXPLODE
+FORCERADIUSDMG
+SEEKERMISSILE
+HEXENBOUNCE
+CANBOUNCEWATER
+NOTIMEFREEZE
DamageType "CacoComet"
SeeSound "LightningHandsFire"
DeathSound "MageElectricalStorm"
States
	{
	Spawn:
		LRD5 ABCD 1 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,32,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SeekerMissile(5,5)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_Explode(32,612,0)
		TNT1 A 0 A_Explode(64,350,0)
		TNT1 A 0 A_Explode(192,256,0)
		TNT1 A 1 A_SpawnItemEx("LegRedThunder",0,0,0)
		Stop
	}
}

Actor LegRedThunder
{
Height 32
Radius 16
Scale 4.0
Renderstyle Add
Alpha 0.2
+NOCLIP
+DROPOFF
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+THRUACTORS
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySoundEx("thunder/hit","Voice",0,2)
		TNT1 A 0 Radius_Quake(175,8,512,1024,0)
		TNT1 AAA 0 A_CustomMissile("SmokeFX3",0,0,random(0,360),2,random(0,360))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("LegCardiThunderSpark",0,0,0,random(1,10),0,random(1,10),random(0,359),129)
		LTHN AAAA 2 Bright A_FadeIn(0.2)
		LTHN AAAA 8 Bright A_FadeOut(0.2,1)
		Stop
	}     
}

Actor LegRedThunderCharge
{
Scale 0.25
RenderStyle Add
Alpha 0.8
+NOGRAVITY
+NOBLOCKMAP
+NOTIMEFREEZE
+NOINTERACTION
+FORCEXYBILLBOARD
var int user_delay;
States
	{
	Spawn:
		TNT1 AAAAA 7 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,172)
		TNT1 A 0 A_SetTranslucent(0.1,1)
		TNT1 A 0 A_PlaySound("reedemer/charge")
		LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.2,1)
		LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.3,1)
		LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.4,1)
		LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.5,1)
		LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.6,1)
		LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.7,1)
		LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.8,1)
		TNT1 A 0 A_PlaySound("reedemer/thunder",5,1,1)
	Doing:
		TNT1 A 0 A_JumpIf(user_delay > 15,"Over")
		TNT1 A 0 A_SetUserVar("user_delay",user_delay+1)
		LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		Loop
	Over:
		TNT1 A 0
		Goto Death
	Death:
		TNT1 A 0
		TNT1 A 1 A_StopSound(5)
		TNT1 A 1
		Stop	
	}
}

Actor LegRedThunderEffect
{
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+NOTIMEFREEZE
+NOINTERACTION
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
States
	{
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor LegRedThunderMist : LegRedThunderEffect
{
Scale 0.225
RenderStyle Add
Alpha 0.25
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10)
		Goto Loopy
	Loopy:
		MIST ABCDEFGHIJKLMOOPQR 1 bright A_FadeOut(0.01,1)
		Loop
	}
}

Actor LegRedThunderMistSpawner : LegRedThunderEffect
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AA 0 A_SpawnItemEx("LegRedThunderMist",Random(-14,14),Random(-14,14),Random(-14,14),0.012*Random(-50,50),0.012*Random(-50,50),0.012*Random(-50,50),0,0,24)
		TNT1 A 1 Bright
		Stop
	}
}

Actor LegRedThunderLightning : LegRedThunderEffect
{
RenderStyle Add
Alpha 0.7
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72)
	Select:
		BLL1 ABCDEFGHIJKLMNOPQR 0 A_Jump(256,"Fade")
		BLL2 ABCDEFGHIJKLMNOPQR 0 A_Jump(256,"Fade")
		BLL3 ABCDEFGHIJKLMNOPQR 0 A_Jump(256,"Fade")
		BLL4 ABCDEFGHIJKLMNOPQR 0 A_Jump(256,"Fade")
		Goto Fade
	Fade:
		"####" "#" 1 Bright A_FadeOut(0.15,1)
		Loop
	}
}

Actor LegRedThunderLightningSmall : LegRedThunderLightning { Scale 0.2 }
Actor LegRedThunderLightningMedium : LegRedThunderLightning { Scale 0.3 }
Actor LegRedThunderLightningLarge : LegRedThunderLightning { Scale 0.4 }
Actor LegRedThunderLightningHuge : LegRedThunderLightning { Scale 0.5 }

Actor LegRedThunderLightningWave : LegRedThunderEffect
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningSmall",Random(-2,2),Random(-2,2),Random(-2,2),0,0,0,0,0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningMedium",Random(-3,3),Random(-3,3),Random(-3,3),0,0,0,0,0,56)
		TNT1 A 0 A_SpawnItemEx("LegRedThunderLightningLarge",Random(-4,4),Random(-4,4),Random(-3,3),0,0,0,0,0,96)
		TNT1 A 1 A_SpawnItemEx("LegRedThunderLightningHuge",Random(-5,5),Random(-5,5),Random(-5,5),0,0,0,0,0,144)
		Stop
	}
}

Actor LegRedThunderLightningWaveSpawner : LegRedThunderEffect
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_PlaySound("reedemer/zap")
		TNT1 A 2 A_SpawnItem("LegRedThunderLightningWave")
		TNT1 A 1 A_SpawnItem("LegRedThunderLightningWave")
		TNT1 A 3 A_SpawnItem("LegRedThunderLightningWave")
		TNT1 A 5 A_SpawnItem("LegRedThunderLightningWave")
		TNT1 A 1 A_SpawnItem("LegRedThunderLightningWave")
		TNT1 A 2 A_SpawnItem("LegRedThunderLightningWave")
		TNT1 A 4 A_SpawnItem("LegRedThunderLightningWave")
		Stop
	}
}

Actor LegRedPortal
{
Monster
Health 99999999
Scale 1.5
RenderStyle Add
Alpha 0.8
-SOLID
-COUNTKILL
+NOGRAVITY
+NOBLOCKMAP
+NOTIMEFREEZE
+NOINTERACTION
+FORCEXYBILLBOARD
var int user_delay;
States
	{
	Spawn:
		TNT1 AAAAA 7 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,172)
		TNT1 A 0 A_SetTranslucent(0.1,1)
		TNT1 A 0 A_PlaySound("reedemer/charge")
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.2,1)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.3,1)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.4,1)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.5,1)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.6,1)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.7,1)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SetTranslucent(0.8,1)
		TNT1 A 0 A_PlaySound("reedemer/thunder",5,1,1)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
	Doing:
		TNT1 A 0 A_JumpIf(user_delay > 14,"Over")
		TNT1 A 0 A_SetUserVar("user_delay",user_delay+1)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		LRD6 AAAAA 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
		TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,16)
		TNT1 A 0 A_SpawnItemEx("LegRedMinion",0,0,16,5,0,0,0,32)
		Loop
	Over:
		TNT1 A 0
		TNT1 AAA 1 A_StopSound(5)
		TNT1 A 1
		Stop	
	}
}

ACTOR LegRedMinion : RandomSpawner
{
DropItem "Cacodemon~", 256, 3
DropItem "Watcher", 256, 1
}

Actor LegRedPortalLightning : LegRedThunderEffect
{
RenderStyle Add
Alpha 0.7
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72)
	Select:
		GRL1 ABCDEFGHIJKLMNOPQR 0 A_Jump(256,"Fade")
		GRL2 ABCDEFGHIJKLMNOPQR 0 A_Jump(256,"Fade")
		GRL3 ABCDEFGHIJKLMNOPQR 0 A_Jump(256,"Fade")
		GRL4 ABCDEFGHIJKLMNOPQR 0 A_Jump(256,"Fade")
		Goto Fade
	Fade:
		"####" "#" 1 Bright A_FadeOut(0.15,1)
		Loop
	}
}

Actor LegRedPortalLightningSmall : LegRedPortalLightning { Scale 0.2 }
Actor LegRedPortalLightningMedium : LegRedPortalLightning { Scale 0.3 }
Actor LegRedPortalLightningLarge : LegRedPortalLightning { Scale 0.4 }
Actor LegRedPortalLightningHuge : LegRedPortalLightning { Scale 0.5 }

Actor LegRedPortalLightningWave : LegRedThunderEffect
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningSmall",Random(-2,2),Random(-2,2),Random(-2,2),0,0,0,0,0,32)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningMedium",Random(-3,3),Random(-3,3),Random(-3,3),0,0,0,0,0,56)
		TNT1 A 0 A_SpawnItemEx("LegRedPortalLightningLarge",Random(-4,4),Random(-4,4),Random(-3,3),0,0,0,0,0,96)
		TNT1 A 1 A_SpawnItemEx("LegRedPortalLightningHuge",Random(-5,5),Random(-5,5),Random(-5,5),0,0,0,0,0,144)
		Stop
	}
}

Actor LegRedPortalLightningWaveSpawner : LegRedThunderEffect
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_PlaySound("reedemer/zap")
		TNT1 A 2 A_SpawnItem("LegRedPortalLightningWave")
		TNT1 A 1 A_SpawnItem("LegRedPortalLightningWave")
		TNT1 A 3 A_SpawnItem("LegRedPortalLightningWave")
		TNT1 A 5 A_SpawnItem("LegRedPortalLightningWave")
		TNT1 A 1 A_SpawnItem("LegRedPortalLightningWave")
		TNT1 A 2 A_SpawnItem("LegRedPortalLightningWave")
		TNT1 A 4 A_SpawnItem("LegRedPortalLightningWave")
		Stop
	}
}

Actor LegRedStormBoltAttack : CustomInventory
{
-COUNTITEM
+NOTIMEFREEZE
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE       
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 1 
		TNT1 AA 1 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-512),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		Stop	
	}
}

ACTOR LegRedStormBoltSpawner
{
PROJECTILE
Height 2
Radius 2
Speed 6
+NOCLIP
+DONTSPLASH
+THRUACTORS
+SPAWNCEILING
+CEILINGHUGGER
+NOTIMEFREEZE
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
		TNT1 A 1 A_CustomMissile("LegRedStormBolt",-18,random(0,20),random(0,360),CMF_AIMDIRECTION)
		Stop
	}
}

ACTOR LegRedStormBolt
{
PROJECTILE
Height 12
Radius 8
Speed 1
Gravity 2.0
Renderstyle Add
Damage 5
+RIPPER
-NOGRAVITY
+BLOODLESSIMPACT
+FORCERADIUSDMG
+EXTREMEDEATH
+NOTIMEFREEZE
DamageType "CacoComet"
SeeSound ""
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SetAngle(7 + angle)
		TNT1 A 2 A_SpawnItemEx("LegSentientStormBoltFade",0,0,0,frandom(0.25,-0.25),frandom(0.25,-0.25),frandom(0.25,-0.25),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlayWeaponSound("legstorm/explode")
		TNT1 A 0 Bright A_Explode(48,278,1)
		TNT1 A 0 A_SpawnItemEx("LegRedGuruStormBoltStruckGlowX",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		TNT1 A 0 A_SpawnItemEx("LegRedGuruStormBoltStruckGlowY",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		TNT1 AAAAAAA 2 A_SpawnItemEx("GuruSpray",random(20,-20),random(20,-20),random(30,-5),0,0,0,0,SXF_SETMASTER,0)
		Stop
	}
}

ACTOR LegRedGuruStormBoltStruckGlowY : GuruBoltStruckGlowY
{
XScale 0.35
YScale 1.5
Alpha 0.5
-CLIENTSIDEONLY
+FORCERADIUSDMG
+NOTIMEFREEZE
DamageType "CacoComet"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,96,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(3,192,1)
		YBUM A 1 Bright A_FadeOut(0.005,1)
		Loop
	}
}

ACTOR LegRedGuruStormBoltStruckGlowX : GuruBoltStruckGlowY
{
-CLIENTSIDEONLY
+FORCERADIUSDMG	
+NOTIMEFREEZE
XScale 1.5
YScale 0.35
Alpha 0.5
DamageType "CacoComet"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,96,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(3,192,1)
		YBUM A 1 Bright A_FadeOut(0.005,1)
		Loop
	}		
}

ACTOR LRedeYSmokeSpawner : LegendaryRedParticleSpawner
{
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAAAA 0 A_SpawnItemEx("AHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LRedeBSmokeSpawner : LegendaryRedParticleSpawner
{
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAAAA 0 A_SpawnItemEx("BHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LRedeGSmokeSpawner : LegendaryRedParticleSpawner
{
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAAAA 0 A_SpawnItemEx("GHellionSmoke",random(32,-32),random(32,-32),random(12,64),0,0,random(1,3),0,128,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

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

ACTOR LRedFlameFlame
{
Scale 1.1
RenderStyle Add
+MISSILE
+NOGRAVITY
+NOBLOCKMAP
+DONTSPLASH
+NOTELEPORT
+NOTIMEFREEZE
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		BMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LegendaryRedeemerGhost
{
PROJECTILE
Height 56
Radius 31
Speed 0
Scale 1.15
RENDERSTYLE Translucent
Alpha 0.7
+NOTIMEFREEZE
+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:
		LRED A 2 A_FadeOut(0.1,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR LegendaryRedeemerGhost2 : LegendaryRedeemerGhost
{
States
	{
	Fade:
		TNT1 A 1 A_SpawnItemEx("LRedeYSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		LRED G 2 A_FadeOut(0.1,1)
		Goto Fade+1
    }
}

Actor LegSuicideBomb
{
Projectile
Speed 0
Damage 0
+NOCLIP
+NOTIMEFREEZE
+EXTREMEDEATH
+FORCERADIUSDMG
States
	{
	Spawn:
		TNT1 A 0 
		TNT1 A 0 A_PlaySoundEx("legendary/strike","Voice",0,2)
		TNT1 A 0 A_Explode(384,1024)
		Stop
	}
}

Actor LegendaryStrike
{
Scale 10.0
RenderStyle Add
Alpha 0.9
+NOGRAVITY
+NOTIMEFREEZE
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0
		TSKB A 1 Bright A_FadeOut(0.05,1)
		Wait
	}
}

Actor FakeLegendaryRedeemerByCardi : LegendaryRedeemer 
{
Species "UltimateLegendary"
DamageFactor "UltimateLegendary", 0.0
DamageFactor "Cyber10K", 0.0
DamageFactor "CacoComet", 0.0
DamageFactor "CadaverRocket", 0.0
DamageFactor "BeheComet", 0.0
DamageFactor "NobleCOmet", 0.0
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "Legendary1", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LegendaryGuruPlayer", 0.3
+DONTHARMSPECIES
+NOTELEFRAG
-COUNTKILL
DropItem ""
Tag "\c[z3]Legendary Redeemer\c-"
//var int user_delay;
//var int user_portal;
//var int user_suicide;
//var int user_timer;
//var int user_clone;
States
	{
	Spawn:
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED A 10 Bright A_Look
		Loop
	See:
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED AAA 2 Bright A_Chase
		TNT1 A 0 A_Jump(68,"Avoid","Rush","Trap","Teleport")
		Loop
	SeeSuicide:
		TNT1 A 0 A_JumpIf(user_timer >= 390,"Explode")
		TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
		TNT1 A 0 A_SpawnItem("LRedFlameSpawner",0,0,0,0)
		LRED A 3 Bright A_Chase("","Kamikaze")
		Loop	
	Rush:
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)	
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 AA 0 A_Chase
		LRED A 1 Bright A_SpawnItemEx("LegendaryRedeemerGhost")
		TNT1 A 0 A_Jump(12,"See")
		Loop
	Avoid:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 A 0 A_SetAngle(angle+random(0,359))
		TNT1 A 0 A_Recoil(-50)
		TNT1 A 0 A_FaceTarget
		LRED GGGGGGGGGGGGG 1 A_SpawnItemEx("LegendaryRedeemerGhost2")
		TNT1 A 0 A_Jump(145,"See")
		LRED G 1 A_Stop
		Goto Avoid
	Teleport:
		LRED A 1 A_UnSetShootable
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED AAAAAAAAAAA 1 A_FadeOut(0.1,0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		LRED A 8
		TNT1 A 0 A_JumpIf(user_clone >= 3,9)
		TNT1 A 0 A_JumpIfCloser(2500,2)
		TNT1 A 0 A_Jump(256,7)
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("FakeLegendaryRedeemer",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,192)
		TNT1 A 0 A_SetUserVar("user_clone",user_clone+1)
		LRED A 8
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		LRED A 1 A_PlayWeaponSound("boss/teleport")
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED AAAAAAAAAAA 1 A_FadeIn(0.1)
		LRED A 1 A_SetShootable
		Goto See		
	Trap:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 A 0 A_SetAngle(random(0,359))
		TNT1 A 0 A_JumpIfCloser(2,2)
		TNT1 A 0 A_Jump(256,"See")
		LRED BC 5 Bright
		TNT1 A 0 A_PlaySound("reedemer/trap")
		LRED D 5 Bright A_SpawnItemEx("LegRedTrap",45,0,16,15)
		Goto See
	Missile:
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 A 0 A_Jump(127,2)
		TNT1 A 0 A_JumpIfHealthLower(400,"Suicide")
		TNT1 A 0 A_JumpIfHealthLower(200,"Suicide")
		TNT1 A 0 A_Jump(127,"FastBall","Laser","Void","TrapAttack")
		TNT1 A 0 A_Jump(64,"Thunder","Storm")
		TNT1 A 0 A_Jump(48,"Portal")
	Normal:
		LRED BC 5 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("LegRedBall",30,10,0,0,0)
		TNT1 A 0 A_CustomMissile("LegRedBall",30,-10,0,0,0)
		TNT1 A 0 A_CustomMissile("LegRedBall",20,10,0,0,0)
		LRED D 5 Bright A_CustomMissile("LegRedBall",20,-10,0,0,0)
		TNT1 A 0 A_Jump(127,"See","Avoid","Laser")
		TNT1 A 0 A_CposRefire
		TNT1 A 0 A_Jump(256,"Normal","FastBall")
		Goto Normal
	FastBall:
		LRED BC 5 Bright A_FaceTarget
		LRED D 5 Bright A_CustomMissile("LegRedFastBall",25,0,0,0,0)
		TNT1 A 0 A_Jump(127,"See","Avoid","Laser")
		TNT1 A 0 A_CposRefire
		TNT1 A 0 A_Jump(256,"Normal","FastBall")
		Goto FastBall
	Laser:
		LRED BC 5 Bright A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_FaceTarget
		LRED D 3 Bright A_CustomMissile("LegRedLaser",25,0,0,0,0)
		TNT1 A 0 A_Jump(127,"Void","Teleport")
		Goto See
	Void:
		TNT1 A 0 Bright A_FaceTarget
		LRED B 10 Bright A_PlaySound("exile/voidstart")
		LRED C 8 Bright A_VileTarget("LegRedVoid")
		LRED DDDDDD 8 Bright A_FaceTarget
		TNT1 A 0 A_PlaySound("exile/voidend")
		LRED G 8 Bright
		LRED DCB 5 Bright
		TNT1 A 0 A_Jump(127,"TrapAttack","Avoid")
		Goto See
	TrapAttack:
		LRED BC 5 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("LegRedTrap",45,0,16,15,-4)
		TNT1 A 0 A_SpawnItemEx("LegRedTrap",45,0,16,15,4)
		LRED D 5 Bright A_SpawnItemEx("LegRedTrap",45,0,16,15)
		TNT1 A 0 A_Jump(127,"Teleport")
		TNT1 A 0 A_Jump(64,"Storm","Thunder")
		TNT1 A 0 A_CposRefire
		Goto See
	Storm:
		LRED E 0 A_SetInvulnerable
		LRED E 0 A_FaceTarget
		TNT1 A 0 A_PlaySound("redeemer/see")
		TNT1 A 0 Radius_Quake(8,60,0,20,0)
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
		TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,0,SXF_NOCHECKPOSITION,64)
		LRED G 3 Bright A_FaceTarget
		LRED G 1 A_UnSetInvulnerable
		TNT1 A 0 A_Jump(127,"Avoid")
		Goto See
	Thunder:
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_PlaySound("redeemer/see")
		TNT1 A 0 Radius_Quake(8,60,0,20,0)
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_SetUserVar("user_delay",0)
		TNT1 A 0 A_Stop
		LRED G 3 Bright A_SpawnItemEx("LegRedThunderCharge",64,0,0)
	ThunderCharge:
		TNT1 AAA 0 A_SpawnItem("LRedeBSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIf(user_delay >= 57,"ThunderDone")
		TNT1 A 0 A_SetUserVar("user_delay",user_delay+1)
		LRED G 3 Bright A_Stop
		Loop
	ThunderDone:
		LRED G 3 Bright A_FaceTarget
		LRED G 3 Bright A_CustomMissile("LegRedThunderBall",5,0,0)
		LRED G 1 Bright A_UnSetInvulnerable
		TNT1 A 0 A_Jump(127,"Avoid")
		Goto See
	Portal:
		LRED E 1 Bright A_JumpIf(user_portal > 0,"Thunder")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_PlaySound("brain/spit")
		TNT1 A 0 Radius_Quake(8,60,0,20,0)
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		LRED E 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		LRED F 3 Bright A_FaceTarget
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_SetUserVar("user_delay",0)
		TNT1 A 0 A_Stop
		LRED G 3 Bright A_SpawnItemEx("LegRedPortal",64,0,0,0,0,0,0,SXF_SETMASTER|32)
	PortalCharge:
		TNT1 AAA 0 A_SpawnItem("LRedeGSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIf(user_delay >= 315,"PortalDone")
		TNT1 A 0 A_SetUserVar("user_delay",user_delay+1)
		//LRED G 0 HealThing(10)
		LRED G 3 Bright A_Stop
		Loop
	PortalDone:
		LRED G 3 Bright A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_portal",1)
		TNT1 A 0 A_Jump(127,"Teleport")
		Goto See
	Suicide:
		TNT1 A 0 A_JumpIf(user_suicide == 1,"SeeSuicide")
		TNT1 A 0 A_SetUserVar("user_suicide",1)
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeFlag("NOBLOCKMONST",TRUE)
		TNT1 A 0 A_SpawnItem("LRedFlameSpawner",0,0,0,0)
		TNT1 A 0 A_PlaySound("redeemer/see")
		TNT1 A 0 Radius_Quake(8,120,0,20,0)
		LRED EEEEEEEEEEEEEFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGG 3 Bright A_SpawnItem("LRedFlameSpawner",0,0,0,0)
		Goto SeeSuicide
	Kamikaze:
		LRED GGGG 5 Bright A_FaceTarget
		TNT1 A 0 A_JumpIfTargetInLos(1)
		Goto SeeSuicide
		TNT1 A 0 A_JumpIfCloser(350,"Explode")
		TNT1 A 0 A_SpawnItem("LRedFlameSpawner",0,0,0,0)
		LRED G 3 Bright A_SkullAttack(35)
		Goto Kamikaze+4  
	Explode:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile("LegSuicideBomb",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("LegendaryStrike")
		LRD4 G 3 Bright A_Die
		Goto SeeSuicide	
	Pain:
		TNT1 A 0
		TNT1 A 0 A_KillChildren
		TNT1 A 0 A_Jump(8,"Thunder")	
		TNT1 A 0 A_Jump(21,"Teleport")	
		TNT1 A 0 A_Jump(128,"PainMissile")
		LRED H 2 Bright
		LRED H 2 Bright A_Pain
		Goto See
	PainMissile: 
		LRED H 2 Bright
		LRED H 2 Bright A_Pain
		Goto Missile	
	Death:
		LRED I 5 Bright A_Scream
		TNT1 A 0 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
		LRED JJKKLL 2 Bright A_SpawnItemEx("BlueKaboom",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_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
		LRED M 0 A_NoBlocking
		LRED M 0 A_KillChildren
		LRED MMNNOOPP 2 Bright A_SpawnItemEx("BlueKaboom",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_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
		LRED QQRRSSTTUU 2 A_SpawnItemEx("BlueKaboom",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS) 
		LRED V 50
		LRED VVVVVVVVVVVVVVVVVVVVVVVV 3 A_SpawnItemEx("LegTrapSpawners",0,0,0,0,0,0,0,32,128)
		LRED V 525 A_BossDeath
		LRED V 5 A_FadeOut(0.1,1)
		Wait
	}
}

ACTOR LegTrapSpawners
{
Monster
Radius 12
Height 8
Speed 17
-SHOOTABLE
-COUNTKILL
-SOLID
var int user_limit;
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetAngle(random(0,359))
		TNT1 A 1 A_Recoil(-40)
		TNT1 A 0 A_JumpIf(user_limit > 3,"Death")
		TNT1 A 0 A_SetUserVar("user_limit",user_limit+1)
		TNT1 A 1 A_Recoil(-4)
		TNT1 A 2 A_Jump(48,"Death")
		Goto Spawn+3
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("TeleportFog")
		TNT1 A 5 A_SpawnItemEx("LegRedTrap")
		TNT1 A 1 A_Fall
		Stop
	}
}