ACTOR "Phase Demon Tech Rifle" : Weapon 19355
{
   Height 14
   Weapon.PreferredSkin "DemonTechRifle-Marine"
   Weapon.SelectionOrder 7980
   Weapon.KickBack 60
   Weapon.AmmoUse 1
   Weapon.AmmoGive 60
   Weapon.AmmoGive2 30
   Scale 0.95
   Weapon.AmmoType "DemonMagazine"   
   Weapon.AmmoType2 "DemonAmmo"
   Inventory.PickupMessage "Demon Tech Rifle"
   Inventory.PickupSound "weapons/demontechload"
   Obituary "%o was fried by %k's Demon Tech Rifle."
   +WEAPON.AMMO_OPTIONAL
   +WEAPON.NOALERT
   +INVENTORY.UNDROPPABLE
   States
   {
   Ready:
     TNT1 A 0 A_PlayWeaponSound("weapons/demontechload")
	 PTEK ABCDE 1
   ReadyLoop:
     TNT1 A 0 A_JumpIfInventory("DemonMagazine",1,2)
	 TNT1 A 0
	 Goto NoBuzzing
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady	 
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK AAA 1 A_WeaponReady
	 TNT1 A 0 A_PlaySound("weapons/demontechidle")
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK BB 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK BB 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK CC 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK CC 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK DD 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK DD 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK EE 1 A_WeaponReady
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	 PTEK EE 1 A_WeaponReady
     Goto ReadyLoop
   NoBuzzing:
     TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	 TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
     PTEK A 1 A_WeaponReady
	 Loop
    Deselect:
	    PTEK A 1 Offset(-1,35)
		PTEK A 1 Offset(-15,39)
		PTEK A 1 Offset(-35,45)
		PTEK A 1 Offset(-55,52)
		PTEK A 1 Offset(-70,60)
		PTEK A 1 Offset(-90,69)
		PTEK A 1 Offset(-105,89)
		PTEK A 1 Offset(-125,102)
		PTEK A 1 Offset(-125,102)
		PTEK A 1 Offset(-155,108)
		PTEK A 1 Offset(-155,150)
	DeselectRaise:
		PTEK A 1 Offset(-1,0)
		PTEK A 1 A_Lower
		loop
  Select:
		PTEK A 1 Offset(-90,69)
		PTEK A 1 Offset(-70,60)
		PTEK A 1 Offset(-55,52)
		PTEK A 1 Offset(-35,45)
		PTEK A 1 Offset(-15,39)
		PTEK A 1 Offset(-1,35)
	SelectRaise:
		PTEK A 1 A_Raise
   Fire:
     TNT1 A 0 A_JumpIfNoAmmo("Empty")
     TNT1 A 0 A_GunFlash
	 TNT1 A 0 Radius_Quake(4,2,0,1,0)
     TNT1 A 0 A_Light1
	 TNT1 A 0 A_PlaySound("weapons/demontechfire")
     PTKF A 2 Bright A_FireCustomMissile("PhaseDemonTechProjectile1",Random(100,-100)/100.00,1,0,0,0,Random(100,-100)/100.00)
	 PTKF B 1 Bright A_Light2
     PTKF C 2 A_Light0
     TNT1 A 0 A_ReFire
     Goto ReadyLoop
   Empty:
     PTEK A 10 A_PlayWeaponSound("weapons/click2")	 
   AltFire:
  	 TNT1 A 0 A_JumpIfInventory("DemonMagazine",60,2)
     TNT1 A 0 A_JumpIfInventory("DemonAmmo",1,2)
	 TNT1 A 0
	 Goto ReadyLoop
     PTKR AB 2
	 PTKR C 3
	 PTKR D 4 A_PlayWeaponSound("weapons/demontecheject")
	 TNT1 A 0 A_PlayWeaponSound("weapons/demontechsteam")
	 PTKR EFG 1 Radius_Quake(2,2,0,1,0)
	 PTKR H 2 Radius_Quake(2,2,0,1,0)
	 PTKR I 3 Radius_Quake(2,2,0,1,0)
	 PTKR J 4 A_FireCustomMissile("DemonTechEmptyMagSpawner", 0, 0, 0, 1)
	 PTKR K 15 
	 PTKR LM 2
	 PTKR N 2 A_PlayWeaponSound("weapons/demontechload")
	 TNT1 A 0 A_JumpIfInventory("DemonAmmo",1,"Reload")	 
	 PTKR O 8
	 PTKR O 2 A_PlayWeaponSound("weapons/demontechclick")
     PTKR CB 3
	 PTKR A 2
	 Goto ReadyLoop
   Reload:
	 TNT1 A 0 A_TakeInventory("DemonAmmo",1)
	 TNT1 A 0 A_GiveInventory("DemonMagazine",1)
	 TNT1 A 0 A_JumpIfInventory("DemonMagazine",60,"Full")
	 TNT1 A 0 A_JumpIfInventory("DemonAmmo",1,"Reload")
	 TNT1 A 0 A_SpawnItemEx("ShadowSmokeGen3",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	 TNT1 A 0 A_GiveInventory("PhaseRifleInvisibility")
	 Goto AltFire+19
   Full:
     TNT1 AAAAA 0 A_SpawnItemEx("ShadowSmokeGen3",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	 TNT1 A 0 A_GiveInventory("PhaseRifleInvisibility") 
	 Goto AltFire+19
   GrenadeCheck:
	 TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	 TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	 Goto Ready+6
   GrenadeToss:
  	 TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	 PTRS EDCBA 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+6
   MineToss:
  	 TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	 PTRS EDCBA 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		 
	GoInvisible:
	 TNT1 A 0 A_GiveInventory("PhaseRifleInvisibility")
	 GoTo Ready
   Spawn:
     PTEP A -1
     Stop
     }
}

Actor PhaseDemonTechProjectile1 : PhaseDemonTechProjectile2
{
	DamageType "Marine"
}

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

ACTOR PhaseRifleInvisibility : PowerInvisibility
{
  Powerup.Duration -10
  Powerup.Strength 100
  Powerup.Mode "Cumulative"
}