ACTOR HellStaff : Weapon 17600
{
//$Category Weapons/DUST
//$Sprite HLS2F0
//$Title "Hell Staff"
  Weapon.KickBack 0
  Weapon.YAdjust 0
  Weapon.AmmoType1 "DustMana"
  Weapon.AmmoType2 "DustMana"
  Weapon.AmmoUse1 1
  Weapon.AmmoUse2 4
  Weapon.AmmoGive 20
  Weapon.UpSound "HellStaff/Pickup"
  Inventory.Pickupsound "HellStaff/Pickup"
  Tag "Hell Staff"
  Weapon.PreferredSkin "Fist-Marine"
  +INVENTORY.UNDROPPABLE
  Inventory.PickupMessage "You have acquired the Hell Staff!"
  States
  {
  Spawn:
    HLS2 F -1
    Loop
  Select: 
	TNT1 A 0 A_Raise
	Wait
  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 GHIJK 2
  Ready2:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    HLS2 AAAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    HLS2 AAAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    HLS2 AAAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    HLS2 AAAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	HLS2 DDDCCCBBB 1 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 Ready2
  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 Ready2
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready2
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	HLS2 LMN 2
	TNT1 A 3
	HGRN ABC 1
	HGRN D 2
	HGRN EFG 1
	HGRN HI 2
	TNT1 A 15 A_PlayWeaponSound("weapons/hgrenadepin")
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1)
	HGNE A 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN J 1
	HGRN KLM 2
	HGRN NO 1
	TNT1 A 6
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,2)
	TNT1 A 0 A_TakeInventory("Hand Grenade",1)
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0
	HLS2 NML 2
	Goto Ready2
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready2
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	HLS2 LMN 2
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1		
	TNT1 A 0 A_TakeInventory("MineAmmo",1)	  
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0)
	MINE HI 1
	MINE JK 2
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,2)
	TNT1 A 0 A_TakeInventory("Land Mine",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0
	TNT1 A 5
	HLS2 NML 2
	Goto Ready2
  }
}

ACTOR HellStaffBall1 : CacoHellStaffBall1
{
  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
  }
}

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
}