ACTOR HellStaff : Weapon
{
  Weapon.KickBack 0
  Weapon.YAdjust 0
  Weapon.AmmoType1 "DustMana"
  Weapon.AmmoType2 "DustMana"
  Weapon.AmmoUse1 1
  Weapon.AmmoUse2 4
  Weapon.AmmoGive 20
  inventory.pickupsound "HellStaff/Pickup"
  Attacksound "HellStaff/LeechFire"
  Tag "Hell Staff"
  +INVENTORY.UNDROPPABLE
  Inventory.PickupMessage "You have acquired the Hell Staff!"
  States
  {
  Spawn:
    HLS2 F -1
    Loop
  Select:
    HLS2 A 1 A_Raise
    Loop
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
    HLS2 A 1 A_Lower
    Goto Deselect+4
  Ready:
    HLS2 ABCDCBA 4 A_WeaponReady
    Loop
  Fire:
    HLS2 D 1
    HLS2 E 2 Bright Offset(0, 48) A_FireCustomMissile("HellStaffBall1",0,1,0,-4)
    HLS2 D 2 Offset(0, 40)
    HLS2 D 2 Offset(0, 36) A_ReFire
    Goto Ready
  AltFire:
    HLS2 D 1
    HLS2 E 4 Bright Offset(0, 48) A_FireCustomMissile("HellStaffBall2",0,1,0,-4)
    HLS2 D 3 Offset(0, 40)
    HLS2 D 2 Offset(0, 36) A_ReFire
    Goto Ready
  }
}

ACTOR HellStaffBall1 : CacoHellStaffBall1
{
  Damage 8
  DamageType "Player"
  Species "Player"
  +THRUSPECIES
  +NODAMAGETHRUST
  States
  {
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(20,48)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("HellStaffParticle",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
    CLBA B 1 Bright A_FadeOut(0.2)
    Goto Death+2
  }
}

ACTOR HellStaffBall2 : CacoHellStaffBall2
{
  Damage 8
  DamageType "Player"
  Species "Player"
  +THRUSPECIES
  States
  {
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(20,48)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("HellStaffParticle",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
    CLBA B 1 Bright A_FadeOut(0.2)
    Goto Death+2
  XDeath:
	TNT1 A 0
	TNT1 A 0 A_Explode(20,48)
	TNT1 A 0 A_GiveToTarget("HellStaffLifeLeech",1)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("HellStaffParticle",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
    CLBA B 1 Bright A_FadeOut(0.2)
    Goto XDeath+3
  }
}

Actor HellStaffLifeLeech : NewHealthBonus
{
  +NOTIMEFREEZE
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  Inventory.Amount 5
  Inventory.MaxAmount 200
}