
//-------------------------------------------------
//  Ammo pickups
//-------------------------------------------------

actor HDPistolMagPickup : HDPickup
{
	inventory.pickupmessage "Picked up a 9mm magazine."
	translation "100:111=240:247"
	xscale 0.2
	yscale 0.4
	states
	{
	spawn:
		CLIP A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_JumpIfInventory ("HDPistolMags", 0, 2)
		TNT1 A 0 A_GiveInventory ("HDPistolMags", 1)
		stop
		TNT1 A 0 A_JumpIfInventory ("HDPistolAmmo", 0, 2)
		TNT1 A 0 A_GiveInventory ("HDPistolAmmo", 12)
		stop
		TNT1 A 0
		fail
	}
}
ACTOR HDPistolDrop : HDPistolPickup
{
	States
	{
	spawn:
		TNT1 A 0
		CLIP A 0 A_Jump (186, 2)
		CLIP A 0 A_SpawnItemEx ("HDPistolMagPickup", random(-4,4), random(-4,4), random(-4,4), velx+random(-2,2),vely+random(-2,2),velz+random(-4,4))
		CLIP A 0 A_Jump (186, 2)
		CLIP A 0 A_SpawnItemEx ("HDPistolMagPickup", random(-4,4), random(-4,4), random(-4,4), velx+random(-2,2),vely+random(-2,2),velz+random(-4,4))
		PIST A -1
		stop
	}
}
actor ClipPickup : HDPickup replaces Clip
{
	inventory.pickupmessage "Picked up a magazine."
	translation "160:167=144:151"
	xscale 0.4
	yscale 0.7
	states
	{
	spawn:
		CLIP A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_JumpIfInventory ("ZM66RifleMags", 0, 2)
		TNT1 A 0 A_GiveInventory ("ZM66RifleMags", 1)
		stop
		TNT1 A 0 A_JumpIfInventory ("Clip", 0, 2)
		TNT1 A 0 A_GiveInventory ("Clip", 30)
		stop
		TNT1 A 0
		fail
	}
}
ACTOR ClipBoxPickup : ClipPickup replaces ClipBox
{
	States
	{
	spawn:
		TNT1 A 0
		CLIP A 0 A_Jump (186, 2)
		CLIP A 0 A_SpawnItemEx ("HDFragGrenadeAmmo", random(-12,12), random(-12,12), random(-4,4))
		CLIP A 0 A_Jump (186, 2)
		CLIP A 0 A_SpawnItemEx ("RocketAmmoPickup", random(-8,8), random(-8,8), random(-4,4))
		CLIP A -1 A_SpawnItemEx ("ZM66RifleSpawner", random(-4,4),random(-4,4),0)
		stop
	}
}
actor ShellPickup : HDPickup replaces Shell
{
	inventory.pickupmessage "Picked up four shotgun shells."
	scale 0.6
	states
	{
	spawn:
		SHEL A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("Shell", 4)
		stop
	}
}
actor ShellBoxPickup : ShellPickup replaces ShellBox
{
	states
	{
	spawn:
		TNT1 A 0
		SHEL A 0 A_SpawnItem ("Shell", -6, 0, 0, 0)
		SHEL A 0 A_SpawnItem ("Shell", -3, 0, 0, 0)
		SHEL A 0 A_SpawnItem ("Shell", 3, 0, 0, 0)
		SHEL A -1 A_SpawnItem ("Shell", 6, 0, 0, 0)
		stop
	}
}
actor RocketAmmoPickup : HDPickup replaces RocketAmmo
{
	inventory.pickupmessage "Picked up a rocket grenade."
	scale 0.76
	states
	{
	spawn:
		ROQP A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("RocketAmmo", 1)
		stop
	}
}
actor RocketBoxPickup : HDPickup replaces RocketBox
{
	inventory.pickupmessage "Picked up a box of rocket grenades."
	scale 0.6
	states
	{
	spawn:
		BROK A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("RocketAmmo", 5)
		stop
	}
}
actor CellPickup : HDPickup
{
	inventory.pickupmessage "Picked up a cell."
	scale 0.6
	states
	{
	spawn:
		CELL A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_JumpIfInventory ("HDCellPacks", 0, 2)
		TNT1 A 0 A_GiveInventory ("HDCellPacks", 1)
		stop
		TNT1 A 0 A_JumpIfInventory ("Cell", 0, 2)
		TNT1 A 0 A_GiveInventory ("Cell", 20)
		stop
		TNT1 A 0
		fail
	}
}
Actor TurretReplacer : RandomSpawner replaces Cell
{
	+ismonster
	dropitem TurretteSpawner 128 2
	dropitem CellPickup 216 5
}
Actor TurretReplacerPack : RandomSpawner replaces CellPack
{
	+ismonster
	dropitem TurretteSpawner 192 5
	dropitem CellPickup 128 1
}
actor HDFragGrenadeAmmoPickup : HDPickup replaces HDFragGrenadeAmmo
{
	scale 0.6
	inventory.pickupmessage "Picked up a hand grenade."
	states
	{
	spawn:
		FRAG A -1
		stop
	pickup:
		TNT1 A 0 A_JumpIfInventory ("CanPickUpItems", 1, 1)
		fail
		TNT1 A 0 A_GiveInventory ("HDFragGrenadeAmmo", 1)
		stop
	}
}
actor HDFragGrenadePickup : HDFragGrenadeAmmoPickup replaces HDFragGrenades
{
	states
	{
	spawn:
		FRAG A 0
		FRAG AAAAA 0 A_SpawnItemEx ("HDFragGrenadeAmmo", random(-1,1),random(-1,1),random(0,4), random(-1,1),random(-1,1),random(2,6),0,0,136)
		FRAG A -1
		stop
	}
}



//-------------------------------------------------
// Grenade replacements for health/armour bonuses
//-------------------------------------------------

actor HDFragGrenadeAmmo1 : HDFragGrenadeAmmoPickup
{
	states
	{
	spawn:
		TNT1 A 0
		BON2 A 0 A_Jump (128, 2)
		TNT1 A 0 A_SpawnItem ("BluePotion", 0.1, 0, 0, 0)
		stop
		FRAG A -1 A_ChangeFlag ("dropped", 0)
		stop
	}
}
actor HDFragGrenadeAmmo2 : HDFragGrenadeAmmoPickup
{
	states
	{
	spawn:
		TNT1 A 0
		BON2 A 0 A_Jump (128, 2)
		TNT1 A 0 A_SpawnItem ("GreenHelmet", 0.1, 0, 0, 0)
		stop
		FRAG A -1 A_ChangeFlag ("dropped", 0)
		stop
	}
}
actor GreenHelmet : ArmorBonus replaces ArmorBonus
{
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump (200, 2)
		TNT1 A 0 A_SpawnItem ("HDFragGrenadeAmmo2", 0.1, 0, 0, 0)
		stop
		TNT1 A 0 A_ChangeFlag ("dropped", 0)
	spawn2:
		BON2 ABCDCB 6
		loop
	}
}
actor BluePotion : CustomInventory replaces HealthBonus
{
	height 16
	radius 20
	inventory.pickupmessage "Picked up a health bonus."
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump (200, 2)
		TNT1 A 0 A_SpawnItem ("HDFragGrenadeAmmo1", 0.1, 0, 0, 0)
		stop
		TNT1 A 0 A_ChangeFlag ("dropped", 0)
	spawn2:
		BON1 ABCDCB 6
		loop
	pickup:
		TNT1 A 0 A_GiveInventory("RegenBlues",1)
		stop
	}
}


// sticking oober spheres in here since they inherit from BluePotion

actor BlueSphere : BluePotion replaces Soulsphere
{
	inventory.pickupmessage "Supercharge!"
	inventory.pickupsound "misc/p_pkup"
	+inventory.fancypickupsound
	+floatbob
//	+nogravity
	+alwayspickup
	renderstyle add
	alpha 0.8
	states
	{
	spawn:
		SOUL ABCDCB 6 BRIGHT
		loop
	pickup:
		TNT1 A 0 A_GiveInventory("RegenBlues",100)
		stop
	}
}
actor BrownSphere : BlueSphere replaces Megasphere
{
	states
	{
	spawn:
		MEGA ABCD 6 BRIGHT
		loop
	pickup:
		TNT1 A 0 A_GiveInventory("RegenBlues",200)
		TNT1 A 0 A_TakeInventory ("GreenArmourFlag",999)
		TNT1 A 0 A_TakeInventory ("BlueArmourFlag",999)
		TNT1 A 0 A_TakeInventory ("Armor", 999)

		TNT1 A 0 A_GiveInventory ("BlackArmourFlag",1)
		TNT1 A 0 A_GiveInventory ("BlackArmour",1)
		stop
	}
}


