Actor ChaosElemental 17575
{
//$Category Monsters/DUST
//$Sprite CHELA1
//$Title "Chaos Elemental"
Health 2000
Radius 31
Height 56
Mass 1000
Speed 13
PainChance 20
Scale 0.85
Obituary "%o was fried by the Chaos Elemental's lightning."
Monster
+Float
+NoGravity
+MissileMore
+DontHarmSpecies
PainChance "Souls", 0
PainChance "ChaosSoul", 0
DamageFactor "CurseComet", 0.0
DamageFactor "HelementalComet", 0.0
DamageFactor "SoulToxic", 0.0
DamageFactor "BombBreath", 0.0
DropItem "BossLifeEssence" 200 25
DropItem "BossArmorBonusMax" 200 1
DropItem "ChaosEssence" 64
DropItem "BigDustMana" 128 100
DropItem "DustMana" 256 30
DropItem "DustMana" 256 30
MeleeDamage 20
MeleeRange 68
Bloodcolor "Green"
SeeSound "ChaosElemental/Sight"
PainSound "ChaosElemental/Pain"
DeathSound "ChaosElemental/Death"
ActiveSound "ChaosElemental/Active"
MeleeSound "caco/melee"
Species "EleSouls"
  states
  {
  Spawn:
	CHEL A 10 A_Look
    loop
  See:
	CHEL A 0 A_SetTranslucent(1)
	CHEL A 0 A_SetShootable
    CHEL A 0 A_UnSetInvulnerable
    CHEL AABBAACC 3 A_Chase
    CHEL A 0 A_Jump(32,"Teleport")
    Loop
  Missile:
    TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_Jump(200,"Missile2","Missile3")
    Goto Missile1
  Missile1:
    CHEL DE 8 A_FaceTarget
    CHEL FF 8 bright A_PainAttack("ChaosSoul")
    CHEL ED 8 A_FaceTarget
    Goto See
  Missile2:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_PlaySound("ChaosElemental/Sight")
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX5",40,43,0,0)
    CHEL G 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX5",40,43,0,0)
    CHEL G 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX4",40,43,0,0)
    CHEL G 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX4",40,43,0,0)
    CHEL G 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX3",40,43,0,0)
    CHEL G 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX3",40,43,0,0)
    CHEL G 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX2",40,43,0,0)
    CHEL H 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX2",40,43,0,0)
    CHEL H 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,43,0,0)
    CHEL H 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,43,0,0)
    CHEL H 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,43,0,0)
    CHEL H 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,43,0,0)
    CHEL H 4 Bright A_FaceTarget
    CHEL I 8 Bright A_CustomMissile("ChaosSuperLightningProj",43,0,0,0,0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	CHEL HG 10 Bright
	Goto See
  Missile3:
    CHEL JJJJJJJJ 1 A_FaceTarget
    CHEL K 0 Bright A_CustomMissile("ChaosLightning",82,-34,random(-3,3),0,random(-3,3))
    CHEL K 0 Bright A_CustomMissile("ChaosLightning",16,-34,random(-3,3),0,random(-3,3))
    CHEL K 0 Bright A_CustomMissile("ChaosLightning",82,34,random(-3,3),0,random(-3,3))
    CHEL K 0 Bright A_CustomMissile("ChaosLightning",16,34,random(-3,3),0,random(-3,3))
    CHEL K 0 Bright A_CustomMissile("ChaosLightning",54,-42,random(-3,3),0,random(-3,3))
    CHEL K 4 Bright A_CustomMissile("ChaosLightning",54,42,random(-3,3),0,random(-3,3))
    CHEL J 4 A_SpidRefire
    CHEL J 0 A_Jump(32,"See")
    goto Missile3+8
  Melee:
    CHEL ADF 5 A_FaceTarget
    CHEL E 5 A_MeleeAttack
    goto See
  Pain:
    CHEL L 0 A_Jump(20,"Teleport")
    CHEL L 6
    CHEL L 6 A_Pain
    goto See
  Teleport:
    CHEL J 1 Bright A_UnSetShootable
	CHEL JJJJJJJJJJJ 1 A_FadeOut(0.1,0)
	CHEL J 1 
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
    CHEL J 1 A_PlayWeaponSound("boss/teleport")
	CHEL JJJJJJJJJJJ 1 A_FadeIn(0.1)
    CHEL J 1 Bright A_SetShootable
    Goto See
  Death:
    CHEL L 20 A_Scream
    CHEL M 8 bright
	TNT1 A 0 A_Playsound("BFlan/LightningExp",7)
	TNT1 A 0 A_SpawnItem("PlayerDTBFGEx",0,30)
	TNT1 AAAAAA 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, random(30,50), 0, 0, 0, 0, 128)  
	TNT1 AAAAAA 0 A_CustomMissile("SmokeFX",random(30,50), 0, random(0,360), 2, random(0,360))
	TNT1 AAAAAAAAA 0 A_CustomMissile("Kaboom11",random(30,50),0,random(0,360),2,random(0,360))
	TNT1 A 0 Radius_Quake(20,8,0,12,0)
    TNT1 A 0 A_Explode(260,200)
    CHEL N 4 bright A_SpawnItemEx("GreenGibbedGenerator",Random(10,-10),Random(10,-10),Random(20,40),0,0,0,0,128,0)
    TNT1 A 0 A_Explode(260,200)
    CHEL NOO 4 bright A_SpawnItemEx("GreenGibbedGenerator",Random(10,-10),Random(10,-10),Random(20,40),0,0,0,0,128,0)
	TNT1 AA 0 A_SpawnItemEx("GreenGibbedGenerator",Random(10,-10),Random(10,-10),Random(20,40),0,0,0,0,128,0)
	TNT1 A 0 A_PainDie("ChaosSoul")
    CHEL PPPPP 0 bright A_CustomMissile("ChaosFlesh1",random(0,90),random(0,40),random(-180,180),2,random(-15,15))
    CHEL PPPPP 0 bright A_CustomMissile("ChaosFlesh2",random(0,90),random(0,40),random(-180,180),2,random(-15,15))
    CHEL PPPPPPPPPP 0 A_CustomMissile("ChaosFlesh3",random(0,90),random(0,40),random(-180,180),2,random(-15,15))
    CHEL PPPPPPPPPP 0 A_CustomMissile("ChaosFlesh4",random(0,90),random(0,40),random(-180,180),2,random(-15,15))
    CHEL PPPPPPPPPP 0 A_CustomMissile("ChaosFlesh5",random(0,90),random(0,40),random(-180,180),2,random(-15,15))
    CHEL PPPPPPPPPP 0 A_CustomMissile("ChaosFlesh6",random(0,90),random(0,40),random(-180,180),2,random(-15,15))
    CHEL P 0 bright A_CustomMissile("ChaosBigArm1",40,-40,-90,2,random(-1,1))
    CHEL P 0 bright A_CustomMissile("ChaosBigArm2",40,40,90,2,random(-1,1))
    CHEL P 0 bright A_CustomMissile("ChaosSmallArm1",100,-30,-90,2,random(-15,15))
    CHEL P 0 bright A_CustomMissile("ChaosSmallArm1",100,30,90,2,random(-15,15))
    CHEL P 0 bright A_CustomMissile("ChaosSmallArm2",100,-30,-90,2,random(-15,15))
    CHEL P 0 bright A_CustomMissile("ChaosSmallArm2",100,30,90,2,random(-15,15))
    CHEL P 0 bright A_CustomMissile("ChaosHorn1",110,-16,-90,2,random(-15,15))
    CHEL P 0 bright A_CustomMissile("ChaosHorn2",110,16,90,2,random(-15,15))
    CHEL PQRSTUV 8 bright
    stop
  }
}



ACTOR ChaosSuperLightningFX : ImpballTrail
{
  Scale 1
  Renderstyle Add
  Alpha 1
  +NOINTERACTION
  States
  {
  Spawn:
    CLIG ABCDE 1 Bright
    Stop
  }
}

ACTOR ChaosSuperLightningFX2 : ChaosSuperLightningFX
{
  Scale 0.8
}

ACTOR ChaosSuperLightningFX3 : ChaosSuperLightningFX
{
  Scale 0.6
}

ACTOR ChaosSuperLightningFX4 : ChaosSuperLightningFX
{
  Scale 0.4
}

ACTOR ChaosSuperLightningFX5 : ChaosSuperLightningFX
{
  Scale 0.2
}

ACTOR ChaosSuperLightningProj : FastProjectile
{
   Radius 12
   Height 6
   Speed 80
   Damage 50
   RENDERSTYLE ADD
   +NODAMAGETHRUST
   +FORCEXYBILLBOARD
   +FORCERADIUSDMG
   Damagetype "BombBreath"
   Deathsound "BFlan/LightningExp"
   Missiletype "ChaosSuperLightningTrailSpawner"
   Missileheight 8
   States
   {
   Spawn:
      CLIG ABCDE 1 Bright
      Loop
   Death:
      TNT1 AAAAAA 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, random(15,35), 0, 0, 0, 0, 128)  
	  TNT1 AAAAAA 0 A_CustomMissile("SmokeFX", random(15,35), 0, random(0,360), 2, random(0,360))
	  TNT1 AAAAAAAAA 0 A_CustomMissile("Kaboom11",random(15,35),0,random(0,360),2,random(0,360))
	  TNT1 A 0 A_SpawnItem("PlayerDTBFGEx",0,-10)
	  TNT1 A 0 Radius_Quake(20,8,0,12,0)
      BFE3 AB 4 Bright A_Explode(260,200)
	  BFE3 CDEF 5 Bright
      stop
   }
}

actor ChaosSuperLightningTrailSpawner
{
  Radius 0
  Height 0
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    TNT1 AA 0 A_SpawnItemEx("ChaosSuperLightningTrail", Random(-20, 20), Random(-20, 20), Random(-20, 20), 0, 0, 0, 0, 160)
	Stop
  }
}

actor ChaosSuperLightningTrail : ImpballTrail
{
  Scale 1.2
  Renderstyle Add
  Alpha 0.8
  +NOINTERACTION
  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 ChaosFlesh1
{
   Speed 16
   Mass 100
   Radius 1
   Height 1
   PROJECTILE
   +THRUGHOST
   -NOGRAVITY
   States
   {
   Spawn:
      CHF1 ACEGIKM 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF1 O 3
      CHF1 Q -1
      stop
   }
}

ACTOR ChaosFlesh2 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF1 BDFHJLN 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF1 P 3
      CHF1 R -1
      stop
   }
}

ACTOR ChaosFlesh3 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF2 ACEG 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF2 I -1
      loop
   }
}

ACTOR ChaosFlesh4 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF2 BDFH 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF2 J -1
      loop
   }
}

ACTOR ChaosFlesh5 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF3 ACEGI 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF3 K -1
      loop
   }
}

ACTOR ChaosFlesh6 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF3 BDFHJ 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF3 L -1
      loop
   }
}

ACTOR ChaosBigArm1 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF4 ACEGI 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF4 K 3
      CHF4 M -1
      stop
   }
}

ACTOR ChaosBigArm2 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF4 BDFHJ 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF4 L 3
      CHF4 N -1
      stop
   }
}

ACTOR ChaosSmallArm1 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF5 ACEG 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF5 I -1
      stop
   }
}

ACTOR ChaosSmallArm2 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF5 BDFH 5 A_SpawnItemEx("GreenGibTrail", 0, 0, 0, Random(-1,1), Random(-1,1), Random(-1,1), 0, 128)
      loop
   Death:
      CHF5 J -1
      stop
   }
}

ACTOR ChaosHorn1 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF6 ACEGI 5
      loop
   Death:
      CHF6 K -1
      stop
   }
}

ACTOR ChaosHorn2 : ChaosFlesh1
{
   States
   {
   Spawn:
      CHF6 BDFHJ 5
      loop
   Death:
      CHF6 L -1
      stop
   }
}