Actor PhaseCaco
{
MONSTER
Health 500
Height 56
Radius 30
Mass 500
Speed 12
FloatSpeed 6
BloodColor "Purple"
Meleedamage 15
Painchance "Mine", 128
PainChance 20
+NoFear
+NOGRAVITY
+FLOAT
+MISSILEMORE
+DontHurtSpecies
+DontHarmSpecies
+DontHarmClass
Species "Cacodemon"
DamageFactor "CacoLich", 0.0
DamageFactor "HelementalComet", 0.0
DamageFactor "CacoComet", 0.0
DamageFactor "SoulToxic", 0.0
Damagefactor "EleSouls", 0.0
DropItem "LifeEssence", 200
DropItem "ArmorBonusMax", 200
SeeSound "PhaseCaco/sight"
ActiveSound "PhaseCaco/active"
MeleeSound "caco/melee"
PainSound "PhaseCaco/pain"
DeathSound "PhaseCaco/death"
Obituary "%o's torso received a dimensional tear from a Phase Cacodemon."
HitObituary "%o was devoured by a Phase Cacodemon." 
States
	{
	Spawn:
		PHCO A 10 A_Look
		Loop
	See:
        TNT1 A 0 A_SetTranslucent(1)
		PHCO A 3 A_Chase
		TNT1 A 0 A_Jump(15,"Dodge")
		TNT1 A 0 A_Jump(15,"Rush")
		TNT1 A 0 A_Jump(10,"Phase")
		Loop
	Rush:
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		PHCO A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("PhaseCacoGhost")
		TNT1 A 0 A_Jump(50,"See")
		TNT1 A 0 A_Jump(45,"Dodge")
		TNT1 A 0 A_Jump(20,"Phase")
		Loop
	Dodge:
		TNT1 A 0 A_Jump(255,"Right","Left","Back","BackLeftRange","BackRightRange")
		GoTo See
	Right:
		PHCO A 0
		PHCO A 0 ThrustThing(angle*256/360+64,30,0,0)
		PHCO A 5
		GoTo See
	Left:
		PHCO A 0
		PHCO A 0 ThrustThing(angle*256/360+192,30,0,0)
		PHCO A 5
		GoTo See
	Back:
		PHCO A 0
		PHCO A 0 ThrustThing(angle*256/360+128,30,0,0)
		PHCO A 5
		GoTo See
	BackLeftRange:
		PHCO A 0
		PHCO A 0 ThrustThing(angle*256/360+random(133,187),30,0,0)
		PHCO A 5
		GoTo See
	BackRightRange:
		PHCO A 0
		PHCO A 0 ThrustThing(angle*256/360+random(69,123),30,0,0)
		PHCO A 5
		GoTo See
	Missile:
		TNT1 A 0 A_Jump(90,"RipperHoming")
		TNT1 A 0 A_Jump(50,"Phase","Laser")
		PHCO BC 6 A_FaceTarget
		PHCO D 2 Bright A_FaceTarget
		PHCO D 1 Bright
		TNT1 A 0 A_CustomMissile("PhaseBallNoHoming",24,0,-10)
		TNT1 A 0 A_CustomMissile("PhaseBallNoHoming",24,0,5)
		TNT1 A 0 A_CustomMissile("PhaseBallNoHoming",24,0,0)
		TNT1 A 0 A_CustomMissile("PhaseBallNoHoming",24,0,-5)
		TNT1 A 0 A_CustomMissile("PhaseBallNoHoming",24,0,10)
		PHCO D 1 Bright
		PHCO CB 4 A_FaceTarget
		Goto See
	RipperHoming:
		TNT1 A 0 A_Jump(30,"Phase")
		PHCO ABC 3 A_FaceTarget
		PHCO D 6 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("PhaseImpBall",24,0,0)
		PHCO D 6 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("PhaseImpBall",24,0,0)
		PHCO D 6 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("PhaseImpBall",24,0,0)
		PHCO D 1 Bright
		PHCO CB 4 A_FaceTarget
		Goto See
	Laser:
		PHCO ABC 6
		PHCO D 6 Bright A_FaceTarget
		PHCO D 2 A_CustomMissile("PhazoLaser",24,0,0)
		PHCO DD 2 Bright A_FaceTarget
		PHCO D 2 A_CustomMissile("PhazoLaser",24,0,0)
		PHCO DD 2 Bright A_FaceTarget
		PHCO D 2 A_CustomMissile("PhazoLaser",24,0,0)
		PHCO DD 2 Bright A_FaceTarget
		PHCO D 2 A_CustomMissile("PhazoLaser",24,0,0)
		PHCO DD 2 Bright A_FaceTarget
		PHCO D 2 A_CustomMissile("PhazoLaser",24,0,0)
		PHCO DD 2 Bright A_FaceTarget
		PHCO D 2 A_CustomMissile("PhazoLaser",24,0,0)
		PHCO DD 2 Bright A_FaceTarget
		PHCO CB 4 A_FaceTarget
		Goto See
	Phase:
		TNT1 A 0 A_PlaySound("phaseimp/teleport")
		PHCO A 4 A_FaceTarget
		PHCO A 3 A_SetTranslucent(0.8)
		PHCO A 3 A_SetTranslucent(0.6)
		PHCO A 3 A_SetTranslucent(0.4)
		PHCO A 3 A_SetTranslucent(0.2)
		PHCO A 3 A_SetTranslucent(0.2)
		Goto PhaseChase
	PhaseChase:
		PHCO A 2 A_Chase("","")
		TNT1 A 0 A_Jump(5,"Dodge")
		TNT1 A 0 A_Jump(10,"See")
		Loop
	Melee:
        TNT1 A 0 A_SetTranslucent(1)
		PHCO BC 5 A_FaceTarget
		PHCO D 5 A_MeleeAttack
		PHCO CB 5 A_FaceTarget
		Goto See
	Pain:
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_Jump(128,"Dodge")
		PHCO E 3
		PHCO F 6 A_Pain
		TNT1 A 0 A_Jump(128,"Phase","Rush")
		Goto See
	Death:
		TNT1 A 0 A_SetTranslucent(1)
		PHCO G 8 A_Scream
		PHCO H 8 A_SpawnItemEx("MutantGibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 A 0 A_Noblocking
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,1)
		PHCO I 525
	Crash:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(CORPSE,1)
		PHCO J 8
		PHCO K 8 A_SpawnItemEx("MutantGibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,0)
		PHCO L -1
		Stop
	Raise:
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		PHCO LKJIHG 4
		Goto See         
	}
}  

Actor PhaseBallNoHoming : PhaseImpBall
{
-SeekerMissile
}

ACTOR PhaseCacoGhost
{
PROJECTILE
Radius 2
Height 2
Speed 0
Scale 1.1
Alpha 0.7
RENDERSTYLE Translucent
+CLIENTSIDEONLY
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 1
		PHCO A 2 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}