////// ITEMS
ACTOR PortableHMG : CustomInventory 30009
{
  +COUNTITEM
  +INVENTORY.INVBAR
  +CANNOTPUSH
  Inventory.InterHubAmount 1
  Inventory.MaxAmount 1
  Inventory.Icon "PHMGA0"
  Inventory.PickupMessage "$GOTHMG"
  tag"Portable HMG"
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 
	
	Stay:
    HVMG P -1
    Stop
	
  Use:
    TNT1 A 1 A_SpawnItemEx ("Heavymachinegun", 56, 0, 8, 0, 0, 0, 0, 1)
    Stop
  }
}

ACTOR Bandolier : CustomInventory 30010
{
  +COUNTITEM
  +canpass
  scale 0.4
  Inventory.Icon "BELTA0"
  Inventory.PickupMessage "$GOTBANDOLIER"
  Inventory.PickupSOUND "BELT2"
  States
  {
  Spawn:
	TNT1 A 0
	"####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
		 BELT A -1 
		
		Stay:
		 BELT A -1
		Stop
	
  Pickup:
	TNT1 A 1 A_Giveinventory ("Clip1", 36)
	TNT1 A 1 A_Jumpifinventory("equipmentloss", 1, "survivalpickup")
	TNT1 A 1 A_Jump(255, "shells", "7.62")
    Stop
	
	Survivalpickup:
	TNT1 A 1 A_Giveinventory("saveammo", 1)
	TNT1 A 1 A_Jump(255, "shells", "7.62", "4.73")
    Stop
	
	4.73:
	  TNT1 A 0 A_print("\cx The Bandolier contained: \n \cq - (36) 9mm bullets \n \cq - (25) 4.73mm rounds",2)
	  TNT1 A 1 A_Giveinventory ("minigunammo", 25)
	  Stop
	
	  7.62:
	  TNT1 A 0 A_print("\cx The Bandolier contained: \n \cq - (36) 9mm bullets \n \cq - (15) 7.62mm rounds",2)
	  TNT1 A 1 A_Giveinventory ("Clip2", 15)
	  Stop
	  
	 shells:
	  TNT1 A 0 A_print("\cx The Bandoliers contained: \n \cq - (36) 9mm bullets \n \cq - (8) Buckshot Shells",2)
      TNT1 A 1 A_Giveinventory ("Ammoshell", 8)
	  Stop
  }
}

Actor BackPackNew : CustomInventory 30011
{
SpawnID 144
Height 26
tag"Military backpack"
 Inventory.PickupSound "EMPTYPAK"
 Inventory.PickupMessage "$GOTBACKPACK"
+INVENTORY.ALWAYSPICKUP
+FORCEXYBILLBOARD
 States
 {
  Spawn:
		TNT1 A 0
		TNT1 A 0 
		
		Stay:
		BPAK A -1
		Stop
  
  Pickup:
   TNT1 A 0 A_GiveInventory("hasbackpack", 1)
  TNT1 A 0 A_GiveInventory("AmmoSuply")
  TNT1 A 0 A_Jumpifinventory("equipmentloss",1, "Survivalbelt")
  Stop
  
     Survivalbelt:
	  TNT1 A 1
      TNT1 A 0 A_GiveInventory("saveweapon", 1)
	  Stop
  }
}


Actor EmptyBackpack : CustomInventory 30012
{
Height 26
tag"Empty Backpack"
 Inventory.PickupSound "BACKPACK"
 Inventory.PickupMessage "$GOTBACKPACK2"
+INVENTORY.ALWAYSPICKUP
+canpass
+FORCEXYBILLBOARD
 States
 {
  Spawn:
		TNT1 A 0	
	Stay:
		CBPK A -1
		Stop
  
  Pickup:
   TNT1 A 0 A_GiveInventory("hasbackpack", 1)
  TNT1 A 0 ACS_NamedExecute("EmptyBackpack",0)
  TNT1 A 0 A_Jumpifinventory("equipmentloss",1, "Survivalbelt")
  Stop
  
     Survivalbelt:
	  TNT1 A 1
	  TNT1 A 0 A_GiveInventory("saveammo", 1)
      TNT1 A 0 A_GiveInventory("saveweapon", 1)
	  Stop
  }
}

ACTOR saveammo : ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 4
    Inventory.Icon "SVAMA0"
}

ACTOR saveweapon : ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 2
    Inventory.Icon "SVWPA0"
}	


ACTOR Battery : Ammo 
{
	Game Doom
	Inventory.Amount 50
	Inventory.MaxAmount 200
	Inventory.Icon "BATTB0"
	States
	{
	Spawn:
		TNT1 A 1
		Stop
	}
}

ACTOR Batterypickup : custominventory 30013
{
	Game Doom
+canpass
	+INVBAR
	+CANNOTPUSH
	radius 5
	Inventory.PickupMessage "$GOTBATTERY"
	Inventory.Amount 1
	Inventory.MaxAmount 6
	Inventory.interhubAmount 6
	Scale 0.1
	Inventory.Icon "BATTD0"
	Inventory.pickupsound "ELECTRPK"
	tag"Lithium Battery"
	States
	{
	Spawn:
		BATT A 0
		"####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))	
	Stay:
		BATT A 1 a_jumpifinventory("removeingredient",1,"Disappear")
		loop
		
	USE:
		TNT1 A 0
	CheckCharge:
		TNT1 A 0 A_jumpifinventory("battery", 200, "Alreadyfull")
	
	Recharge:
		TNT1 A 0 ACS_namedexecutealways("batterycharging",0)
		TNT1 A 0 A_giveinventory("battery", 50)
		TNT1 A 0 A_PLAYSOUND("ELECTRPK")
		TNT1 A 0 A_print("Flashlight battery recharged")
		Stop
	
	Alreadyfull:
		TNT1 A 0 A_print("Your Flashlight battery is already fully charged")
		fail
	
Disappear:
		TNT1 A 1
		Stop
	}
}

Actor BatteryCrafted : custominventory
{
	Inventory.pickupsound "ELECTRPK"
	tag"Lithium Battery"
	Inventory.PickupMessage "$GOTBATTERY"
	Scale 0.1
	Inventory.Amount 0
States
{
Spawn:
	BATT A -1
	stop
Pickup:
	TNT1 A 1 A_giveinventory("batterypickup", 1)
	Stop
}}


ACTOR Radar : custominventory
{
	scale 0.2
+canpass
  +INVENTORY.INVBAR
  +CANNOTPUSH
  +FORCEXYBILLBOARD
  Inventory.InterHubAmount 1
  Inventory.MaxAmount 1
  Inventory.Icon "RADRI0"
  Inventory.PickupMessage "$GOTRADAR"
  Inventory.pickupsound "LIFEMODU"
  tag"Movement Sensor"
  States
  {
  Spawn:
	ARST A 0
	"####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
Stay:
	RADR P 2 BRIGHT { a_jumpifinventory("removeingredient",1,"Disappear"); A_SpawnItem("GreenFlareSmall2",0,7);}
	RADR Q 2 BRIGHT { a_jumpifinventory("removeingredient",1,"Disappear"); A_SpawnItem("GreenFlareSmall2",0,7);}
	RADR R 2 BRIGHT { a_jumpifinventory("removeingredient",1,"Disappear"); A_SpawnItem("GreenFlareSmall2",0,7);}
	RADR S 2 BRIGHT { a_jumpifinventory("removeingredient",1,"Disappear"); A_SpawnItem("GreenFlareSmall2",0,7);}
	RADR PPPPPPPPPPPPPPP 1 BRIGHT a_jumpifinventory("removeingredient",1,"Disappear")
	loop

Disappear:
	TNT1 A 0 
	stop

  Use:
	TNT1 A 1 ACS_NamedExecute("radarMOUNT",0)
    Stop
  }
}

ACTOR LifeModule : custominventory 30014
{
+canpass
  +INVENTORY.INVBAR
  +CANNOTPUSH
  +FORCEXYBILLBOARD
  scale 0.5
  Inventory.InterHubAmount 1
  Inventory.MaxAmount 1
  Inventory.Icon "MEDMB0"
  Inventory.PickupMessage "$GOTLIFEMOD"
  Inventory.pickupsound "LIFEMODU"
  tag"Life Support Module"
  States
  {
  Spawn:
	MEDM A 0
	TNT1 A 0 
Stay:
	MEDM A 1 a_jumpifinventory("removeingredient",1,"Disappear")
	loop

Disappear:
	TNT1 A 0
	stop
	
  Use:
	TNT1 A 1 ACS_NamedExecute("LifeModuleMOUNT",0)
    Stop
  }
}

Actor RepairDevice : custominventory 30015
{
+canpass
  +INVENTORY.INVBAR
  +CANNOTPUSH
  health 1
  +nodamage
  +SHOOTABLE
  +NOBLOOD
  +FRIENDLY
  SCALE 0.6
  Inventory.InterHubAmount 5
  Inventory.MaxAmount 5
  Inventory.Icon "WLDRE0"
  Inventory.PickupMessage "$GOTREPAIRER"
  Inventory.pickupsound "CELLBOX"
  tag"Appliance Nano-reconstructor"
  States
  {
  Spawn:
	WLDR A 0
	"####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
Stay:
	WLDR AAAAAAAAAA 1  a_jumpifinventory("removeingredient",1,"Disappear")
	WLDR BB 1  a_jumpifinventory("removeingredient",1,"Disappear")
	WLDR CC 1  a_jumpifinventory("removeingredient",1,"Disappear")
	WLDR DD 1  a_jumpifinventory("removeingredient",1,"Disappear")
	loop
	
	Use:
	TNT1 A 1 ACS_NamedExecute("REPAIRWEAPONFULL",0)
	TNT1 A 0 a_PLAYSOUND("PLSDRAW",1)
    Stop

Death.disarm:	
Pain.disarm:
	TNT1 A 0 a_SPAWNITEM("SCRAPMETAL",0,0)
	TNT1 A 0 a_SPAWNITEM("ELECTRONICPARTS",0,0)
Disappear:
	TNT1 A 1
	STOP
  }
}

ACTOR SURVIVALKITPICKUP : custominventory 
{
	Game Doom
	Inventory.PickupMessage "$GOTKIT"
	Inventory.Amount 1
	Scale 0.15
	Inventory.pickupsound "WIRECUT"
	tag"Survival Kit"
+canpass
	States
	{
	Spawn:
		TNT1 A 0
		 KITP K -1
		stop
		
		PICKUP:
		TNT1 A 0 A_JUMPIFINVENTORY("SURVIVALKITUSES",100,"NOPICKUP")
		TNT1 A 0 A_GIVEINVENTORY("SURVIVALKIT",1)
		TNT1 A 0 A_GIVEINVENTORY("SURVIVALKITUSES", RANDOM(5,10))
		STOP
		
		NOPICKUP:
		TNT1 A 0
		FAIL
	}
}



ACTOR ETCRifleModule : custominventory
{
	scale 0.2
+canpass
  +INVENTORY.INVBAR
  +CANNOTPUSH
  +FORCEXYBILLBOARD
  	+SHOOTABLE
    painchance "disarm", 256
	DAMAGEFACTOR "DISARM", 1000.0
	health 500		
  Inventory.InterHubAmount 1
  Inventory.MaxAmount 1
  Inventory.Icon "RMODB0"
  Inventory.PickupMessage "$GOTRIFLEUPGRADE"
  Inventory.pickupsound "ETCPKUP"
tag"Electro-Thermo Chemical Upgrade Kit"
  States
  {
  Spawn:
	TNT1 A 0
  Stay:
	RMOD A 1 a_jumpifinventory("removeingredient",1,"Disappear")
	RMOD A 1 A_SpawnItem("BlueFlareSmallItem",0,7)
	RMOD A 1 a_jumpifinventory("removeingredient",1,"Disappear")
	RMOD A 1 A_SpawnItem("BlueFlareSmallItem",0,7)
	RMOD A 1 a_jumpifinventory("removeingredient",1,"Disappear")
	RMOD A 1 A_SpawnItem("BlueFlareSmallItem",0,7)
	RMOD A 1 a_jumpifinventory("removeingredient",1,"Disappear")
	RMOD A 1 A_SpawnItem("BlueFlareSmallItem",0,7)
    RMOD A 1  a_jumpifinventory("removeingredient",1,"Disappear")
	RMOD A 1  A_SpawnItem("BlueFlareSmallItem",0,7)
	loop
	
Disappear:
	TNT1 A 0
	stop
	
  Pain.Disarm:
  Death.Disarm:
	TNT1 A 0
	TNT1 A 0 A_Spawnitemex("scrapmetal",0,10, 15,0,1,3,random(1,5))
	TNT1 A 0 A_Spawnitemex("droppedcell",0,-10, 15,0,-1,3,random(1,5))
	TNT1 A 0 A_SpawnitEM("ELECTRONICPARTS")
    stop	
	
  Use:
	TNT1 A 0 a_jumpifinventory("plasmaenhancermounted",1,3)
	TNT1 A 0 a_jumpifinventory("RifleSelected",1,"Assemble")
	TNT1 A 0 a_print("This upgrade module is designed for a Battle Rifle. You need to equip one, before you try assembling it.")
    Fail
Assemble:
	TNT1 A 0 A_GIVEINVENTORY("ETCRIFLETOKEN",1)
	STOP

  }
}

ACTOR ForceFieldcooldown : inventory {Inventory.MaxAmount 1}
ACTOR ForceFieldON : inventory {Inventory.MaxAmount 1}
ACTOR ForceFieldG : custominventory
{
	scale 0.2
+canpass
  +FORCEXYBILLBOARD
  +INVENTORY.INVBAR
  +CANNOTPUSH
  	+SHOOTABLE
    painchance "disarm", 256
	DAMAGEFACTOR "DISARM", 1000.0
	health 500		
  Inventory.MaxAmount 1
  Inventory.Icon "FGEND0"
  Inventory.PickupMessage "$GOTFORCEFIELD"
  Inventory.pickupsound "ETCPKUP"
tag"Personal Barrier Generator"
States
	{
	Spawn:
	TNT1 A 0
	
	Stay:
    FGEN A 1 A_SpawnItem("BlueFlareSmallest",0,3)
	FGEN A 1 a_jumpifinventory("removeingredient",1,"Disappear")
	FGEN A 1 A_SpawnItem("BlueFlareSmallest",0,3)
	FGEN B 1 a_jumpifinventory("removeingredient",1,"Disappear")
	FGEN B 1 A_SpawnItem("BlueFlareSmallest",0,3)
	FGEN B 1 a_jumpifinventory("removeingredient",1,"Disappear")
	FGEN C 1 A_SpawnItem("BlueFlareSmallest",0,3)
	FGEN C 1 a_jumpifinventory("removeingredient",1,"Disappear")
	FGEN C 1 A_SpawnItem("BlueFlareSmallest",0,3)
	FGEN C 1 a_jumpifinventory("removeingredient",1,"Disappear")
	FGEN C 1 A_SpawnItem("BlueFlareSmallest",0,3)
	FGEN C 1 a_jumpifinventory("removeingredient",1,"Disappear")
	FGEN C 1 A_SpawnItem("BlueFlareSmallest",0,3)
	FGEN C 1 a_jumpifinventory("removeingredient",1,"Disappear")
	FGEN C 1 A_SpawnItem("BlueFlareSmallest",0,3)
	FGEN C 1 a_jumpifinventory("removeingredient",1,"Disappear")
	FGEN C 1 A_SpawnItem("BlueFlareSmallest",0,3)
	FGEN C 1 a_jumpifinventory("removeingredient",1,"Disappear")
	loop
	
	Disappear:
		TNT1 A 0
		stop
	
	Use:
		TNT1 A 0 A_jumpifinventory("ammocell",10,1)
		goto noenergy
		TNT1 A 0 A_jumpifinventory("forcefieldcooldown",1,"Cooldown")
		TNT1 A 0 A_jumpifinventory("forcefieldON",1,"OFF")
	ON:
		TNT1 A 0 a_takeinventory("ammocell",10)
		TNT1 A 0 a_giveinventory("forcefieldON",1)
		TNT1 A 0 a_log("\cv force field generator: \cd activated")
		TNT1 A 0 ACS_NamedExecute("ForceFieldSwitch",0)
		Fail
	OFF:
		TNT1 A 0 a_takeinventory("forcefieldON",1)
		TNT1 A 0 a_log("\cv force field generator: \ca deactivated")
		TNT1 A 0 ACS_NamedExecute("ForceFieldSwitch",0)
		Fail
		
	Cooldown:
		TNT1 A 0
		Fail
		
	NoEnergy:
		TNT1 A 0 a_log("\ca you need at least 10 energy cells to activate it")
		Fail
	
 Pain.Disarm:
  Death.Disarm:
	TNT1 A 0
	TNT1 A 0 A_Spawnitemex("scrapmetal",0,10, 15,0,1,3,random(1,5))
	TNT1 A 0 A_Spawnitemex("droppedcell",0,-10, 15,0,-1,3,random(1,5))
	TNT1 A 0 A_SpawnitEM("ELECTRONICPARTS")
    stop	
	}
}
	
	
	