ACTOR PhaseSoul : TerrorSoul
{
Monster
Health 100
Height 56
Radius 16
Mass 50
Speed 8
Renderstyle Translucent
Alpha 0.95
PainChance 100
Damage 5
+FLOAT
+NOGRAVITY
+DONTFALL
+NOICEDEATH
+MISSILEMORE
+NOBLOODDECALS
+DONTHURTSPECIES
+THRUSPECIES
Species "EleSouls"
Species "Souls"
DamageFactor "SoulToxic", 0.0
DropItem "LifeEssence", 100
DropItem "ArmorBonusMax", 100
DropItem "DemonAmmo", 100, 60
ActiveSound "skull/active"
AttackSound "skull/melee"
PainSound "skull/pain"
PainSound "monsters/terrorsoulpain"
DeathSound "skull/death"
Obituary "%o was eaten by a Phase soul"
Tag  "\ctPhase Soul\c-"
States
	{
	Spawn:
		TNT1 A 0 Bright A_SpawnItemEx("PSoulSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		PSKU A 2 Bright A_Look
		TNT1 A 0 Bright A_SpawnItemEx("PSoulSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		PSKU A 2 Bright A_Look
		TNT1 A 0 Bright A_SpawnItemEx("PSoulSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		PSKU B 2 Bright A_Look
		TNT1 A 0 Bright A_SpawnItemEx("PSoulSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		PSKU B 2 Bright A_Look
		Loop
	See:
		TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU A 2 Bright A_Chase
		TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU A 2 Bright A_Chase
		TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU B 2 Bright A_Chase
		TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU B 2 Bright A_Chase
		TNT1 A 0 A_Jump(46,"Phase")		
		Loop
	Phased:
		PSKU AABBAABBAABBAABBAABBAABBAABBAABB 1 A_ExtChase(0,0)
		Goto Phased2
	Phased2:
		PSKU AABBAABBAABBAABB 1 A_Chase
		TNT1 A 0 A_Jump(24,"UnPhase")
		Goto Phased2	
	Phase:
		TNT1 A 0 A_PlaySound("phaseimp/teleport")
		PSKU C 2 A_FaceTarget
		PSKU C 1 A_SetTranslucent(0.75)
		PSKU C 1 A_SetTranslucent(0.55)
		PSKU C 1 A_SetTranslucent(0.35)
		PSKU C 1 A_SetTranslucent(0.15)
		Goto Phased
	UnPhase:
		TNT1 A 0 A_PlaySound("phaseimp/teleport")
		PSKU C 1 A_SetTranslucent(0.15)
		PSKU C 1 A_SetTranslucent(0.35)
		PSKU C 1 A_SetTranslucent(0.55)
		PSKU C 1 A_SetTranslucent(0.75)
		TNT1 A 0 A_SetTranslucent(0.95)
		PSKU C 2 A_FaceTarget		
		Goto See
	Missile:
		TNT1 A 0 A_SetTranslucent(0.95)
		TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU A 2 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU A 2 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU C 2 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU C 2 Bright A_SkullAttack(23)
	Missile2:
		PSKU DD 2 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU CC 2 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		TNT1 A 0 A_MonsterRefire(192,"See")
		Goto Missile2
	Pain:
		TNT1 A 0 A_SetTranslucent(0.95)
		TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		PSKU E 3 Bright A_Pain
		PSKU E 3 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
		Goto See
	XDeath:
	Death:
		TNT1 A 0
		TNT1 A 0 A_SetTranslucent(0.95)
		PSKU F 4 Bright A_NoGravity
		PSKU G 4 Bright A_Scream
		TNT1 AA 0 A_SpawnItemEx("SoulPart1",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("SoulPart2",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8),0,SXF_CLIENTSIDE,0)
		TNT1 AA 0 A_SpawnItemEx("SoulPart3",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8),0,SXF_CLIENTSIDE,0)
		PSKU H 4 Bright
		PSKU I 4 Bright A_Fall
		TNT1 AA 0 A_SpawnItemEx("PurpleParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0) 
		TNT1 AAAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),2,random(0,360))
		PSKU J 4
		PSKU K 4
		Stop
	}
}

ACTOR PsoulSpawner : RedParticleSpawner
{
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 A_SpawnItemEx("PSoulSmoke",3,random(-2,2),random(12,16),1,0,random(1,2),random(90,270),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Stop
	}
}