// --------------------------------------------------------------------------
//
// Irebolt
//
// --------------------------------------------------------------------------

ACTOR EriIrebolt : HellPlayerWeapon //replaces SuperShotgun
{
	Game Doom
	Scale 0.8
	Weapon.SelectionOrder 2500
	Weapon.AmmoUse1 2
	Weapon.AmmoUse2 8
	Weapon.AmmoGive 8
	Weapon.AmmoType1 "BloodAmmo"
	Weapon.AmmoType2 "BloodAmmo"
	Weapon.SisterWeapon "EriIreboltPowered"
	+WEAPON.NOAUTOFIRE
	+WEAPON.AMMO_OPTIONAL
	Inventory.PickupMessage "$GOTIREBOLT"
	Tag "$TAG_IREBOLT"
	States
	{
	Ready:
		HIRG BBBCCCDDDEEEFFFGGG 1 A_WeaponReady
		Loop
	Deselect:
		HIRG A 1 A_Lower
		Loop
	Select:
		HIRG A 1 A_Raise
		Loop
	Fire:      
      IREG H 3 Bright
      IREG I 0 Bright A_GunFlash
		//HNAF A 0 Bright A_PlaySound("weapons/nailbone3", CHAN_WEAPON)
		HNAF A 0 Bright A_PlaySound("weapons/nailgunextra", CHAN_VOICE, 1.0)
      IREG I 0 Bright A_PlayWeaponSound("weapons/Hellfi")
      IREG I 3 Bright
	  IREG J 0 Bright A_JumpIfInventory("IreCharge",100,"Fire3")
	  IREG J 0 Bright A_JumpIfInventory("IreCharge",50,"Fire2")
      IREG J 3 Bright A_FireCustomMissile("PowerHellshot1",0,1,0,0)
      //IREG J 3 Bright A_FireCustomMissile("HellshotA",0,1,0,0)
      Goto Recoil
   Fire2:      
      IREG J 3 Bright A_FireCustomMissile("PowerHellshot2",0,1,0,0)
      //IREG J 3 Bright A_FireCustomMissile("HellshotB",0,1,0,0)
      Goto Recoil	  
   Fire3:
      IREG J 3 Bright A_FireCustomMissile("PowerHellshot3",0,1,0,0)
      //IREG J 3 Bright A_FireCustomMissile("HellshotC",0,1,0,0)
      Goto Recoil
   Recoil:
      IREG KLM 3 Bright	  
      IREG M 0 A_ReFire
      Goto Ready
   AltFire:
      IREG B 0 A_JumpIfInventory("IreCharge",20,1)
	  Goto Ready
      IREG H 3 Bright 
		HNAF A 0 Bright A_PlaySound("weapons/nailbone3", CHAN_WEAPON)
		HNAF A 0 Bright A_PlaySound("weapons/nailgunextra", CHAN_VOICE, 1.0)
	  IREG Z 0 Bright A_PlayWeaponSound("weapons/maulerpowfire")
      IREG Z 0 Bright A_PlayWeaponSound("weapons/Hellfi")
      IREG I 3 Bright A_GunFlash  
      IREG J 3 Bright A_FireCustomMissile("HellshotA",0,1,0,0)
      IREG J 3 Bright A_FireCustomMissile("HellshotB",0,1,0,0)
      IREG J 3 Bright A_FireCustomMissile("HellshotC",0,1,0,0)
      //IREG J 3 Bright A_FireCustomMissile("PowerHellshot2",0,1,0,0)    
      //IREG J 3 Bright A_Blast(BF_USEAMMO,200,200,15,"IreBlastFX","weapons/phoot")
      IREG KL 3 Bright
	  IREG M 20 Bright
      IREG M 0 A_ReFire
      Goto Ready   
	Flash:
		TNT1 A 3 Bright A_Light1
		TNT1 A 3 Bright A_Light2
		TNT1 A 3 Bright A_Light(3)
		TNT1 A 3 Bright A_Light1
		Goto LightDone
	Spawn:
		HEIR A -1
		Stop
	}
}
ACTOR EriIreboltPowered : EriIrebolt
{
	Weapon.SisterWeapon "EriIrebolt"
	+WEAPON.POWERED_UP
	States
	{
	Fire:
		HIRF A 0 Bright A_JumpIfNoAmmo("Nope")
		HIRF A 3 Bright A_GunFlash
		HIRF B 0 Bright A_Recoil(2.0)
		HIRF B 0 Bright A_PlaySound("weapons/ireboltfire", CHAN_AUTO)
		HIRF BB 0 Bright A_FireCustomMissile("IreboltMine", frandom(-3.5, 3.5), 0, 0, 0, 1, frandom(0, 5))
		HIRF B  3 Bright A_FireCustomMissile("IreboltMine", frandom(-3.5, 3.5), 1, 0, 0, 1, frandom(0, 5))
		HIRF CD 3 Bright
		HIRF E 3
		HIRG A 0 A_ReFire
		Goto Ready
	}
	
}

ACTOR IreboltShot
{
	Radius 4
	Height 8
	Speed 50
	Damage 0
	Projectile
	//+CAUSEPAIN
	+FORCERADIUSDMG
	+SEEKERMISSILE
	DamageType "Explosive"
	Obituary "$OB_MPIREBOLT"
	Decal "BulletChip"
	var int user_playernum;
	var int user_dead;
	States
	{
	Spawn:
		ISPK A 0 
		ISPK A 0 A_SetUserVar("user_playernum", CallACS("IreboltFire"))
		ISPK A 0 A_PlaySound("weapons/irebolthum", CHAN_BODY, 0.35, 1, ATTN_NORM)
	Fly:
		ISPK A 1 Bright A_SpawnItemEx("IreboltTrail",-12,0,-2,-2,0,0,0,0)
		Loop
	XDeath:
		ISPK B 0 Bright A_PlaySound("weapons/ireboltspike", CHAN_BODY)
		ISPK B 0 Bright A_SeekerMissile(90,90,SMF_LOOK,256,1)
		ISPK B 0 Bright A_Stop
		ISPK B 0 Bright A_Warp(AAPTR_TRACER, -8, 0, 24, 180, WARPF_NOCHECKPOSITION|WARPF_TESTONLY, "Stick")
		Goto Fall
	Death:
		ISPK B 0 Bright A_RearrangePointers(AAPTR_DEFAULT, AAPTR_DEFAULT, AAPTR_NULL, 0)
		ISPK B 0 Bright A_SetUserVar("user_dead", 1)
		ISPK B 0 Bright A_PlaySound("weapons/ireboltwall", CHAN_BODY)
	Stick:
		ISPK "#" 0 Bright ACS_NamedExecuteAlways("IreboltHit", 0, user_playernum, 0, 0)
	Stuck:
		ISPK "#" 1 Bright A_Warp(AAPTR_TRACER, -8, 0, 24, 180, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		ISPK "#" 0 Bright A_JumpIf(user_dead == 1, 2)
		ISPK "#" 0 Bright A_SpawnItemEx("IreboltTrail",-12,0,-2,frandom(-1,0),frandom(-0.5,0.5),3,0,0) 
		ISPK "#" 0 Bright A_JumpIfInventory("IreboltDetonator", 1, "Boom")
		Loop
	Fall:
		ISPK A 0 Bright A_SetUserVar("user_dead", 1)
		ISPK A 0 Bright A_Gravity
		Goto Stick
	Boom:
		HEXP A 0 Bright A_SetTranslucent(1.0,1)
		HEXP A 0 Bright A_PlaySound("weapons/ireboltfly", CHAN_AUTO)
	    HEXP A 0 Bright A_PlaySound("weapons/ireboltdetonate", CHAN_AUTO)
		HEXP A 3 Bright A_Explode(150, 128, XF_HURTSOURCE)
		HEXP BCDEFG 3 Bright
		Stop
	}
}
ACTOR IreboltDetonator : EriToken {}

ACTOR IreboltMine
{
	Radius 4
	Height 8
	Speed 50
	Damage 0
	Projectile
	//+CAUSEPAIN
	+FORCERADIUSDMG
	+SEEKERMISSILE
	-NOGRAVITY
	DamageType "Explosive"
	Obituary "$OB_MPIREBOLTPOW"
	Decal "BulletChip"
	Gravity 0.5
	var int user_playernum;
	var int user_hitx;
	var int user_hity;
	var int user_hitz;
	States
	{
	Spawn:
		IBOM A 0 Bright
		IBOM A 0 Bright A_SetUserVar("user_playernum", CallACS("IreboltFire"))
		IBOM A 0 Bright A_Jump(256, 1, 2)
	Fly:
		IBOM AB 4 Bright
		Loop
	XDeath:
		IBOM "#" 0 Bright A_SetUserVar("user_hitx", CallACS("GetTracerX", 0, 0, 0, 0))
		IBOM "#" 0 Bright A_SetUserVar("user_hity", CallACS("GetTracerY", 0, 0, 0, 0))
		IBOM "#" 0 Bright A_SetUserVar("user_hitz", CallACS("GetTracerZ", 0, 0, 0, 0))
		IBOM "#" 0 Bright A_PlaySound("weapons/ireboltspike", CHAN_BODY)
		IBOM "#" 0 Bright A_SeekerMissile(90,90,SMF_LOOK,256,1)
		IBOM "#" 0 Bright A_Stop
		IBOM "#" 0 Bright A_Warp(AAPTR_TRACER, 0, 0, 0, 0, WARPF_NOCHECKPOSITION|WARPF_TESTONLY, "Stick")
		Goto Stick+1
	Death:
		IBOM "#" 0 Bright A_RearrangePointers(AAPTR_DEFAULT, AAPTR_DEFAULT, AAPTR_NULL, 0)
		IBOM "#" 0 Bright A_PlaySound("weapons/ireboltwall", CHAN_BODY)
	Stick:
		IBOM "#" 0 Bright A_NoGravity
		IBOM "#" 0 Bright ACS_NamedExecuteAlways("IreboltHit", 0, user_playernum, 0, 0)
	Stuck:
		IBOM "#" 1 Bright A_Warp(AAPTR_TRACER, user_hitx, user_hity, user_hitz, 0, WARPF_ABSOLUTEOFFSET|WARPF_USECALLERANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		IBOM "#" 0 Bright A_JumpIfInventory("IreboltDetonator", 1, "Boom")
		Loop
	Boom:
		HEXP A 0 Bright A_SetTranslucent(1.0,1)
		HEXP A 0 Bright A_PlaySound("weapons/ireboltfly", CHAN_AUTO)
	    HEXP A 0 Bright A_PlaySound("weapons/ireboltdetonate", CHAN_AUTO)
		HEXP A 3 Bright A_Explode(100, 128, XF_HURTSOURCE)
		HEXP BCDEFG 3 Bright
		Stop
	}
}

ACTOR OldIreboltShot
{
	Radius 11
	Height 8
	Speed 40
	Damage 20
	Projectile
	SeeSound "weapons/ireboltfly"
	Obituary "$OB_MPIREBOLT"
	Decal "Scorch"
	Renderstyle Translucent
	Alpha 0.85
	Scale 0.66
	States
	{
	Spawn:
		HBAL A 0 
		HBAL A 0 A_PlaySound("weapons/irebolthum", CHAN_BODY, 0.35, 1, ATTN_NORM)
	Fly:
		HBAL AAABBBCCCDDDEEEFFF 1 Bright A_SpawnItemEx("IreboltTrail",0,0,0,-5,0,0,0,0)
		Loop
	Death:
		HEXP A 0 Bright A_SetScale(1.0)
		HEXP A 0 Bright A_SetTranslucent(1.0,1)
	    HEXP A 0 Bright A_PlaySound("weapons/irebolthit", CHAN_BODY)
		HEXP A 3 Bright A_Explode
		HEXP BCDEFG 3 Bright
		Stop
	}
}

ACTOR IreboltTrail : EriTrail
{
	RenderStyle Add
    Alpha 0.5
	Scale 0.33
    States
    {
    Spawn:
      MTRL HABCDEFG 2 BRIGHT
      Stop
    }
}

ACTOR HellshotA : Rocket
{
   Speed 25
   RENDERSTYLE ADD
   SeeSound "none"
   DeathSound "weapons/hellex"
   DONTHURTSHOOTER
   DamageType Fire
   +THRUGHOST
   +FORCEXYBILLBOARD
   -DEHEXPLOSION
   -ROCKETTRAIL
   States
   {
   Spawn: 
      HBAL ABCD 3 Bright A_SpawnItemEx("IrePuff",0,0,0,0,0,0,0,8)
      loop
   Death:
      HBAL EF 3 Bright
      HBAL G 3 Bright A_Explode
      HBAL HI 3 Bright
      stop
   XDeath:
      HBAL E 0 Bright A_GiveToTarget("IreCharge",10)
      HBAL EF 3 Bright
      HBAL G 3 Bright A_Explode
      HBAL HI 3 Bright
      stop
   }
}

ACTOR HellshotB : HellshotA
{
   States
   {
   Death:
      HBAL EF 3 Bright
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,45,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,135,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,225,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,315,0,0)
      HBAL G 3 Bright A_Explode
      HBAL HI 3 Bright
      stop
   XDeath:
      HBAL E 0 Bright A_GiveToTarget("IreCharge",10)
      HBAL EF 3 Bright
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,45,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,135,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,225,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,315,0,0)
      HBAL G 3 Bright A_Explode
      HBAL HI 3 Bright
      stop
   }
}

ACTOR HellshotC : HellshotA
{
   States
   {
   Death:
      HBAL EF 3 Bright
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,0,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,45,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,90,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,135,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,180,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,225,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,270,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,315,0,0)	  
      HBAL G 3 Bright A_Explode
      HBAL HI 3 Bright
      stop
   XDeath:
      HBAL E 0 Bright A_GiveToTarget("IreCharge",10)
      HBAL EF 3 Bright
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,0,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,45,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,90,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,135,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,180,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,225,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,270,0,0)
	  HBAL G 0 bright A_SpawnItemEx("IreNade",0,0,0,5,0,2,315,0,0)	  
      HBAL G 3 Bright A_Explode
      HBAL HI 3 Bright
      stop
   }
}

ACTOR IreNade : MaulerNade
{
   Radius 4
   Height 8 
   Damage 4
   Damagetype Fire
   BounceType "Hexen"
   BounceFactor 0.7 
   WallBounceFactor 0.7
   BounceCount 5
   DeathSound "weapons/maceex"  
   BounceSound "weapons/macefi"
   -LOWGRAVITY
   States
   {
   Spawn:
      IRND ABCD 3 bright A_SpawnItemEx("IrePuff",0,0,0,0,0,0,0,8)
      Loop
   Death:
      IRFX G 0 Bright A_SetTranslucent(1.0,1)
      IRFX G 3 bright A_Explode(32,32,0)
	  IRFX HIJKL 3 bright
      stop
   Xdeath:
      stop
   }
}

ACTOR PowerHellshot1 : Rocket
{
   Speed 25
   Damage 40
   RENDERSTYLE ADD
   DamageType fire
   ALPHA 0.95
   SeeSound "none"
   DeathSound "weapons/hellex"
   +THRUGHOST
   +FORCEXYBILLBOARD
   -DEHEXPLOSION
   -ROCKETTRAIL
   States
   {
   Spawn: 
      HEPA ABCDEF 3 Bright A_SpawnItemEx("IrePuff",0,0,0,0,0,0,0,8)
      loop
   Death:
      HELX A 3 Bright
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,0,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,45,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,90,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,135,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,180,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,225,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,270,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,315,6)
      HELX BC 3 Bright A_Explode(16,80,0)
      HELX DFG 3 Bright A_Explode(32,112,0)	
	  HELX HI 3 Bright A_Explode(16,96,0)
	  HELX J 3 Bright
      stop
   XDeath:
      HELX A 3 Bright A_GiveToTarget("IreCharge",10)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,0,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,45,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,90,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,135,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,180,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,225,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,270,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner1",0,0,315,6)
      HELX BC 3 Bright A_Explode(16,80,0)
      HELX DFG 3 Bright A_Explode(32,112,0)	
	  HELX HI 3 Bright A_Explode(16,96,0)
	  HELX J 3 Bright
	  stop
   }
}

ACTOR PowerHellshot2 : PowerHellshot1
{ 
   States
   {
   Death:
      HELX A 3 Bright
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,0,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,45,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,90,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,135,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,180,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,225,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,270,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,315,6)
      HELX BC 3 Bright A_Explode(32,80,0)
      HELX DFG 3 Bright A_Explode(48,112,0)	
	  HELX HI 3 Bright A_Explode(32,96,0)
	  HELX J 3 Bright
      stop
   XDeath:
      HELX A 3 Bright A_GiveToTarget("IreCharge",10)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,0,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,45,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,90,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,135,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,180,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,225,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,270,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner2",0,0,315,6)
      HELX BC 3 Bright A_Explode(32,80,0)
      HELX DFG 3 Bright A_Explode(58,112,0)	
	  HELX HI 3 Bright A_Explode(32,96,0)
	  HELX J 3 Bright
	  stop
   }
}

ACTOR PowerHellshot3 : PowerHellshot1
{ 
   States
   {
   Death:
      HELX A 3 Bright
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,0,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,45,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,90,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,135,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,180,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,225,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,270,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,315,6)
      HELX BC 3 Bright A_Explode(48,80,0)
      HELX DFG 3 Bright A_Explode(56,112,0)	
	  HELX HI 3 Bright A_Explode(48,96,0)
	  HELX J 3 Bright
      stop
   XDeath:
      HELX A 3 Bright A_GiveToTarget("IreCharge",10)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,0,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,45,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,90,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,135,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,180,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,225,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,270,6)
      HELX B 0 Bright A_CustomMissile("HellFXSpawner3",0,0,315,6)
      HELX BC 3 Bright A_Explode(48,80,0)
      HELX DFG 3 Bright A_Explode(56,112,0)	
	  HELX HI 3 Bright A_Explode(48,96,0)
	  HELX J 3 Bright
	  stop
   }
}

ACTOR HellFXSpawner1
{
   Radius 1
   Height 1
   Speed 8 
   PROJECTILE
   RENDERSTYLE ADD
   DONTHURTSHOOTER
   +THRUACTORS
   +THRUGHOST
   +BLOODLESSIMPACT
   ALPHA 0.80
   States
   {
   Spawn:
      TNT1 A 6
	  TNT1 A 6 A_SpawnItem("HellFX",0,0)
      Stop
   }
}

ACTOR HellFXSpawner2 : HellFXSpawner1
{   
   States
   {
   Spawn:
      TNT1 A 6   
	  TNT1 AA 6 A_SpawnItem("HellFX",0,0)
      Stop
   }
}

ACTOR HellFXSpawner3 : HellFXSpawner1
{   
   States
   {
   Spawn:
      TNT1 A 6  
	  TNT1 AAA 6 A_SpawnItem("HellFX",0,0)
      Stop
   }
}

ACTOR HellFX
{   
   Radius 5
   Height 5
   PROJECTILE
   RENDERSTYLE ADD
   Damagetype fire
   ALPHA 0.8 
   States
   {
   Spawn:
      HELX A 3 Bright A_PlaySound("weapons/hellex")
      HELX BC 3 Bright A_Explode(16,80,0)
      HELX DFG 3 Bright A_Explode(32,112,0)	
	  HELX HI 3 Bright A_Explode(16,96,0)
	  HELX J 3 Bright
      stop
   }
}

ACTOR RedPuff //used only for monsters
{   
   Radius 0
   Height 1
   RENDERSTYLE ADD
   ALPHA 0.85
   +NOGRAVITY
   +NOBLOCKMAP
   +FORCEXYBILLBOARD   
   States
   {
   Spawn:
      NULL A 3 Bright
      RPUF ABCDE 3 Bright
      Stop 
   }
}

ACTOR IrePuff : RedPuff
{ 
   States
   {
   Spawn:
      NULL A 3 Bright
      IRFX ABCDEF 3 Bright
      Stop 
   }
}

ACTOR IreExplosion : Cacodemonball
{  
   SeeSound "none"
   Speed 0  
   States
   {
   Spawn:
      TNT1 A 0
	  TNT1 A 1 A_Explode(56,112,0,1,112,0,0)      
      Stop 
   }
}

ACTOR IreBlastFX : RedPuff
{   
   States
   {
   Spawn:
      RIP1 DEFGH 4 Bright
      Stop 
   }
}

ACTOR Irecharge : Ammo
{
   RENDERSTYLE NONE
   Inventory.Amount 0
   Inventory.MaxAmount 100
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 100
   Inventory.PickupMessage "Irebolt Charged."
   Inventory.Icon STTPRCNT
   States
   {
   Spawn:
      NULL A 3 Bright
      Loop
   }
}