

//-------------------------------------------------
//    Usable items
//-------------------------------------------------

actor PortableBerserkPack : CustomInventory
{
	+inventory.invbar
	+inventory.undroppable
	inventory.amount 1
	inventory.maxamount 4
	inventory.icon PPSTA0
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("BerserkPack", 0,0,0, velx,vely,velz, 0,40)
		stop
		PSTR A -1
		stop
	use:
		TNT1 A 0 A_JumpIfHealthLower(101, 1)
		fail
		TNT1 A 0 ACS_Execute (552, 0, 3)
		fail
	}
}
actor PortableMedikit : CustomInventory
{
	+inventory.invbar
	+inventory.undroppable
	inventory.amount 1
	inventory.maxamount 8
	inventory.pickupmessage "Picked up a medikit."
	inventory.icon PMEDA0
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("Meds", 0,0,0, velx,vely,velz, 0,40)
		stop
		MEDI A -1
		stop
	use:
		TNT1 A 0 A_JumpIfInventory("WoundCount", 1,2)
		TNT1 A 0 A_JumpIfHealthLower(76, 1)
		fail
		TNT1 A 0 ACS_Execute (552, 0, 2)
		fail
	}
}
actor PortableStimpack : CustomInventory
{
	+inventory.invbar
	+inventory.undroppable
	inventory.amount 1
	inventory.maxamount 8
	inventory.pickupmessage "Picked up a stimpack."
	inventory.icon PSTIA0
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("Stims", 0,0,0, velx,vely,velz, 0,40)
		stop
		STIM A -1
		stop
	use:
		TNT1 A 0 A_JumpIfHealthLower(76, 1)
		fail
		TNT1 A 0 ACS_Execute (552, 0, 1)
		fail
	}
}
actor PortableLiteAmp : CustomInventory
{
	+inventory.invbar
	+inventory.undroppable
	inventory.amount 1
	inventory.maxamount 3
	inventory.pickupmessage "Light amplification visor."
	inventory.icon PPVIA0
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("LiteAmp", 0,0,0, velx,vely,velz, 0,40)
		stop
		PVIS AB 16
		loop
	use:
		TNT1 A 0 A_SetBlend ("01 00 00", 0.8, 16)
		TNT1 A 0 A_GiveInventory ("Infrared", 1)
		TNT1 A 0 A_TakeInventory ("LiteAmmo",1)
		TNT1 A 0 A_TakeInventory ("PortableLiteAmp",1)
		fail
	}
}

//-------------------------------------------------
//    Master pickup template
//-------------------------------------------------

actor HDPickup : CustomInventory
{
	+usespecial
	radius 20
	height 16
	scale 0.8
	states
	{
	spawn:
		TNT1 A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0
		stop
	}
}

//-------------------------------------------------
//    Usable pickups
//-------------------------------------------------

actor BerserkPack : HDPickup replaces Berserk
{
	inventory.pickupsound "misc/p_pkup"
	inventory.pickupmessage "Picked up a berserk pack."
	states
	{
	spawn:
		PSTR A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("PortableBerserkPack", 1)
		TNT1 A 0 A_GiveInventory ("BersAmmo",1)
		stop
	}
}
actor BerserkPackPP : BerserkPack replaces PortableBerserkPack {}
actor Meds : HDPickup replaces Medikit
{
	inventory.pickupmessage "Picked up a medikit."
	states
	{
	spawn:
		MEDI A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("PortableMedikit", 2)
		TNT1 A 0 A_GiveInventory ("MediAmmo",2)
		stop
	}
}
actor MedsPP : Meds replaces PortableMedikit {}
actor Stims : HDPickup replaces Stimpack
{
	inventory.pickupmessage "Picked up a stimpack."
	states
	{
	spawn:
		STIM A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("PortableStimpack", 1)
		TNT1 A 0 A_GiveInventory ("StimAmmo",1)
		stop
	}
}
actor StimsPP : Stims replaces PortableStimpack {}
actor LiteAmp : HDPickup replaces Infrared
{
	inventory.pickupmessage "Picked up a light amplification visor."
	states
	{
	spawn:
		PVIS A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("PortableLiteAmp", 1)
		TNT1 A 0 A_GiveInventory ("LiteAmmo",1)
		stop
	}
}
actor LiteAmpPP : LiteAmp replaces PortableLiteAmp {}
actor StimAmmo : Ammo
{
	inventory.maxamount 8
	ammo.backpackmaxamount 8
}
actor MediAmmo : Ammo
{
	inventory.maxamount 8
	ammo.backpackmaxamount 8
}
actor BersAmmo : Ammo
{
	inventory.maxamount 4
	ammo.backpackmaxamount 4
}
actor LiteAmmo : Ammo
{
	inventory.maxamount 3
	ammo.backpackmaxamount 3
}
actor Map : HDPickup replaces Allmap
{
	inventory.pickupsound "misc/p_pkup"
	inventory.pickupmessage "Picked up a map of the area."
	states
	{
	spawn:
		PMAP ABCDCB 6 bright
		loop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("MapRevealer", 1)
		stop
	}
}
actor Knapsack : HDPickup replaces Backpack
{
	inventory.pickupsound "misc/p_pkup"
	inventory.pickupmessage "Picked up a backpack."
	scale 0.9
	states
	{
	spawn:
		BPAK A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("Backpack", 1)
		stop
	}
}
actor RadiationSuit : HDPickup replaces RadSuit
{
	inventory.pickupsound "misc/p_pkup"
	inventory.pickupmessage "Radiation shielding suit."
	states
	{
	spawn:
		SUIT A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("RadSuit", 1)
		stop
	}
}


//-------------------------------------------------
//    Armour pickups
//-------------------------------------------------

actor GreenArmour : GreenArmor
{
	inventory.icon ARMSA0
	armor.saveamount 160
	armor.savepercent 36
}
actor BlueArmour : BlueArmor
{
	inventory.icon ARMCA0
	armor.saveamount 120
	armor.savepercent 50
}
actor BlackArmour : BlueArmor
{
	inventory.icon ARMEA0
	armor.saveamount 80
	armor.savepercent 80
}
actor GreenArmourPickup : HDPickup replaces GreenArmour
{
	inventory.pickupmessage "Picked up the security armour."
	scale 1
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag ("dropped", 0)
		ARMS A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory("CanPickupArmour",1)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(558,0,3,0),1)
		fail
		TNT1 A 0 A_PlaySound("weapons/pocket")
		stop
	}
}
actor BlueArmourPickup : HDPickup replaces BlueArmour
{
	inventory.pickupmessage "Picked up the combat armour."
	translation "112:117=195:207","118:127=240:247"
	scale 1
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag ("dropped", 0)
		ARMC A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory("CanPickupArmour",1)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(558,0,3,1),1)
		fail
		TNT1 A 0 A_PlaySound("weapons/pocket")
		stop
	}
}
actor BlackArmourPickup : HDPickup replaces BlackArmour
{
	inventory.pickupmessage "Picked up the emergency armour."
	translation "112:113=92:98","114:120=99:111","121:127=5:8"
	scale 1
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag ("dropped", 0)
		ARME A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory("CanPickupArmour",1)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(558,0,3,2),1)
		fail
		TNT1 A 0 A_PlaySound("weapons/pocket")
		stop
	}
}
actor BlackArmor : BlackArmourPickup {}		//due to habit of typing "summon greenarmor", etc.

actor LittleArmourSpawner replaces GreenArmor
{
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump (32, "spawnblack")
		TNT1 A 0 A_Jump (64, "spawnblue")
		goto spawngreen
	spawnblack:
		TNT1 A 0 A_SpawnItemEx("BlackArmourPickup",0,0,0, 0,0,0, 0,32)
		stop
	spawnblue:
		TNT1 A 0 A_SpawnItemEx("BlueArmourPickup",0,0,0, 0,0,0, 0,32)
		stop
	spawngreen:
		TNT1 A 0 A_SpawnItemEx("GreenArmourPickup",0,0,0, 0,0,0, 0,32)
		stop
	}
}
actor BigArmourSpawner : LittleArmourSpawner replaces BlueArmor
{
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump (32, "spawngreen")
		TNT1 A 0 A_Jump (64, "spawnblack")
		goto spawnblue
	}
}


actor GreenArmourFlag : InventoryFlag {}
actor BlackArmourFlag : InventoryFlag {}
actor BlueArmourFlag : InventoryFlag {}

