ACTOR Axe : Weapon
{
	+WEAPON.MELEEWEAPON
	+WEAPON.NOALERT
	Weapon.SlotNumber 1
	Inventory.Icon "AXEPA0"
	Inventory.PickupMessage "You claimed yourself a powerful axe!"
	Tag "Axe"
	Obituary "%k butchered %o with his axe!"
	States
	{
	Spawn:
		AXEP A -1
		Stop
	Select:
		AXEG AAAAAAAAAA 0 A_Raise //To get it to raise
		TNT1 A 6
		AXEG EDCBA 2
		Goto Ready
	Deselect:
		TNT1 A 0 A_TakeInventory("AxeCharge", 0x7FFFFFFF)
		AXEG ABCDE 2
		TNT1 A 6
		AXEG A 0 A_Lower
		Wait
	Ready:
		AXEG A 1 A_WeaponReady
		loop
	Fire:
		AXEG ABCDE 3
		TNT1 A 4
		AXEG I 2 A_PlaySound("weapons/axeswing", CHAN_WEAPON)
		AXEG A 0 A_JumpIfInventory("PowerStrength", 1, "ToughFire")
		AXEG J 2 A_CustomPunch(20+random(4, 16), 1, 0, "AxeHitPuff")
		AXEG K 2
		TNT1 A 4
		AXEG EDCBA 2
		AXEG A 6
		Goto Ready
	ToughFire:
		AXEG J 2 A_CustomPunch(60+random(4, 16), 1, 0, "AxeHitPuff")
		Goto Fire+9
	AltFire:
		AXEG ABCDE 3
		TNT1 A 8
		TNT1 A 0 A_GiveInventory("AxeCharge", 9)
	AltHold:
		AXEG F 2 A_GiveInventory("AxeCharge", 1)
		TNT1 A 0 A_Refire
		AXEG G 3
		AXEG H 3 A_PlaySound("weapons/axeswing", CHAN_WEAPON)
		AXEG I 2
		AXEG A 0 A_JumpIfInventory("PowerStrength", 1, "AltFireHitBerserk")
		AXEG J 2 A_CustomPunch(56 * CallACS("Axe charge") * 0.1 + random(4, 14), 1, 0, "AxeHitPuff")
		Goto AltFireEnd
	AltFireHitBerserk:
		AXEG J 2 A_CustomPunch(112 * CallACS("Axe charge") * 0.1 + random(4, 20), 1, 0, "AxeHitPuff")
	AltFireEnd:
		AXEG K 2
		TNT1 A 8
		AXEG EDCBA 3
		Goto Ready
	}
}

ACTOR AxeHitPuff : BulletPuff
{
  +PUFFONACTORS
  //+NOEXTREMEDEATH --Uncomment and remove this message to prevent gibs
  SeeSound "weapons/axecut"
  AttackSound "weapons/axebang"
  ActiveSound "silent"
  States
  {
  Spawn:
    PUFF ABCD 4
    Stop
  }
}

ACTOR AxeCharge : Inventory
{
  Inventory.MaxAmount 30 // [Blue Shadow] A maximum of 3x the damage when fully charged
}

// -------------------//
// --UAC Pulse Rifle--//
//--------------------//

actor PulseRifle : weapon
{
  Inventory.PickupMessage "You've found the Pulse Rifle!"
  Obituary "%o was fried by %k's Pulse Rifle."
  Weapon.AmmoType1 "Cell"
  Weapon.AmmoUse1 1
  Weapon.AmmoGive 20
  Decal "ArachnotronScorch"
  weapon.slotnumber 6
  States
  {
  Spawn:
    PULS A -1
    stop
  Ready:
      PULS B 1 A_WeaponReady
      loop
  Deselect:
      PULS B 1 A_Lower
      loop
  Select:
      PULS B 1 A_Raise
      loop
  Fire:
      PULS C 2 bright
      PULS D 2 Bright A_FireCustomMissile("ArachnotronPlasma",0,1)
      PULS C 2 bright
      PULS B 2
      PULS B 0 A_ReFire
      Goto Ready
  }
}

ACTOR PlasmaBolterShot1
{
   Radius 3
   Height 4
   Speed 40
   Damage 15
   Scale 0.75
   PROJECTILE
   +STRIFEDAMAGE
   DamageType Lightning
   DeathSound "weapons/plasmax"
   RenderStyle Add
   States
   {
   Spawn:
      PLSS ABABAB 2 Bright A_CustomMissile("PlasmaBolterShot1Trail",0,0,0,0)
      Goto Spawn+1
   Death:
      PLSE ABCDE 4 bright
      Stop
   }
}

ACTOR PlasmaBolterShot1Trail
{   
   Radius 0
   Height 1
   Damage 0
   Speed 0
   Scale 0.5
   PROJECTILE
   RENDERSTYLE ADD
   ALPHA 0.50
   States
   {
   Spawn:
      BOLT ABCDEFG 2 Bright
      Stop 
   }
}

//Weapon: Heavy Rifle
//By: ZChronos

ACTOR HeavyRifle : Weapon
{ 
   Inventory.PickupMessage "You got the Heavy Rifle!" 
   Inventory.PickupSound "misc/w_pkup" 
   Weapon.AmmoType "Clip" 
   Weapon.AmmoGive 50 
   Weapon.AmmoUse 10 
   Weapon.Kickback 900 
   weapon.slotnumber 4
   States 
   {
   Spawn: 
      HVYR A -1 
      Loop 
   Ready: 
      HVRG A 1 A_WeaponReady 
      Loop
   Deselect: 
      HVRG A 1 A_Lower 
      Loop 
   Select: 
      HVRG A 0 A_PlaySound("weapons/rifleup") 
      HVRG A 1 A_Raise 
      Goto Select+1 
   Fire:
      HVRF A 5 Bright A_FireCustomMissile("HeavyBullet", 0, 1, 0, 0)
      HVRF B 5 Bright A_Recoil(3) 
      HVRG A 10
      HVRG A 0 A_Refire
      Goto Ready
   }
}

ACTOR HeavyBullet
{
   Speed 100
   Damage 80
   Radius 6
   Height 8
   PROJECTILE
   +STRIFEDAMAGE
   SeeSound "weapons/riflefre"
   RENDERSTYLE ADD
   ALPHA 0.7 
   States
   {
   Spawn:
      BULL A 1 Bright
      Loop
   Death:
      HPUF ABCD 3
      Stop
   }
}
