
// MAGMABUS
/*
*/
ACTOR RLArmageddonMancubus : RLMancubusBase 16566
{
  Health 1200
  GibHealth -170
  Speed 6
  Mass 3000
  
  PainChance 50
  
  DamageFactor "Fire", 0.25
  DamageFactor "Ice", 0.7
  
  +MISSILEMORE
  +MISSILEEVENMORE
  
  Obituary "%o didn't like the smell of the Magmabus's napalm in the morning."
  Tag "Magmabus"
    //$category "MP Armageddon"
  
	// Guncaster compatibility
	DropItem "Amber"
	DropItem "Sapphire"
  States
  {
  Spawn:
    AMAN CF Random(14,15) A_Look
    Loop
	
  See:
    AMAN AABBCCDDEEFF 4 A_Chase ("", "Missile")
    Loop
	
  MissileProper:
    TNT1 A 0 A_Jump(20, "SplitMissile")
    TNT1 A 0 A_JumpIfCloser (768, "BounceMissile")
    Goto SplitMissile
	
  BounceMissile:
    TNT1 A 0 A_PlaySound("fatso/raiseguns", CHAN_VOICE)
    AMAN G 20 A_FaceTarget
    TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_Jump(256, "BounceMissile1", "BounceMissile2")
  BounceMissile1:
    TNT1 A 0 A_CustomMissile("RLMagmabusBounceLavaBall", 20, 26, 0)
    AMAN H 5 Bright A_CustomMissile("RLMagmabusBounceLavaBall2", 20, -29, 0)
    AMAN I 5
    Goto See
  BounceMissile2:
    TNT1 A 0 A_CustomMissile("RLMagmabusBounceLavaBall2", 20, 26, 0)
    AMAN H 5 Bright A_CustomMissile("RLMagmabusBounceLavaBall", 20, -29, 0)
    AMAN I 5
    Goto See
	
  SplitMissile:
    TNT1 A 0 A_PlaySound("fatso/raiseguns", CHAN_VOICE)
    AMAN G 20 A_FaceTarget
    TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLMagmabusSplitLavaBall", 20, 26, random(-7,4))
    AMAN H 5 Bright A_CustomMissile("RLMagmabusSplitLavaBall", 20, -29, random(-4,7))
    AMAN I 5
    Goto See
	
  PainMain:
    AMAN J 3
    AMAN J 3 A_Pain
    Goto See
	
  XDeathMain:
  DeathMain:
    TNT1 A 0 A_BossDeath
    TNT1 A 0 A_GiveInventory ("RLArmageddonMancubusKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    AMAN K 2
    TNT1 A 0 A_SpawnItemEx ("RLReducedGibber", 0,0,0, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
    AMAN L 5 A_Scream
    AMAN M 5 A_NoBlocking
    AMAN NOP 5
    TNT1 A 0 A_SpawnItem ("RLBodyThud", 0, 0, 0, 0)
    AMAN QRS 5
    AMAN T 0
    "####" "#" 0 A_Jump(256, "DeathEnd")
    Goto DeathEnd
  SimpleXDeathMain:
    TNT1 A 0 A_BossDeath
    TNT1 A 0 A_GiveInventory ("RLArmageddonMancubusKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    AMAN K 2
    AMAN L 5 A_Scream
    AMAN M 5 A_NoBlocking
    AMAN N 5
    AMAN OPQRS 5
    AMAN T 0
    "####" "#" 0 A_Jump(256, "DeathEnd")
    Goto DeathEnd
  DeathFrame:
    AMAN T 0 A_BossDeath
    "####" "#" 0 A_Jump(256, "DeathEnd")
    Goto DeathEnd
	
	//Ice
  GenericFreezeDeath:
	"####" "#" 0 A_GiveInventory ("RLArmageddonMancubusKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    "####" "#" 0 A_Jump(256, "GenericFreezeMana")
    Goto GenericFreezeMana
	
  Raise:
	TNT1 A 0 ACS_NamedExecuteAlways("DRLA_Normalization") // Removes any palette abnormalities
	TNT1 A 0 A_SetScale(1) // resets altered enemies to default, make sure to match the scale factor in properties here!
    TNT1 A 0 A_ChangeFlag ("NOBLOCKMAP", 0)
    TNT1 A 0 A_ChangeFlag ("NOPAIN", 1)
    AMAN T 2
    TNT1 A 0 A_JumpIfInventory ("RLNightmareResurrectionToken", 1, "NightmareRaise")
    TNT1 A 0 A_JumpIfInventory ("RLCyberneticResurrectionToken", 1, "CyberneticRaise")
    TNT1 A 0 A_SpawnItemEx ("RLResurrectionFire", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
  RaiseContinue:
    TNT1 A 0 A_ChangeFlag ("NOPAIN", 0)
    AMAN SRQPONMLK 3
    Goto See
  NightmareRaise:
    TNT1 A 0 A_SpawnItemEx ("RLNightmareResurrectionFire", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION) 
    Goto RaiseContinue
  CyberneticRaise:
    TNT1 A 0 A_SpawnItemEx ("RLCyberneticResurrectionSparks", 0, 0, 20, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    Goto RaiseContinue
	
  CrushDRLA:
    TNT1 A 30 A_SpawnItemEx("RLCrushedMedium",0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_Jump(256, "CrushEnd")
    Goto CrushEnd
//==============================================================================
//					--	DOOMRL ARSENAL STUFF  --
//==============================================================================
  Pain.RigelBlast:
    TNT1 A 0 A_PlaySound("weapons/dn2gunhit", CHAN_BODY)
    D2F2 X 2 Bright
    Goto See
  Pain.NeuralStun:
    D2F2 X 2 Bright
    Goto See
	
  Death.NeuralStun:
    TNT1 A 0
    Goto Death
  Death.RigelBlast:
    TNT1 A 0 A_BossDeath
    TNT1 A 0 A_GiveInventory ("RLDuke2Score", 2500, AAPTR_TARGET)
    TNT1 A 0 A_GiveInventory ("RLArmageddonMancubusKillIncrementer", 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_BossDeath
    TNT1 A 0 A_GiveInventory ("RLDuke2Score", 2500, AAPTR_TARGET)
    TNT1 A 0 A_GiveInventory ("RLArmageddonMancubusKillIncrementer", 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 0 A_SpawnItemEx ("RLDuke2RedGibber", 0,0,0, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_NOCHECKPOSITION)
    TNT1 A 35
    Stop
	
//==============================================================================
//					--	Special Monster Attacks  --
//==============================================================================
  ShadowAuraMissileAttack:
    TNT1 A 0 A_PlaySound("fatso/raiseguns", CHAN_VOICE)
    AMAN G 20 A_FaceTarget
    TNT1 A 0 A_Jump(20, "ShadowAuraSplitAttack")
    TNT1 A 0 A_JumpIfCloser (768, "ShadowAuraBounceAttack")
    Goto SplitMissile
  ShadowAuraBounceAttack:
    TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLMagmabusBounceLavaBall", 20, 26, 30)
    TNT1 A 0 A_CustomMissile("RLMagmabusBounceLavaBall", 20, -29, -30)
    TNT1 A 0 A_CustomMissile("RLMagmabusBounceLavaBall", 20, 26, 15)
    TNT1 A 0 A_CustomMissile("RLMagmabusBounceLavaBall", 20, -29, -15)
    TNT1 A 0 A_CustomMissile("RLMagmabusBounceLavaBall", 20, 26, 0)
    AMAN H 5 Bright A_CustomMissile("RLMagmabusBounceLavaBall", 20, -29, 0)
    AMAN I 5
    Goto See
  ShadowAuraSplitAttack:
    TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLMagmabusSplitLavaBall", 20, -29, random(-14,4))
    AMAN H 5 Bright A_CustomMissile("RLMagmabusSplitLavaBall", 20, 26, random(-4,14))
    AMAN I 3
    TNT1 A 0 A_MonsterRefire (0, "See")
    AMAN G 3
    Goto See
	
  LegendaryMissileAttack:
    TNT1 A 0 A_JumpIfCloser (300, 1)
	Goto MissileProper
    TNT1 A 0 A_PlaySound("fatso/raiseguns", CHAN_VOICE)
    AMAN G 20 A_FaceTarget
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    TNT1 A 0 A_FaceTarget (15, 15)
    TNT1 A 0 A_CustomMissile ("RLMagmabusFlamethrower", 20, 26, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN H 1 Bright A_CustomMissile ("RLMagmabusFlamethrower", 20, -29, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER, frandom(0.1,-0.1))
    AMAN I 5
    Goto See

//==============================================================================
//					--	Final Doomer Compatibility Stuff  --
//==============================================================================
  DeathXSparkFrame:
    "####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
    "####" "#" 0 A_DropItem("MajorManaPod",-1,54)
    AMAN J 0 A_BossDeath
    "####" "#" 0 A_Jump(256, "DeathXSpark")
	Goto DeathXSpark
	
//==============================================================================
//					--	Guncaster Compatibility Stuff  --
//==============================================================================
	MidasFrame1:
		AMAN J 0 A_SpawnItemEx("Midas_Statue_Fatality", 0,0,0, 0,0,0, 0,SXF_TRANSFERPOINTERS|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
	MidasFrame2:
		AMAN J 0 A_SpawnItemEx("Midas_Statue_Fatality", 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:
		AMAN J 0 A_SpawnItemEx("Midas_Statue_Fatality", 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:
		AMAN J 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
		AMAN J 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
		AMAN J 0 A_ChangeFlag("NOPAIN",1)
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
		"####" "#" 0 A_Jump(256,"BlueLightningLock")
		Goto BlueLightningLock
  }
}

ACTOR RLMagmabusBounceLavaBall
{
   Radius 8
   Height 8
   Speed 22
   Damage (random(2,5)*9)
   DamageType "Fire"
   PainType "Explosion"
   DeathType "Explosion"
   Scale 0.6
   Gravity 0.75
   BounceType "Classic"
   BounceFactor 1.0
//   BounceCount 10 // No point in having this if it doesn't fucking work half the time.
   Projectile
   Renderstyle ADD
   Alpha 0.95
   +NOTIMEFREEZE
   +THRUGHOST
   +EXPLODEONWATER
   +SEEKERMISSILE
   +USEBOUNCESTATE
   +BLOODSPLATTER
   -NOGRAVITY
   SeeSound "nightmareelemental/attack"
   BounceSound "nightmareelemental/bounce"
   DeathSound "rlmonsters/fireblast"
  
  var int user_actualbouncecounterbecausezdoomsbouncingisfuckingbroken;
   States
   {
   Spawn: 
    TNT1 A 0
    TNT1 A 0 A_SetUserVar("user_actualbouncecounterbecausezdoomsbouncingisfuckingbroken", 10)
  SpawnAura: // Projectile animation
      AMAB AABB 1 Bright A_SpawnItem("RLMagmabusLavaBallTrail",0,0)
      Goto Spawn
	  
  Bounce: // Bounce off the floor
      TNT1 A 0 A_JumpIf (user_actualbouncecounterbecausezdoomsbouncingisfuckingbroken <= 0, "Death")
      TNT1 A 0 A_SetUserVar("user_actualbouncecounterbecausezdoomsbouncingisfuckingbroken", user_actualbouncecounterbecausezdoomsbouncingisfuckingbroken - 1)
      TNT1 A 0 A_SeekerMissile (15,15)
	  TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 2)
      TNT1 A 0 A_Quake(1, 2, 0, 160, "")
      TNT1 A 0 A_JumpIf (user_actualbouncecounterbecausezdoomsbouncingisfuckingbroken <= 7, "SpawnAura") // Only spawns fire the first few times
      TNT1 A 0 A_CustomMissile("RLMagmabusNapalmFlare",4,0,random(0, 359), CMF_AIMDIRECTION | CMF_TRACKOWNER, Random(-90, -60))
      Goto SpawnAura
   Death:
      TNT1 A 0 A_Stop
      TNT1 A 0 A_ChangeFlag ("NOGRAVITY", 1)
	  TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 3)
      TNT1 A 0 A_Quake(1, 12, 0, 256, "")
      TNT1 A 0 A_Quake(3, 6, 0, 128, "")
      TNT1 AAAAAAAAAAAA 0 A_CustomMissile("RLMagmabusNapalmFlare",4,0,random(0, 359), CMF_AIMDIRECTION | CMF_TRACKOWNER, Random(-90, 90))
      BAL3 C 5 Bright
      BAL3 DE 5 Bright
      stop
   }
}

ACTOR RLMagmabusBounceLavaBall2 : RLMagmabusBounceLavaBall
{
   Speed 18
}

ACTOR RLMagmabusSplitLavaBall : RLMagmabusBounceLavaBall
{
   Speed 30
   Damage (random(2,5)*9)
   BounceType "None"
   -EXPLODEONWATER
   +SEEKERMISSILE
   +NOGRAVITY
   +BLOODSPLATTER
   SeeSound "nightmareelemental/attack"
   BounceSound "nightmareelemental/bounce"
   DeathSound "rlmonsters/fireblast"
   States
   {
  Spawn: // Projectile animation
      AMAB AABB 1 Bright A_SpawnItem("RLMagmabusLavaBallTrail",0,0)
      Goto Spawn
	  
   Death:
	  TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, 3)
      TNT1 A 0 A_Quake(1, 12, 0, 256, "")
      TNT1 A 0 A_Quake(3, 6, 0, 128, "")
      TNT1 A 0 A_FaceTracer
      TNT1 AAAAAAAAAAAA 0 A_CustomMissile("RLMagmabusNapalmFlare",4,0,random(0, 359), CMF_AIMDIRECTION | CMF_TRACKOWNER, Random(-90, 90))
      TNT1 A 0 A_CustomMissile("RLMagmabusMiniLavaBall",4,0,0, CMF_TRACKOWNER)
      TNT1 A 0 A_CustomMissile("RLMagmabusMiniLavaBall",4,0,15, CMF_TRACKOWNER)
      TNT1 A 0 A_CustomMissile("RLMagmabusMiniLavaBall",4,0,30, CMF_TRACKOWNER)
      BAL3 C 5 Bright
      BAL3 DE 5 Bright
      stop
   }
}

ACTOR RLMagmabusMiniLavaBall : RLMagmabusBounceLavaBall
{
   Radius 3
   Height 3
   Speed 12
   Damage (random(2,4)*3)
   DamageType "Fire"
   PainType "SmallFireball"
   DeathType "SmallFireball"
//   BounceCount 4 // No point in having this if it doesn't fucking work half the time.
   Scale 0.4
   +NOTIMEFREEZE
   +BLOODSPLATTER
   SeeSound ""
   BounceSound ""
   DeathSound "rlmonsters/fireblast"
   States
   {
  SpawnAura: // Projectile animation
      BAL3 AB 3 Bright
      Goto Spawn
	  
   Death:
      TNT1 A 0 A_Stop
      TNT1 A 0 A_ChangeFlag ("NOGRAVITY", 1)
      BAL3 C 5 Bright
      BAL3 DE 5 Bright
      stop
   }
}

ACTOR RLMagmabusLavaBallTrail
{   
   Radius 0
   Height 1
   Speed 0
   PROJECTILE
   RENDERSTYLE ADD
   ALPHA 0.85
   +NOTONAUTOMAP
   +NOTIMEFREEZE
   States
   {
   Spawn:
      TNT1 A 3
      RPUF ABCDE 3 Bright
      Stop 
   }
}

Actor RLMagmabusFlamethrower
{
  Radius 1
  Height 1
  Speed 5
  Damage (1)
  DamageType "Fire"
  Projectile
  RenderStyle Add
  Alpha 0.95
  Scale 1
  +MTHRUSPECIES
  +THRUGHOST
  +DONTBLAST
  +RIPPER
  +NOTIMEFREEZE
  +BLOODSPLATTER
  SeeSound "rlmonsters/flamethrower"
  DeathSound "rlmonsters/flamethrowerhit"
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump(256, 1,2,3,4,5)
    FRFX ABCDE 2 Bright A_Explode(1, 96, 0, 0, 96)
    FRFX FG 2 Bright A_Explode(1, 96, 0, 0, 96)
  Death:
    FRFX HIJK 2 Bright A_Explode(1, 96, 0, 0, 96)
    FRFX LMNO 2 Bright
    Stop
  }
}

Actor RLMagmabusNapalmFlare
{
  Radius 8
  Height 11
  Speed 8
  Damage (random(1,5)*2)
  Projectile
  RenderStyle Add
  DamageType "Fire"
  PainType "SmallFireball"
  DeathType "SmallFireball"
  Gravity 1.7
  Alpha 0.95
  -NOGRAVITY
  +THRUGHOST
  +NOTIMEFREEZE
  +BLOODSPLATTER
  Decal "RevenantScorch"
  DeathSound "nightmareelemental/bounce"
  States
  {
  Spawn:
    TNT1 A 1 A_SpawnItemEx("RLMagmabusNapalmFX", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto Spawn
  Death:
    FRFX HIJ 2 Bright
    TNT1 A 0 A_CustomMissile("RLMagmabusNapalmFire", 0, 0, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER)
    FRFX KLMNO 2 Bright
    Stop
  }
}

Actor RLMagmabusNapalmFX
{
  Radius 0
  Height 1
  Speed 0
  Projectile
  RenderStyle Add
  Alpha 0.85
  +NOTONAUTOMAP
  +NOTIMEFREEZE
  States
  {
  Spawn:
    TNT1 A 3
    PYFX ABCDE 3 Bright
    Stop
  }
}

Actor RLMagmabusNapalmFire
{
  Radius 8
  Height 40
  Projectile
  RenderStyle Add
  DamageType "Fire"
  Alpha 0.90
  Scale 0.6
  -NOGRAVITY
  +LOWGRAVITY
  +NOEXPLODEFLOOR
  +NODAMAGETHRUST
  +MOVEWITHSECTOR
  +THRUGHOST
  +BLOODSPLATTER
  
  var int user_groundfiretimer;
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetUserVar("user_groundfiretimer", random(1,7))
    TNT1 A 0 A_SetScale (frandom(0.1,0.9))
    TNT1 A 0 A_Jump(80, 3,6,9,12,15)
  SpawnLoop:
    TNT1 A 0 A_JumpIf (scalex <= 0.25, "TinyFire")
    TNT1 A 0 A_JumpIf (user_groundfiretimer <= 0, "Death")
    TNT1 A 0 A_Playsound("rlmonsters/fireloop")
    TNT1 A 0 A_Explode(3, 32, XF_HURTSOURCE, 0, 16)
    FLME ABCDEFGHIJKLMN 2 Bright A_Explode(randompick(0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,3,5), 16, XF_HURTSOURCE, 0, 16)
    TNT1 A 0 A_SetUserVar("user_groundfiretimer", user_groundfiretimer - 1)
    Loop
  TinyFire:
    TNT1 A 0 A_JumpIf (user_groundfiretimer <= 0, "Death")
    TNT1 A 0 A_Playsound("rlmonsters/fireloop")
    FLME ABCDEFGHIJKLMN 2 Bright
    TNT1 A 0 A_SetUserVar("user_groundfiretimer", user_groundfiretimer - 1)
    Loop
  Death:
    FLME ABCDEFGH 2 Bright A_SetScale(scalex*0.8)
    Stop
  }
}

ACTOR RLCCArmageddonMancubus : RLArmageddonMancubus
{
  +TOUCHY
  States
  {
  See:
    AMAN AABBCCDDEEFF 4
    Loop
  Missile:
    AMAN G 20
    AMAN H 5 Bright
    AMAN I 5
    Goto See
  Melee:
    Stop
  Death:
    AMAN K 2
    AMAN L 5 A_Scream
    AMAN M 5 A_NoBlocking
    AMAN N 5
    AMAN OPQRS 5
    AMAN T -1
    Stop
  }
}
