
// HELLSTORM ELEMENTAL
/*
*/
//"Yholl, what have you done?." - Edward850, 2014
ACTOR RLArmageddonPainElemental : RLPainElementalBase 16564
{
  Health 750
  GibHealth -120
  
  MeleeThreshold 148
  MeleeRange 96
  Painchance 196
  
  SeeSound "hellstormelemental/sight"
  ActiveSound "hellstormelemental/sight"
  PainSound "hellstormelemental/pain"
  DeathSound "hellstormelemental/death"
  
  +QUICKTORETALIATE
  +DONTFALL
  
  Obituary "%o was subjected to theoretical physics by a Hellstorm Elemental."
  HitObituary "%o was subjected to theoretical physics by a Hellstorm Elemental."
  Tag "Hellstorm Elemental"
    //$category "MP Armageddon"
  
	// Guncaster compatibility
	DropItem "Amber", 192
	DropItem "Ruby"
	DropItem "Ruby"
	DropItem "Emerald"
	DropItem "Emerald"
  
  var int user_projectileeattimer;
  States
  {
  Spawn:
	TNT1 A 0 A_ChangeFlag ("NOPAIN", 0)
	TNT1 A 0 A_ChangeFlag ("INVULNERABLE", 0)
	TNT1 A 0 A_JumpIfInventory ("RLHellstormElementalGonnaHellstorm", 1, "PreResetCheck")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_Look
    Loop
  PreResetCheck:
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_LookEx (LOF_NOSEESOUND | LOF_NOSOUNDCHECK, 0, 0, 0, 360, "Missile")
	TNT1 A 0 A_TakeInventory ("RLHellstormElementalGonnaHellstorm", 1)
	TNT1 A 0 A_ChangeFlag ("NOTELEFRAG", 0)
	TNT1 A 0 A_Respawn (RSF_FOG | RSF_TELEFRAG)
	Goto Spawn
	
  See:
	TNT1 A 0 A_GiveInventory ("RLHellstormElementalGonnaHellstorm", 1)
	TNT1 A 0 A_ChangeFlag ("NOTELEFRAG", 1)
	TNT1 A 0 A_ChangeFlag ("NOPAIN", 0)
	TNT1 A 0 A_ChangeFlag ("INVULNERABLE", 0)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE A 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE B 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE B 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE C 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE C 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE B 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE B 3 Bright A_Chase
    Loop
	
  MeleeProper:
  MissileProper:
//	TNT1 A 0 A_Jump (256, "ProjectileEating")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE D 5 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE E 5 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE F 4 Bright A_FaceTarget
    AELE F 1 Bright A_CustomMissile("RLHellstormBlast", 24)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE E 3 Bright A_Chase ("", "")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE D 3 Bright A_Chase ("", "")
    Goto See
	
  PainMain:
	TNT1 A 0 A_Jump (128, "ProjectileEating")
	// Make sure it doesn't try and eat melee-based attacks.
  Pain.Melee:
  Pain.BluntMelee:
  Pain.SliceMelee:
  Pain.SlashMelee:
  Pain.SlashEnergyMelee:
  Pain.Sonic:
  Pain.Chainsaw:
  Pain.Punch:
	TNT1 A 0 A_ChangeFlag ("NOTELEFRAG", 1)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE G 3 Bright
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE G 3 Bright
    AELE G 3 Bright A_Pain
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE G 3 Bright
    Goto See

  ProjectileEating:
	TNT1 A 0 A_ChangeFlag ("NOTELEFRAG", 1)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_ChangeFlag ("NOPAIN", 1)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE D 3 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE E 3 Bright A_FaceTarget
	TNT1 A 0 A_Stop
    TNT1 A 0 A_SetUserVar("user_projectileeattimer", random(15,55))
	TNT1 A 0 A_ChangeFlag ("NORADIUSDMG", 1)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormElementalAbsorbHitbox", 20,0,0, 0,0,0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION)
  ProjectileEatingLoop:
    TNT1 A 0 A_CustomMissile("RLHellstormElementalProjectileEating", 24, 0, 15, CMF_AIMDIRECTION)
    TNT1 A 0 A_CustomMissile("RLHellstormElementalProjectileEating", 24, 0, -15, CMF_AIMDIRECTION)
    TNT1 A 0 A_CustomMissile("RLHellstormElementalProjectileEating", 24, 0, 0, CMF_AIMDIRECTION) // Destroys projectiles around itself
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	TNT1 A 0 A_CustomRailgun (0, frandom(-8, 8), "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(-45,45), frandom(-45,45), random(64,256), 1, 0.2, 0)
    AELE F 3 Bright
    TNT1 A 0 A_SetUserVar("user_projectileeattimer", user_projectileeattimer-1)
    TNT1 A 0 A_JumpIf (user_projectileeattimer <= 0, "AbsorbFinish")
	Goto ProjectileEatingLoop
  AbsorbFinish:
    TNT1 A 0 A_GiveInventory ("RLHellstormElementalStopAbsorb",1)
	TNT1 A 0 A_ChangeFlag ("NORADIUSDMG", 0)
	TNT1 A 0 A_ChangeFlag ("NOPAIN", 0)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE E 3 Bright A_Chase ("", "")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE D 3 Bright A_Chase ("", "")
    Goto See

  XDeathMain:
  DeathMain:
    TNT1 A 0 A_GiveInventory ("RLArmageddonPainElementalKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    TNT1 A 0 A_GiveInventory ("RLHellstormElementalStopAbsorb",1)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE H 8 Bright
	TNT1 AAA 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE I 8 Bright A_Scream
    TNT1 A 0 A_NoBlocking
	TNT1 AAA 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE J 8 Bright
	TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAA 0 A_CustomRailgun (10, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", frandom(0,359), frandom(-45,45), random(128,512), 1, 0.2, 0)
    AELE K 8 Bright
	TNT1 AAAAA 0 A_CustomRailgun (10, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
    AELE L 8 Bright
	TNT1 AA 0 A_CustomRailgun (10, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
    AELE M 8 Bright
    TNT1 A 0 A_SpawnItemEx ("RLHellstormElementalDeathRift", 0, 0, 0, 0, 0, 0, 0, SXF_TELEFRAG)
	TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE N 8 Bright
	TNT1 A 0
    "####" "#" 0 A_Jump(256, "DestroyedEnd")
    Goto DestroyedEnd
  SimpleXDeathMain:
    TNT1 A 0 A_GiveInventory ("RLArmageddonPainElementalKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    TNT1 A 0 A_GiveInventory ("RLHellstormElementalStopAbsorb",1)
    AELE H 8 Bright
    AELE I 8 Bright A_Scream
    TNT1 A 0 A_NoBlocking
    AELE JKLMN 8 Bright
	TNT1 A 0
    "####" "#" 0 A_Jump(256, "DestroyedEnd")
    Goto DestroyedEnd
  DeathFrame:
    TNT1 A 0
    "####" "#" 0 A_Jump(256, "DestroyedEnd")
    Goto DestroyedEnd
	
	//Ice
  GenericFreezeDeath:
	"####" "#" 0 A_GiveInventory ("RLArmageddonPainElementalKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    TNT1 A 0 A_GiveInventory ("RLHellstormElementalStopAbsorb",1)
    "####" "#" 0 A_Jump(256, "GenericFreezeMana")
    Goto GenericFreezeMana
	
  Crush:
    TNT1 A 1 A_SpawnItem("TeleportFog",0,0,0,0)
    Stop
//==============================================================================
//					--	DOOMRL ARSENAL STUFF  --
//==============================================================================
  Pain.RigelBlast:
    TNT1 A 0 A_PlaySound("weapons/dn2gunhit", CHAN_BODY)
    D2F1 N 2 Bright
    Goto See
  Pain.NeuralStun:
    D2F1 N 2 Bright
    Goto See
	
  Death.NeuralStun:
    TNT1 A 0
    Goto Death
  Death.RigelBlast:
    TNT1 A 0 A_GiveInventory ("RLDuke2Score", 2500, AAPTR_TARGET)
    TNT1 A 0 A_GiveInventory ("RLArmageddonPainElementalKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    TNT1 A 0 A_PlaySound("weapons/dn2gunexplosion", CHAN_BODY)
    TNT1 A 0 A_NoBlocking
    TNT1 A 0 A_SpawnItemEx ("RLDuke2AdvancedEnemyExplosions", 0,0,32, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 35
    Stop
  XDeath.RigelBlast:
	TNT1 A 0 A_JumpIf(CallACS("DRLA_Gibs"), 1)
	Goto Death.RigelBlast
    TNT1 A 0 A_GiveInventory ("RLDuke2Score", 2500, AAPTR_TARGET)
    TNT1 A 0 A_GiveInventory ("RLArmageddonPainElementalKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    TNT1 A 0 A_PlaySound("weapons/dn2gungib", CHAN_BODY)
    TNT1 A 0 A_NoBlocking
    TNT1 A 0 A_SpawnItemEx ("RLDuke2AdvancedEnemyExplosions", 0,0,32, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 35
    Stop
	
//==============================================================================
//					--	Special Monster Attacks  --
//==============================================================================
  ShadowAuraMeleeAttack:
  ShadowAuraMissileAttack:
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE D 5 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE E 5 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE F 4 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile("RLHellstormBlast", 24, -5, -25)
	TNT1 A 0 A_CustomMissile("RLHellstormBlast", 24, 5, 25)
    AELE F 1 Bright A_CustomMissile("RLHellstormBlast", 24)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE E 3 Bright A_Chase ("", "")
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-128, 128), frandom(-128, 128), frandom(0, 128), 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    AELE D 3 Bright A_Chase ("", "")
    Goto See

//==============================================================================
//					--	Final Doomer Compatibility Stuff  --
//==============================================================================
  DeathXSparkFrame:
    "####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
    "####" "#" 0 A_DropItem("MajorManaPod",-1,54)
    AELE G 0
    "####" "#" 0 A_Jump(256, "DeathXSpark")
	Goto DeathXSpark
	
//==============================================================================
//					--	Guncaster Compatibility Stuff  --
//==============================================================================
	MidasFrame1:
		AELE G 0 A_SpawnItemEx("Midas_Statue_Painis", 0,0,0, 0,0,0, 0,SXF_TRANSFERPOINTERS|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
	MidasFrame2:
		AELE G 0 A_SpawnItemEx("Midas_Statue_Painis", 0,0,0, frandom(-10.0,-12.0),0,frandom(1.0,3.0), 0,SXF_TRANSFERPOINTERS|SXF_SETMASTER|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 10 A_KillChildren
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
	MidasFrame3:
		AELE G 0 A_SpawnItemEx("Midas_Statue_Painis", 0,0,0, frandom(-15.0,-20.0),0,frandom(10.0,15.0), 0,SXF_TRANSFERPOINTERS|SXF_SETMASTER|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 10 A_KillChildren
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
		
	//Gumpop
	Death.Acid:
		AELE G 1 A_ChangeFlag("SOLID",0)
		"####" "#" 1 A_Playsound("Gumpop/Expand",5)
		"####" "###################################" 1 A_SetScale(ScaleX+frandom(0.01,0.025))
		"####" "#" 1 A_Playsound("Gumpop/Pop",5)
		"####" "#" 0 A_Jump(256,"XDeathMain")
		Goto XDeathMain
		
	//Thunderstruck
	Pain.Lightning:
		"####" "#" 0 A_Jump(164,1)
		Goto Pain
		AELE G 0 A_ChangeFlag("NOPAIN",1)
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
		"####" "#" 0 A_Jump(256,"LightningLock")
		Goto LightningLock
		
	//Cauterizer
	Pain.LightningBlue:
		"####" "#" 0 A_Jump(48,1)
		Goto Pain
		AELE G 0 A_ChangeFlag("NOPAIN",1)
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
		"####" "#" 0 A_Jump(256,"BlueLightningLock")
		Goto BlueLightningLock
		
		// Overwrite these for monsters that do not leave corpses behind
	//Dreadful
	Death.Tiberium:
		"####" "#" 0 A_Jump(256, "Death")
		Goto Death
	Death.BlueTiberium:
		"####" "#" 0 A_Jump(256, "Death")
		Goto Death
	//Fire and Lightning
	Death.Fire:
		"####" "#" 0 A_Jump(256,"Death")
		Goto Death
  }
}

ACTOR RLHellstormBlast
{
  Radius 20
  Height 8
  Speed 12
  Damage 0
  Projectile
  Reactiontime 1
  Species "RLPainElemental"
  +THRUSPECIES
  +MTHRUSPECIES
  +DONTHARMSPECIES
  +THRUACTORS
  +NOTIMEFREEZE
  +SKYEXPLODE
  RenderStyle Add
  Alpha 0.98
  SeeSound "hellstormelemental/attack"
  DeathSound "hellstormelemental/impact"
   
    var int user_hellstormframe;
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetUserVar ("user_hellstormframe", 0)
  SpawnLoop:
//    TNT1 A 0 A_CustomMissile ("RLHellstormBlastCollision", 0,0,0, CMF_AIMDIRECTION, pitch)
    TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastCollision", 0,0,0, velx,vely,velz, 0, SXF_NOCHECKPOSITION | SXF_SETTARGET | SXF_NOPOINTERS | SXF_ORIGINATOR)
    TNT1 A 0 A_JumpIfInventory ("RLHellstormNoKillImpact", 1, "NoKillImpact")
    TNT1 A 0 A_JumpIfInventory ("RLHellstormNothingImpact", 1, "ImpactEffects")
    TNT1 A 0 A_JumpIfInventory ("RLHellstormActorImpact", 1, "ActorImpact")
    TNT1 A 0 A_Jump (64, 3)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-32,32),frandom(-32,32),frandom(-16,32), 0,0,0, 0, SXF_NOCHECKPOSITION)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
    TNT1 A 0 A_JumpIf (user_hellstormframe >= 12, "Spawn")
    TNT1 A 0 A_JumpIf (user_hellstormframe >= 9, "SpawnFrameC")
    TNT1 A 0 A_JumpIf (user_hellstormframe >= 6, "SpawnFrameD")
    TNT1 A 0 A_JumpIf (user_hellstormframe >= 3, "SpawnFrameC")
	Goto SpawnFrameB
  SpawnFrameB:
    AEFG B 1 Bright A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
	Goto SpawnFrameIncrement
  SpawnFrameC:
    AEFG C 1 Bright A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
	Goto SpawnFrameIncrement
  SpawnFrameD:
    AEFG D 1 Bright A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
	Goto SpawnFrameIncrement
  SpawnFrameIncrement:
    TNT1 A 0 A_SetUserVar ("user_hellstormframe", user_hellstormframe + 1)
	Goto Spawn
	
  ActorImpact:
//    TNT1 A 0 A_Log ("emit telefragger")
    TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastTelefragger", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG)
	Goto ImpactEffects
  NoKillImpact:
//    TNT1 A 0 A_Log ("emit damager")
    TNT1 A 0 A_CustomMissile ("RLHellstormBlastDamager", 0,0,0, CMF_AIMDIRECTION, pitch)
	Goto ImpactEffects
  ImpactEffects:
    TNT1 A 0 A_PlaySound("hellstormelemental/impact", 7, 1, 0, 0.7)
	TNT1 AAAAA 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-32,32),frandom(-32,32),frandom(0,32), 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_Countdown
  Death:
    TNT1 A 0 A_Stop
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastVortexEffect", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastVortexShockwave", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx ("RLHellstormTeleportEffect", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
	TNT1 A 0 A_Jump (64, 1)
    Stop
	TNT1 AAAAA 0 A_SpawnItemEx ("RLHellstormBlastSpark", frandom(-32,32),frandom(-32,32),frandom(0,32), 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastVortex", 20,0,4, 0,0,0, 0, SXF_TELEFRAG | SXF_NOCHECKPOSITION)
    Stop
  }
}

ACTOR RLHellstormBlastTrail
{
  Radius 13
  Height 8
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +NOTIMEFREEZE
  RenderStyle Add
  Alpha 0.98
  States
  {	
  Spawn:
    AEFG KLMNO 3 Bright
    Stop
  }
}

ACTOR RLHellstormBlastTelefragger
{
  Radius 13
  Height 8
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +NOTIMEFREEZE
  +THRUSPECIES
  +NOTELEPORT
  +NOTIMEFREEZE
  Species "RLPainElemental"
  States
  {	
  Spawn:
    TNT1 A 1
//    TNT1 A 0 A_Log ("death emitted")
    Stop
  }
}

ACTOR RLHellstormBlastDamager
{
  Radius 13
  Height 8
  Speed 12
  Damage (random(123,456))
  Projectile
  +NOTELEPORT
  +NOTIMEFREEZE
  +HITTRACER
  +BLOODLESSIMPACT
  +NODAMAGETHRUST
  +THRUSPECIES
  +MTHRUSPECIES
  +NOTELEPORT
  +NOTIMEFREEZE
  Species "RLPainElemental"
  States
  {	
  Spawn:
    TNT1 A 1
    Stop
  Death:
    TNT1 A 0 A_Log ("damagerate")
    TNT1 A 2
    Stop
  }
}

ACTOR RLHellstormBlastCollision
{
  Radius 13
  Height 8
  Damage 0
  Speed 12
  Projectile
  +NOTELEPORT
  +NOTIMEFREEZE
  +HITTRACER
  +BLOODLESSIMPACT
  +NODAMAGETHRUST
  +THRUSPECIES
  +MTHRUSPECIES
  +NOTELEPORT
  +NOTIMEFREEZE
  Species "RLPainElemental"
  States
  {	
  Spawn:
    TNT1 A 1// NoDelay A_Log ("Scanning")
    Stop
  Death:
//    TNT1 A 0 A_Log ("hit thing")
    TNT1 A 0 A_CheckFlag ("INVULNERABLE", "DoNothing", AAPTR_TRACER)
    TNT1 A 0 A_CheckFlag ("NODAMAGE", "DoNothing", AAPTR_TRACER)
    TNT1 A 0 A_JumpIfInventory ("PowerInvulnerable", 1, "DoNothing", AAPTR_TRACER)
    TNT1 A 0 A_CheckFlag ("BUDDHA", "DoDamage", AAPTR_TRACER)
    TNT1 A 0 A_CheckFlag ("NOTELEFRAG", "DoDamage", AAPTR_TRACER)
    TNT1 A 0 A_CheckFlag ("BOSS", "DoDamage", AAPTR_TRACER)
//    TNT1 A 0 A_Log ("make ded")
    TNT1 A 0 A_GiveInventory ("RLHellstormActorImpact", 1, AAPTR_TARGET)
    TNT1 A 5
    Stop
  DoNothing:
//    TNT1 A 0 A_Log ("is of invuln")
    TNT1 A 0 A_GiveInventory ("RLHellstormNothingImpact", 1, AAPTR_TARGET)
    TNT1 A 5
    Stop
  DoDamage:
//    TNT1 A 0 A_Log ("make hurt")
    TNT1 A 0 A_GiveInventory ("RLHellstormNoKillImpact", 1, AAPTR_TARGET)
    TNT1 A 5
    Stop
  }
}

ACTOR RLHellstormBlastVortex
{
  Radius 13
  Height 8
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +THRUACTORS
  +PAINLESS
  +NOTIMEFREEZE
  RenderStyle Add
  Alpha 0.98
  Reactiontime 105

    var int user_hellstormvortexshockwave;
  States
  {	
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetUserVar ("user_hellstormvortexshockwave", 1)
  SpawnLoop:
    TNT1 A 0 A_JumpIf (user_hellstormvortexshockwave <= 0, "Shockwave")
    TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastCollision", 0,0,0, 1,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETTARGET | SXF_NOPOINTERS | SXF_ORIGINATOR)
    TNT1 A 0 A_JumpIfInventory ("RLHellstormNoKillImpact", 1, "NoKillImpact")
    TNT1 A 0 A_JumpIfInventory ("RLHellstormNothingImpact", 1, "NothingImpact")
    TNT1 A 0 A_JumpIfInventory ("RLHellstormActorImpact", 1, "ActorImpact")
	Goto VisualLoop
	
  VisualLoop:
	TNT1 AA 0 A_SpawnItemEx ("RLHellstormBlastVortexEffect", frandom(-13,13),frandom(-13,13),frandom(-4,4), 0,0,0, 0, SXF_NOCHECKPOSITION)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
    TNT1 A 0 A_RadiusThrust (-10, 512, RTF_NOTMISSILE | RTF_NOIMPACTDAMAGE, 512)
    TNT1 A 0 A_RadiusThrust (-100, 256, RTF_NOTMISSILE | RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 4)
    TNT1 A 0 A_Quake(1, 2, 0, 1024, "")
    TNT1 A 0 A_Quake(5, 2, 0, 512, "")
    TNT1 A 0 A_Quake(9, 2, 0, 256, "")
    TNT1 A 0 A_SetUserVar ("user_hellstormvortexshockwave", user_hellstormvortexshockwave - 1)
    TNT1 A 1 A_Countdown
    Goto SpawnLoop
  Shockwave:
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastVortexShockwave", frandom(-1,1),frandom(-1,1),0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SetUserVar ("user_hellstormvortexshockwave", 5)
    Goto SpawnLoop
  Death:
    TNT1 A 0 A_Stop
    AEFG ABCDEFG 2 Bright
    Stop
	
  ActorImpact:
    TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastTelefragger", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG)
    TNT1 AAAAAAAAAA 0 A_Countdown
	Goto VisualLoop
  NoKillImpact:
    TNT1 A 0 A_CustomMissile ("RLHellstormBlastDamager", 0,0,0, CMF_AIMDIRECTION, pitch)
    TNT1 AAAAAAAAAA 0 A_Countdown
	Goto VisualLoop
  NothingImpact:
	TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastVortexShockwave", frandom(-1,1),frandom(-1,1),0, 0,0,0, 0, SXF_NOCHECKPOSITION)
	Goto Death
  }
}

ACTOR RLHellstormTeleportEffect
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +THRUACTORS
  +NOTIMEFREEZE
  RenderStyle Add
  Alpha 0.98
  States
  {	
  Spawn:
    AEFG ABCDEFG 3 Bright
    Stop
  }
}

ACTOR RLHellstormBlastVortexEffect : RLHellstormTeleportEffect
{
  States
  {	
  Spawn:
	TNT1 A 0 NoDelay A_SetScale (ScaleX+frandom(-0.2, 1.8))
	TNT1 A 0 A_Jump (128, "Spawn2")
    AEFG ABCDEFG 3 Bright
    Stop
  Spawn2:
    AEFG KLMNO 3 Bright
    Stop
  }
}

ACTOR RLHellstormBlastVortexShockwave
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +THRUACTORS
  +NOTIMEFREEZE
  RenderStyle Add
  Alpha 0.12
  Scale 13
  States
  {	
  Spawn:
	TNT1 A 0 NoDelay A_SetScale (ScaleX+frandom(-4.2, 4.2))
    AESH FEDCBA 1 Bright
    Stop
  }
}

ACTOR RLHellstormBlastSpark
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +THRUACTORS
  +NOTIMEFREEZE
  RenderStyle Add
  Alpha 0.98
  States
  {	
  Spawn:
	TNT1 A 0 NoDelay A_SetScale (ScaleX+frandom(-0.5, 1.5))
    AEFG JIHG 3 Bright
    Stop
  }
}

ACTOR RLHellstormElementalDeathRift
{
  Radius 48
  Height 64
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +NOTIMEFREEZE
  States
  {	
  Spawn:
	TFOG AAAAAABBBBCCCCDDDDBBBBCCCCDDDDBBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJ 1 Bright A_RadiusGive ("RLHellstormElementalDeathRiftTeleport", 32, RGF_PLAYERS, 1)
    Stop
  }
}

ACTOR RLHellstormElementalDeathRiftTeleport : RLMPCustomFunction
{
  States
  {
  Pickup:
    TNT1 A 0 
	TNT1 A 0 A_Teleport("Teleport", "RLMegasphereSpot", "TeleportFog", TF_TELEFRAG | TF_NOSRCFOG)
  Teleport:
	TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    Stop
  }
}

ACTOR RLHellstormElementalProjectileEating
{
   Radius 4
   Height 4
   Speed 30
   Mass 0x7fffffff
   Species "RLPainElemental"
   Projectile
   +NOCLIP
   +THRUACTORS
   +THRUSPECIES
   +NOTONAUTOMAP
   States
   {
   Spawn:
   TNT1 A 0
   TNT1 A 1
   TNT1 A 0 A_RadiusGive ("RLHellstormElementalProjectileRemoval", 60, RGF_MISSILES, 1)
   TNT1 A 1 A_Stop
   Stop
   Death:
   TNT1 A 0
   Stop
   }
}

ACTOR RLHellstormElementalProjectileRemoval : RLMPCustomFunction
{
  States
  {
  Pickup:
    TNT1 A 0 A_CheckFlag ("NOCLIP", "IllegalThingo")
    TNT1 A 0 A_CheckFlag ("THRUACTORS", "IllegalThingo")
    TNT1 A 0 A_CheckFlag ("NOINTERACTION", "IllegalThingo")
    TNT1 A 0 A_CheckFlag ("MISSILE", "GenericProjectile")
    Stop
	// Copied straight from Final Doomer
	
  GenericProjectile:
    TNT1 A 0// A_Jump (12, "DestroyProjectile")
	Goto WarpProjectile
  DestroyProjectile:
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE", 1)
    TNT1 A 0 A_ChangeFlag ("THRUACTORS", 1) // Just in case it's still technically active so you don't run into it
    TNT1 A 0 A_Die
    TNT1 A 0 A_Stop
    TNT1 A 0 A_SpawnItemEx ("RLHellstormTeleportEffect", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
//    TNT1 A 0 A_Log ("Destroy")
    Stop
  WarpProjectile:
    TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_Warp (AAPTR_DEFAULT, frandom(-512,512),frandom(-512,512),frandom(-64,64), 0, 0, "SuccessfulWarp")
	Goto DestroyProjectile
  SuccessfulWarp:
    TNT1 A 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
//    TNT1 A 0 A_Log ("Warp")
    Stop
  IllegalThingo:
    TNT1 A 0// A_Log ("Illegal")
    Stop
  }
}

ACTOR RLHellstormElementalAbsorbHitbox
{
  Health 1000000
  Radius 30
  Height 24
  Mass 0x7fffffff
  BloodType "RLHellstormBlastSpark"
  -SOLID
  +SHOOTABLE
  +NOBLOODDECALS
  +DONTGIB
  +NOICEDEATH
  +NODAMAGE
  +INVULNERABLE
  +DONTDRAIN
  +NOTELEOTHER
  +NOTELEFRAG
  +DONTMORPH
  +DONTBLAST
  +NORADIUSDMG
  +THRUSPECIES
  +NOTELEPORT
  +NOTIMEFREEZE
  Species "RLPainElemental"
  Tag "Teleportation Vortex"
  States
  {
  Spawn:
    TNT1 A 1
    TNT1 A 0 A_JumpIfInventory ("RLHellstormElementalStopAbsorb",1, "Deceaserate", AAPTR_MASTER)
    TNT1 A 0 A_Warp(AAPTR_MASTER, 20,0,12, 0, WARPF_INTERPOLATE | WARPF_NOCHECKPOSITION, "Spawn")
  Deceaserate:
    TNT1 A 0 A_Die
  Death:
    TNT1 A 1
    Stop
  }
}

/*
ACTOR RLHellstormElementalOrbitRift1
{
  Radius 9
  Height 9
  Obituary "%o touched a bad thing."
  +NOGRAVITY
  +NOCLIP
  +NOTELEPORT
  +NOTIMEFREEZE
  +DONTBLAST
  +DONTMORPH
  +DONTSQUASH
  +NOTELEOTHER
  +NOTELEFRAG
  +DONTGIB
  
  var int user_angle;
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump(256, "SpawnA")
	Goto SpawnA
  SpawnA:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG B 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnB", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnB:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG B 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnC", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnC:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG B 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnD", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnD:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG C 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnE", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnE:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG C 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnF", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnF:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG C 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnG", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnG:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG D 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnH", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnH:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG D 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnI", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnI:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG D 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnJ", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnJ:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG C 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death.Massacre
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnK", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnK:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG C 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnL", AAPTR_MASTER)
	Goto Death.Massacre
  SpawnL:
    TNT1 A 0 A_Warp(AAPTR_MASTER, 48, 0, 32, user_angle, WARPF_ABSOLUTEANGLE | WARPF_NOCHECKPOSITION | WARPF_INTERPOLATE | WARPF_COPYINTERPOLATION)
    TNT1 A 0 A_Jump (180, 2)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Green", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	AEFG C 1 Bright
    "####" "#" 0 A_SetUserVar("user_angle", user_angle + 4)
    "####" "#" 0 A_SpawnItemEx ("RLHellstormBlastTrail", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TELEFRAG) 
    "####" "#" 0 A_JumpIfInventory("DRPGShadowAuraToken", 1, 1, AAPTR_MASTER)
	Goto Death
	"####" "#" 0 A_CheckFlag ("ISMONSTER", "SpawnA", AAPTR_MASTER)
	Goto Death.Massacre
  Death:
	TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    Stop
//==============================================================================
//					--	DOOMRL ARSENAL STUFF  --
//==============================================================================
  Death.Massacre:
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_Stop
    Stop
  }
}

ACTOR RLHellstormElementalOrbitRift2 : RLHellstormElementalOrbitRift1
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetUserVar("user_angle", 180)
    TNT1 A 0 A_Jump(256, "SpawnA")
	Goto SpawnA
  }
}
*/

ACTOR RLHellstormElementalStopAbsorb : Powerup
{
	Powerup.Duration 4
   +INVENTORY.UNTOSSABLE
}

Actor RLHellstormNoKillImpact : RLPermanentMPInventory {}
Actor RLHellstormNothingImpact : RLPermanentMPInventory {}
Actor RLHellstormActorImpact : RLPermanentMPInventory {}

ACTOR RLCCArmageddonPainElemental : RLArmageddonPainElemental
{
  +TOUCHY
  States
  {
  See:
    AELE AABBCCBB 3 Bright
    Loop
  Missile:
  Melee:
    AELE DE 5 Bright
    AELE F 5 Bright
    AELE ED 3 Bright
    Goto See
  Death:
    AELE H 8 Bright
    AELE I 8 Bright A_Scream
    AELE JK 8 Bright
    AELE L 8 Bright
    AELE M 8 Bright
    AELE O 8 Bright
    Stop
  }
}
