Actor ChaosSoul
{
Tag "Chaos Soul"
Monster
Health 200
Height 56
Radius 16
Scale 1.25
Mass 50
Speed 7
FloatSpeed 7
Damage (15)
PainChance "Souls", 0
PainChance "ChaosSoul", 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", 200, 15
DropItem "ArmorBonusMax", 185
DropItem "LifeEssence", 200, 15
DropItem "ArmorBonusMax", 185
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:
	  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
	 NetherBalls:
	  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("Netherball2",23,0,-11)
	  TNT1 A 0 A_CustomMissile("Netherball2",23,0,11)
	  TNT1 A 0 A_CustomMissile("Netherball2",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
	  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
	  TNT1 A 0 A_MonsterRefire(90,"See")
	  TNT1 A 0 A_Jump(100,"See")
	  GoTo See
	 Missile:
	  TNT1 A 0 A_Jump(128,"NetherBalls")
	  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(39)
	  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
	  Pain:
	   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
	TNT1 A 0 A_PlaySound("weapons/rocklx",0,1.0,0)
	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 Netherball2 : Netherball
{
Damagetype "ChaosSoul"
Species "Souls"
}

Actor ChaosLightning : NetherLightning
{
Speed 50
Damagetype "ChaosSoul"
Species "Souls"
States
{
Spawn:
    NLI2 AA 1 Bright A_SpawnItemEx ("ChaosLightningTrail", 0, 0, 0, 0, 0, 0, 0, 0, 0)
    NLI2 A 0 Bright A_SpawnItemEx ("ChaosLightningSpark", 0, 0, 0, random(0, -4), random(-2, 2), random(-2, 2), 0, 0, 0)
    NLI2 AA 1 Bright A_SpawnItemEx ("ChaosLightningTrail", 0, 0, 0, 0, 0, 0, 0, 0, 0)
    NLI2 A 0 Bright A_SpawnItemEx ("ChaosLightningSpark", 0, 0, 0, random(0, -4), random(-2, 2), random(-2, 2), 0, 0, 0)
    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))
    NLI2 ABCDEFG 1 Bright
    Stop
    }
}

actor ChaosLightningTrail : NetherLightningTrail
{
    States
    {
    Spawn:
        NLI2 A 1 A_FadeOut (0.025)
        NLI2 A 0 A_Jump (32, "Spark")
        loop
    Spark:
        NLI2 A 0 A_SpawnItemEx ("ChaosLightningSpark", 0, 0, 0, random(0, -4), random(-2, 2), random(-2, 2), 0, 0, 0)
        goto Spawn
    }
}

actor ChaosLightningSpark : NetherLightningSpark
{
    States
    {
    Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
        NLI2 BCDEFG 1 Bright
        stop
    }
}


ACTOR Chaos10KEx : Player10KEx
{
  Radius 11
  Height 8
  Damage 140
  Decal BFG15KLightning
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT 
  +FORCERADIUSDMG
  DamageType "ChaosSoul"
  Species "Souls"
  Renderstyle Add
  Alpha 0.75
  Scale 0.85
  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
  }
}