ACTOR RailgunAmmo : Ammo
{
   Inventory.Amount 0
   Inventory.MaxAmount 50
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 50
}

ACTOR Rail_Gun : Weapon //Replaces Railgun
{
    damagetype Saw
	Weapon.AmmoUse1 0
	Weapon.AmmoUse2 0
	Weapon.AmmoGive1 50
	Weapon.AmmoGive2 0
	Weapon.AmmoType1 "Cell"
	Weapon.AmmoType2 "RailgunAmmo"
	Obituary "%o was pierced by %k's Railgun."
    Inventory.PickupSound "misc/w_pkup"
	Inventory.Pickupmessage "You got the Railgun!"
	+WEAPON.NOAUTOAIM
    +WEAPON.NOAUTOFIRE
	+WEAPON.NOALERT
	States
	{

	Ready:
        RAIS ABC 1
        TNT1 AAA 0
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
        TNT1 A 0 A_JumpIfInventory("RailgunAmmo",1,2)
        Goto Reload
        TNT1 AAAA 0
		RAIL A 1 A_WeaponReady
		Goto Ready+4
	Ready2:
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		SNIP A 9 A_WeaponReady(1)
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		SNIP A 9 A_WeaponReady(1)
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		SNIP A 9 A_WeaponReady(1)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Alerter", 0, 0, -1, 0)
		Loop
		
	DontNeedToReload:
		TNT1 A 0 A_JumpIfInventory("Zoomed",1,"Ready2")
	Goto Ready+6
	
	Deselect:
        RAIS CBA 1
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 1 A_Lower
		Wait
	Select:
			TNT1 A 0 A_Takeinventory("FistsSelected",1)
	TNT1 A 0 A_Takeinventory("SawSelected",1)
	TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
	TNT1 A 0 A_Takeinventory("SSGSelected",1)
	TNT1 A 0 A_Takeinventory("MinigunSelected",1)
	TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
	//TNT1 A 0 A_Giveinventory("RocketLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("RocketLauncherSelected",1)
    TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("BFGSelected",1)
	TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
	TNT1 A 0 A_Giveinventory("RailGunSelected",1)
	TNT1 A 0 A_Takeinventory("SubMachineGunSelected",1)
	TNT1 A 0 A_Takeinventory("RevenantLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
	TNT1 A 0 A_Takeinventory("FlameCannonSelected",1)
	TNT1 A 0 A_Takeinventory("HasBarrel",1)
	
		TNT1 A 0 A_Raise
		Wait
	Fire:
	    TNT1 A 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_JumpIfInventory("RailgunAmmo",1,2)
		Goto Reload
		TNT1 AA 0
		TNT1 A 0 A_Takeinventory("RailgunAmmo",10)
        RAIF A 1 BRIGHT A_AlertMonsters
		TNT1 A 0 A_FireCustomMissile("RailgunPuff2", 0, 0, 0, 0)
		RAIF A 1 BRIGHT A_RailAttack(200, 0, 1, "00 FF FF", "00 FF FF")
		TNT1 A 0 ACS_Execute(281, 0, 0, 0, 0)
		RAIF BC 1 A_FireCustomMissile("SmokeSpawner",0,0,0,5)
		RAIR ABCD 1
		RAIR DDDDD 3 A_FireCustomMissile("SmokeSpawner",0,0,0,5)
		RAIR CBA 1
		RAIL A 5
		RAIL A 1 A_Refire
		Goto Ready+4

    AltFire:
        TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Zoomed",1,5)
		TNT1 A 0 A_Giveinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(5.0)
        RAIL BC 2
        Goto Ready2
        TNT1 AAAAAA 0
        RAIL CB 2
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
        Goto Ready+4
		
		
       Reload:
	    RAIL A 1 A_WeaponReady
        TNT1 A 0 A_Takeinventory("Reloading",1)
		TNT1 A 0 A_JumpIfInventory("RailgunAmmo",50,"DontNeedToReload")
		TNT1 A 0 A_Takeinventory("Zoomed",1)
		RAIL A 1 A_ZoomFactor(1.0)
        TNT1 A 0 A_JumpIfInventory("Cell",1,3)
        Goto Ready+6
        TNT1 AAAA 0
		TNT1 A 0 A_PlaySound("PLREADY")
		
		TNT1 A 0 A_FireCustomMissile("PlasmaCaseSpawn",-30,0,-4,-4)
		RAIR ABCD 2
		RAIR D 30
		RAIR E 3
		RAIR D 20
		RAIR DCBA 2
		
		TNT1 AAAA 0
		TNT1 A 0 A_JumpIfInventory("RailgunAmmo",50,20)
		TNT1 A 0 A_JumpIfInventory("Cell",1,3)
		Goto Ready+6
        TNT1 AAAAAA 0
		TNT1 A 0 A_Giveinventory("RailgunAmmo",1)
		TNT1 A 0 A_Takeinventory("Cell",1)
		Goto Reload+26
		TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0
		
        Goto Ready+6	
		
 	Spawn:
		SRCG A -1
		Stop
		
    DoKick:
        TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
		KICK BCD 1
		RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, -1, 0)
        KICK H 4
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK IGFEDCBA 1 
		Goto Ready+7
    BerserkerKick:
		KICK ABCDEFG 1
        RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, -1, 0)
        KICK H 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK IGFEDCBA 1 
		Goto Ready+7
    Taunt:
        TNT1 A 5
		FUCK A 2
        FUCK B 2 A_PlaySound("FUCK", 1)
        FUCK C 2 A_AlertMonsters
		FUCK D 15 A_Takeinventory("Taunting",1)
        FUCK CBA 5
        TNT1 A 5
		Goto Ready
	Salute:
	    TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_ALertMonsters
		SALU ABCDEDCDEDCDEDCBA 4
		TNT1 A 0 A_TakeInventory("Salute1",1)
		TNT1 A 0 A_TakeInventory("Salute2",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto Ready

	}
}

ACTOR RailGunPuff2: FastProjectile
{
  +NOEXTREMEDEATH
  damagetype Saw
  Speed 200
  Damage 1
  Radius 1
  Height 1
  states
  {
  Spawn:
  TNT1 A 1
  Loop
  Death:
    TNT1 A 0
    TNT1 AAAA 0 A_SpawnItemEx("BluePlasmaParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	//EXPL AAAA 0 A_CustomMissile ("SmallSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    TNT1 ABCDE 2 BRIGHT A_SpawnItem("BlueFlare" ,0)
    Stop
  }
}