ACTOR PhaseSoul : TerrorSoul
{
Health 100
Radius 16
Height 56
Mass 50
Speed 8
Damage 5
PainChance 100
Species "EleSouls"
Species "Souls"
Monster
renderstyle normal
DropItem "LifeEssence" 100
DropItem "ArmorBonusMax" 100
DropItem "DemonAmmo" 100 60
DamageFactor "SoulToxic", 0.0
+DONTHURTSPECIES
+FLOAT
+NOGRAVITY
+MISSILEMORE
+DONTFALL
+NOBLOOD
+NOBLOODDECALS
AttackSound "skull/melee"
PainSound "skull/pain"
PainSound "monsters/terrorsoulpain"
DeathSound "skull/death"
ActiveSound "skull/active"
Obituary "%o was eaten by a Phase soul"
States
{
Spawn:
    TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
	PSKU A 2 Bright A_Look
    TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
	PSKU A 2 Bright A_Look
    TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
	PSKU B 2 Bright A_Look
    TNT1 A 0 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
	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)
    PSKU AABBAABBAABBAABB 1 A_Chase
    TNT1 A 0 A_Jump(24,"UnPhase")
    Goto Phased+32	
	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 C 0 A_SetTranslucent(1)
    PSKU C 2 A_FaceTarget		
    Goto See
Missile:
    TNT1 A 0 A_SetTranslucent(1)
	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)
    PSKU DD 2 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
	PSKU CC 2 Bright A_SpawnItem("PSoulSpawner",0,0,0,0)
    Goto Missile+10
Pain:
    TNT1 A 0 A_SetTranslucent(1)
    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
Death:
    TNT1 A 0 A_SetTranslucent(1)
	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))
	TNT1 A 0 A_SpawnItemEx("SoulPart2",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
	TNT1 AA 0 A_SpawnItemEx("SoulPart3",0,0,Random(10,20),Random(8,-8),Random(8,-8),Random(6,8))
	PSKU H 4 Bright
	PSKU I 4 Bright A_Fall
    TNT1 AA 0 A_SpawnItemEx("PurpleParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
	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
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 A 0 A_SpawnItemEx("PSoulSmoke",3,random(-2,2),random(12,16),1,0,random(1,2),random(90,270),128,0)
	TNT1 A 1
    Stop
    }
}