ACTOR PhaseOverlord 16562
{ 
//$Category Monsters/LCA
//$Sprite BOS3A1C1
//$Title "Phase Overlord"
MONSTER
Health 1650 
Radius 24 
Height 64 
Mass 1000 
Speed 8 
BloodColor "cf 00 b0"
PainChance 20 
MeleeDamage 12
+NOTARGET
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+NORADIUSDMG
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "Nobles"
DamageFactor "NobleComet", 0.0
DropItem "BossLifeEssence", 210
DropItem "BossArmorBonusMax", 210
DropItem "UltraSphere", 40
DropItem "ExtraArmor", 65 
SeeSound "PhaseOverlord/Sight" 
PainSound "baron/pain" 
DeathSound "PhaseOverlord/Death"
MeleeSound "baron/melee"
Obituary "%o's aorta was punctured by a Phase Overlord."
HitObituary "%o's penis was split in two by a Phase Overlord."
States 
	{ 
	Spawn: 
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		BOS3 A 14 A_Look 
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		BOS3 X 14 A_Look 
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		Loop 
	See:
		BOS3 AA 3 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PurpleWalkFire",0,0,0,0,0,0,0,128)
		BOS3 BB 3 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PurpleWalkFire",0,0,0,0,0,0,0,128)
		BOS3 CC 3 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PurpleWalkFire",0,0,0,0,0,0,0,128)
		BOS3 DD 3 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PurpleWalkFire",0,0,0,0,0,0,0,128)
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_Jump(62,"Rush")
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		Loop
	Rush:
		TNT1 A 0 A_UnHideThing
        TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_SpawnItemEx("PhaseOverlordGhostA",0,0,0,0,0,0,0,128)		
		BOS3 A 1 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PhaseOverlordGhostA",0,0,0,0,0,0,0,128)		
		BOS3 A 1 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PhaseOverlordGhostB",0,0,0,0,0,0,0,128)
		BOS3 B 1 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PhaseOverlordGhostB",0,0,0,0,0,0,0,128)
		BOS3 B 1 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PhaseOverlordGhostC",0,0,0,0,0,0,0,128)
		BOS3 C 1 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PhaseOverlordGhostC",0,0,0,0,0,0,0,128)
		BOS3 C 1 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PhaseOverlordGhostD",0,0,0,0,0,0,0,128)
		BOS3 D 1 A_Chase
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PhaseOverlordGhostD",0,0,0,0,0,0,0,128)
		BOS3 D 1 A_Chase
		BOS3 D 1 A_Chase	
		TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_Jump(84,"See")		
		Loop
    Phase:
        TNT1 A 0 A_PlaySound("phaseimp/teleport")
        BOS3 A 4 A_FaceTarget
        BOS3 A 1 A_SetTranslucent(0.8)
        BOS3 A 1 A_SetTranslucent(0.6)
        BOS3 A 1 A_SetTranslucent(0.4)
        BOS3 A 1 A_SetTranslucent(0.2)
        TNT1 A 0 A_HideThing
        Goto See
	Missile:
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_Jump(30,"Phase")
		TNT1 A 0 A_UnHideThing
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_Jump(156,"PhazoLaser","Spread","Comet")   
	Normal:
		BOS3 EF 8 A_FaceTarget 
		TNT1 A 0 A_PlaySound("imp/attack")
		TNT1 A 0 A_CustomMissile("PhaseImpBall",28,0,-13)
		TNT1 A 0 A_CustomMissile("PhaseImpBall",28,0,0)
		BOS3 G 6 A_CustomMissile("PhaseImpBall",28,0,13)
		BOS3 ST 8 A_FaceTarget
		TNT1 A 0 A_PlaySound("imp/attack")
		TNT1 A 0 A_CustomMissile("PhaseImpBall",28,0,-13)
		TNT1 A 0 A_CustomMissile("PhaseImpBall",28,0,0)
		BOS3 U 6 A_CustomMissile("PhaseImpBall",28,0,13)
		TNT1 A 0 A_Jump(88,"PhazoLaser")  
		Goto See
	Melee:
		BOS3 EF 8 A_FaceTarget 
		BOS3 G 8 A_MeleeAttack	
		Goto See 
	PhazoLaser:
		BOS3 EF 2 A_FaceTarget
		BOS3 G 2 A_CustomMissile("PhazoLaser",28,0,0)	
		BOS3 ST 2 A_FaceTarget
		BOS3 U 2 A_CustomMissile("PhazoLaser",28,0,0)
		BOS3 EF 2 A_FaceTarget
		BOS3 G 2 A_CustomMissile("PhazoLaser",28,0,0)	
		BOS3 ST 2 A_FaceTarget
		BOS3 U 2 A_CustomMissile("PhazoLaser",28,0,0)
		BOS3 EF 2 A_FaceTarget
		BOS3 G 2 A_CustomMissile("PhazoLaser",28,0,0)	
		BOS3 ST 2 A_FaceTarget
		BOS3 U 2 A_CustomMissile("PhazoLaser",28,0,0)
		BOS3 EF 2 A_FaceTarget
		BOS3 G 2 A_CustomMissile("PhazoLaser",28,0,0)	
		BOS3 ST 2 A_FaceTarget
		BOS3 U 2 A_CustomMissile("PhazoLaser",28,0,0)	
		TNT1 A 0 A_Jump(88,"Spread")
		Goto See
	Spread:
		BOS3 HI 6 A_FaceTarget 
		TNT1 A 0 A_CustomMissile("PhazoFastShot",28,0,4)
		TNT1 A 0 A_CustomMissile("PhazoFastShot",28,0,-4)
		TNT1 A 0 A_CustomMissile("PhazoFastShot",28,0,2)
		TNT1 A 0 A_CustomMissile("PhazoFastShot",28,0,-2)
		BOS3 J 4 A_CustomMissile("PhazoFastShot",28,0,0)
		BOS3 HI 6 A_FaceTarget 
		TNT1 A 0 A_CustomMissile("PhazoFastShot",28,0,4)
		TNT1 A 0 A_CustomMissile("PhazoFastShot",28,0,-4)
		TNT1 A 0 A_CustomMissile("PhazoFastShot",28,0,2)
		TNT1 A 0 A_CustomMissile("PhazoFastShot",28,0,-2)
		BOS3 J 4 A_CustomMissile("PhazoFastShot",28,0,0)
		TNT1 A 0 A_Jump(88,"Comet")
		Goto See	   
	Comet:
		BOS3 HI 8 A_FaceTarget
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 Bright A_Custommissile("PArchonComet",32,0,0)
		TNT1 A 0 Bright A_Custommissile("PArchonComet",32,0,5)
		TNT1 A 0 Bright A_Custommissile("PArchonComet",32,0,-5)
		BOS3 J 7 Bright A_Custommissile("PArchonComet",32,0,10)
		Goto See
	Melee:
		TNT1 A 0 A_UnHideThing
		TNT1 A 0 A_SetTranslucent(1)
		BOS3 EF 8 A_FaceTarget 
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		BOS3 G 6 A_MeleeAttack
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		BOS3 G 0 A_Jump (128,1)
		Goto See
		BOS3 ST 8 A_FaceTarget
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		BOS3 U 6 A_MeleeAttack
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_Jump (64,1)
		Goto See
		BOS3 HI 8 A_FaceTarget
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_MeleeAttack
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		BOS3 J 6 A_MeleeAttack
		//TNT1 A 0 A_SpawnItem("PHellionSmokeSpawner",0,0,0,0)
		Goto See
	Pain: 
		TNT1 A 0 A_UnHideThing
		TNT1 A 0 A_SetTranslucent(1)
		BOS3 K 2 
		BOS3 K 2 A_Pain 
		Goto See 
	Death: 
		TNT1 A 0 A_UnHideThing
		TNT1 A 0 A_SetTranslucent(1)
		BOS3 L 8 
		BOS3 M 8 A_Scream 
		BOS3 N 8 
		BOS3 O 8 A_NoBlocking 
		BOS3 PQ 8 
		BOS3 R 63000 CanRaise
		Stop
	XDeath:
		TNT1 A 0 A_UnHideThing
		TNT1 A 0 A_SetTranslucent(1)
		XARC A 5
		XARC B 0 A_SpawnItemEx("MutantGibbedGenerator",0,0,0,0,0,0,0,128,0)
		XARC B 5 A_XScream
		XARC C 5 A_NoBlocking
		XARC DEFGH 5
		XARC I 63000 CanRaise
		Stop
	}
}

ACTOR PArchonComet
{
PROJECTILE
Height 12
Radius 8
Speed 25
Scale 1.0
RENDERSTYLE Normal
Damage 20
+THRUGHOST
+FIREDAMAGE
DamageType "NobleComet"
SeeSound "weapons/firbfi"
DeathSound "weapons/hellex"
States
	{
	Spawn: 
		LRCB AAAABBBBCCCC 1 Bright A_SpawnItemEx("PArchonCometTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SetTranslucent (0.67,1)
		LRCB J 3 Bright
		LRCB K 3 Bright A_Explode(128,128,0)
		LRCB LMN 3 Bright
		Stop
	}
}

ACTOR PArchonCometTrail
{   
PROJECTILE
Height 3
Radius 3
Speed 0
Scale 0.75
RENDERSTYLE ADD
ALPHA 0.67
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 3 Bright
		LRCB DEFGHI 3 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop		  
	}
}

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

ACTOR PhaseOverlordGhostB : PhaseOverlordGhostA
{   
States
	{
	Fade:
		BOS3 B 2 A_FadeOut(0.1,1)
		Loop
	}
}

ACTOR PhaseOverlordGhostC : PhaseOverlordGhostA
{   
States
	{
	Fade:
		BOS3 C 2 A_FadeOut(0.1,1)
		Loop
    }
}

ACTOR PhaseOverlordGhostD : PhaseOverlordGhostA
{   
States
	{
	Fade:
		BOS3 D 2 A_FadeOut(0.1,1)
		Loop
    }
}

ACTOR PHellionSmoke
{
Scale 0.4
RenderStyle Normal
+MISSILE
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+THRUACTORS
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		PMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR PHellionSmoke2 : PHellionSmoke { Scale 0.6 }
ACTOR PSoulSmoke : PHellionSmoke { Scale 0.12 }

ACTOR PHellionSmokeSpawner : RedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAA 0 A_SpawnItemEx("PHellionSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,128,0)
		TNT1 A 1
		Stop
	}
}

ACTOR PHellionSmokeAttackSpawner : RedParticleSpawner
{
States
	{
	Spawn:   
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("PHellionSmoke2",random(12,-12),random(12,-12),random(12,18),0,0,random(6,9),0,128,0)
		TNT1 A 0 A_SpawnItemEx("PHellionSmoke2",random(22,-22),random(22,-22),random(6,12),0,0,random(3,6),0,128,0)
		TNT1 A 1
		Stop
	}
}

ACTOR PhaseBaronBall
{
PROJECTILE
Height 5
Radius 5
Speed 15
FastSpeed 20
RENDERSTYLE ADD
Decal "DoomImpScorch"
Damage 5
+RIPPER
+SEEKERMISSILE
+THRUSPECIES
+BLOODLESSIMPACT
Species "Imps"
SeeSound "Null"
DeathSound "phaseimp/shotx"
States
	{
	Spawn:
		TNT1 A 0 Bright A_SeekerMissile(12,0)
		DIMB AB 1 Bright A_SpawnItemEx("PhaseBallTrail",0,0,0,0,0,0,0,128,0)
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
		TNT1 AAA 0 A_CustomMissile("Kaboom8", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))	
		DIMB CDE 3 Bright
		Stop
	}
}

Actor PhazoFastShot : GuardianTracer
{
Speed 24
FastSpeed 26
RenderStyle Translucent
Alpha 0.85
Decal "BaronScorch"
Damage 12
-SEEKERMISSILE
SeeSound "monsters/newfireshoot"
DeathSound "monsters/newfireexplode"
States
	{
	Spawn:
		PPB2 AAABBB 1 Bright A_SpawnItemEx("PhazoFastShotTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
		TNT1 AAA 0 A_CustomMissile("Kaboom8",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))	
		PPB2 DEFG 3 Bright
		Stop
	}
}

Actor PhazoFastShotTrail : BFG9500Trail
{
Scale 0.85
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1
		Goto Fade
	Fade:
		PPB2 AB 1 A_FadeOut(0.1,1)
		Loop
	}
}

Actor PhazoLaser : FastProjectile
{
Height 6
Radius 6
Speed 120
Scale 0.75
Renderstyle Add
MissileType "PhazoLaserTrail"
Damage 4
-RIPPER
+NOEXPLODEFLOOR
Damagetype "CacoLich"
SeeSound "baron/attack"
DeathSound "baron/shotx"
States
	{
	Spawn:
		PPB1 ABCB 1 Bright //A_Weave(0,4,0,2)
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
		TNT1 AAA 0 A_CustomMissile("Kaboom8", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
		PPB1 DDFFGGGGG 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor CyLaser : PhazoLaser
{
Damagetype "NobleComet"
States
	{
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
		TNT1 AAA 0 A_CustomMissile("Kaboom8", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
		PPB1 DDFFGGGGG 2 Bright A_FadeOut
		Stop
	}
}

Actor PhazoLaserTrail
{
Scale 0.1
Renderstyle Add
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+CANNOTPUSH
+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("PhazoLaserTrail2",0,0,8)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop	  
	}
}

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

ACTOR PurpleWalkFire
{
Speed 0
Scale 1.4
RenderStyle Add
Alpha 0.75
+MISSILE
+DROPOFF
+RANDOMIZE
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+THRUACTORS
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 10 Bright
		PRTF ABC 3 Bright
		TNT1 A 0 A_Jump(191,3)
		TNT1 A 0 A_CustomMissile("PurpleWalkFire",0,24,0)
		TNT1 A 0 A_CustomMissile("PurpleWalkFire",0,-24,0)
		PRTF DEFGHIJKLMNO 3 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
    }
}