Actor ChaosSoul
{
Monster
Health 200
Height 56
Radius 16
Scale 1.25
Mass 50
Speed 7
FloatSpeed 7
Damage (15)
PainChance "Souls", 0
PainChance 100
+NoBlood
+NoBloodDecals
+FLOAT
+NOGRAVITY
+MISSILEMORE
+MissileEvenMore
+DontHurtSpecies
+DontHarmSpecies
+DONTFALL
+NOICEDEATH
Species "Souls"
Damagetype "Souls"
Damagetype "SoulToxic"
DamageFactor "CurseComet", 0.0
DamageFactor "HelementalComet", 0.0
DamageFactor "SoulToxic", 0.0
DamageFactor "BombBreath", 0.0
DropItem "LifeEssence" 256
DropItem "ArmorBonusMax" 256
DropItem "DustMana" 70
SeeSound "ChaosSoul/Sight"
AttackSound "ChaosSoul/Sight"
PainSound "ChaosSoul/pain"
DeathSound "ChaosSoul/death"
Obituary "%o was driven insane by a Chaos Soul."
HitObituary "%o's head was taken by a Chaos Soul."
States
  {
  Spawn:
	CHOS A 1 Bright A_Look
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_Look
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_Look
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	Loop
  See:
    CHOS A 1 A_SetTranslucent(1)
	TNT1 A 0 A_Jump(10,"Phase")
	CHOS A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	Loop	
  Phase:
    TNT1 A 0 A_PlaySound("phaseimp/teleport")
    CHOS A 2 A_FaceTarget
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
    CHOS A 1 A_SetTranslucent(0.75)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
    CHOS A 1 A_SetTranslucent(0.50)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
    CHOS A 1 A_SetTranslucent(0.25)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
    CHOS A 1 A_SetTranslucent(0)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	Goto Phased
  Phased:
	TNT1 A 0 A_ExtChase(0,0)
	CHOS A 1 A_ExtChase(0,0)
	TNT1 A 0 A_JumpIfInTargetLOS("Phased",45)
	TNT1 A 0 A_Jump(128,"Unphase")
	Loop
  UnPhase:
    TNT1 A 0 A_PlaySound("phaseimp/teleport")
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
    CHOS A 1 A_SetTranslucent(0)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
    CHOS A 1 A_SetTranslucent(0.25)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
    CHOS A 1 A_SetTranslucent(0.50)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
    CHOS A 1 A_SetTranslucent(0.75)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	TNT1 A 0 A_SetTranslucent(1)
    CHOS A 2 A_FaceTarget	
	TNT1 A 0 A_Jump(64,"Missile")
    Goto See
  Missile:
	TNT1 A 0 A_Jump(80,"Lightning")
  Normal:
    CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 0 Bright A_FaceTarget
	CHOS A 1 Bright A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_SkullAttack(40)
	CHOS BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 1 Bright A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),0,0,0,random(0,360),128)
    CHOS B 0 Thing_Stop(0)
	Goto See
  Lightning:
	TNT1 A 0
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS B 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS B 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS B 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	TNT1 A 0 A_CustomMissile("ChaosLightning",23,0,0)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	CHOS A 1 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("GreenFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),128)
	TNT1 A 0 A_CustomMissile("ChaosLightning",23,0,0)
	CHOS A 1 Bright A_FaceTarget
	Goto See
  Pain:
    CHOS A 1 A_SetTranslucent(1)
	TNT1 A 0
	TNT1 A 0 Thing_Stop(0)
	CHOS C 5 Bright A_Pain
	Goto See
  Death:
    TNT1 A 0
    TNT1 A 0 A_SetTranslucent(0.75,1)
	CHOS C 4 Bright A_NoGravity
	CHOS D 4 Bright A_Scream
    TNT1 AA 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2", 15, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_CustomMissile("Chaos10KEx", 15, 0, random(0,360), 2, random(0,360))
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,15,Random(4,-4),Random(4,-4),Random(4,8),0,128)
	CHOS E 3 Bright
	CHOS F 2 Bright A_Fall
	CHOS G 4
	CHOS H 4 
    Stop
	}
}

Actor GreenFire3 : GHellionSmoke
{
  Scale 0.3
}

ACTOR ChaosLightning : NetherLightning
{
  Damagetype "ChaosSoul"
  Species "Souls"
  Missiletype "ChaosLightningTrailSpawner"
  States
  {
  Spawn:
	CLIG ABCDE 1 Bright
    Loop
  Death:
	TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("Kaboom7", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SetScale(0.75)
    NLI2 ABCDEFG 1 Bright
    stop
  }
}

actor ChaosLightningTrailSpawner : NetherLightningTrailSpawner
{
  States
  {
  Spawn:
    TNT1 AA 0 A_SpawnItemEx("ChaosLightningTrail", Random(-5, 5), Random(-5, 5), Random(-5, 5), 0, 0, 0, 0, 160)
	Stop
  }
}

actor ChaosLightningTrail : NetherLightningTrail
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 A 1
    TNT1 A 0 A_Jump(255, "Puff1", "Puff2", "Puff3")
  Puff1:
    CLIG F 1 Bright A_FadeOut(0.1)
    Loop
  Puff2:
    CLIG G 1 Bright A_FadeOut(0.1)
    Loop
  Puff3:
    CLIG H 1 Bright A_FadeOut(0.1)
    Loop
  }
}


ACTOR Chaos10KEx : Player10KEx
{
  Damage 60
  +FORCERADIUSDMG
  DamageType "ChaosSoul"
  Species "Souls"
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("BFGShockwave", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AA 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 AAAA 0 A_CustomMissile("Kaboom13", 0, 0, random(0,360), 2, random(0,360))
    BFE1 A 4 Bright A_Detonate
    BFE1 BCDEF 4 Bright
    Stop
  }
}