ACTOR TeslaRifle : Weapon
{
Scale 0.85
Weapon.PreferredSkin "PlasmaRifle-Marine"
Inventory.PickupMessage "Plasma Rifle"
Inventory.PickupSound "weapons/pickuphr"
Weapon.Selectionorder 4050
Weapon.KickBack 100
Weapon.AmmoType "TeslaPlasmaCell"
Weapon.AmmoType2 "NewCell"  
Weapon.AmmoUse 1
Weapon.AmmoGive2 40
Tag "Tesla Rifle"
+WEAPON.AMMO_OPTIONAL
+WEAPON.NOALERT
+INVENTORY.UNDROPPABLE
States
{
Ready:
	TNT1 A 0 A_PlayWeaponSound("weapons/pickuphr")
	PRAS ABCDEFG 1
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    PKPL A 1 A_WeaponReady
    Goto Ready+8
Deselect:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	PKPL A 1 A_Lower
    Goto Deselect+1
Select:
	TNT1 A 0 A_Raise
    Wait
Fire:
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(1,2,0,1,0)
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_PlaySound("weapons/hrfire")
	PLSF B 2 A_FirePlasma
	PKPL A 1 Bright
	TNT1 A 0 A_JumpIfInventory("PlasmaCell",1,1)
	Goto Recoil
	TNT1 A 0 A_ReFire
Recoil:
	PKPL DEF 1
	PKPL G 10
	PKPL FEDCBA 1
	Goto Ready+8
Flash:
	TNT1 A 2 Bright A_Light1
	PLSF A 2 Bright A_Light2
	Goto LightDone	
Empty:
    PKPL A 10 A_PlayWeaponSound("weapons/click3")
AltFire:
  	TNT1 A 0 A_JumpIfInventory("PlasmaCell",50,2)
    TNT1 A 0 A_JumpIfInventory("NewCell",1,2)
	TNT1 A 0
	Goto Ready+8
	TNT1 A 0 A_PlayWeaponSound("weapons/plasmacellout")
	PLZR B 1 A_FireCustomMissile("PlasmaCellCasingSpawner", 0, 0, 0, 1) 
	PLZR CD 2
	PLZR E 10
	PLZR FGH 1
	TNT1 A 0 A_JumpIfInventory("NewCell",1,"Reload")
	PLZR I 2
	PLZR J 8 A_PlayWeaponSound("weapons/plasmacellin")
	PLZR KL 2
	PLZR M 1
	PKPL A 2
	Goto Ready+8
Reload:
	TNT1 A 0 A_TakeInventory("NewCell",1)
	TNT1 A 0 A_GiveInventory("PlasmaCell",1)
	TNT1 A 0 A_JumpIfInventory("PlasmaCell",50,"Full")
	TNT1 A 0 A_JumpIfInventory("NewCell",1,"Reload")
	Goto AltFire+12
Full:
    TNT1 A 0
    Goto AltFire+12
GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+8
GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	PRAS GFEDCBA 1
	TNT1 A 4
	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
	Goto Ready+1
MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+8
MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	PRAS GFEDCBA 1
	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
	Goto Ready+1
Spawn:
    PLAS A -1
    Stop
    }
}

ACTOR TeslaPlasmaCell : Ammo
{
Inventory.Amount 0
Inventory.MaxAmount 50
Ammo.BackpackAmount 0
Ammo.BackpackMaxAmount 50
Inventory.Icon "CDLPA0"
+IGNORESKILL
}