ACTOR HealthDispenser
{
	radius 8
	height 64
	mass 10000
	speed 0
	+FLOORCLIP
	+NODAMAGETHRUST
	+SOLID
	
	states
	{
		Spawn:
			TBAS A 0
			TBAS A 0 A_SpawnItemEx("AmmoDispenser_Count", 0, 0, 64)
			TBAS A 0 A_SpawnItemEx("AmmoDispenser_BuildC1", 16, 16)
			TBAS A 0 A_SpawnItemEx("AmmoDispenser_BuildC2", -16, 16)
			TBAS A 0 A_SpawnItemEx("AmmoDispenser_BuildC3", -16, -16)
			TBAS A 0 A_SpawnItemEx("AmmoDispenser_BuildC4", 16, -16)
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright A_NoBlocking
			TBLD A 2 bright
			TBAS A 1 A_SpawnItemEx("HealthDispenser_Base", 0)
			stop
	}
}

ACTOR HealthDispenser_Base
{
	health 250
	radius 16
	height 32
	mass 10000
	speed 0
	
	MONSTER
	-ISMONSTER //Makes it spawnable everywhere
	+FLOORCLIP
	+FRIENDLY
	+NOBLOOD
	-SOLID
	+NEVERRESPAWN
	
	// protect from marine damage
	damagefactor "MarineFire", 0.0
	damagefactor "MarineFire2", 0.0
	DamageFactor "MarineFire3", 0.0
	
	states
	{
		Spawn:
			DEHP ABCD 3 A_SpawnItemEx ("HealthDispenser_HealPickup", random(-32,32), random(-32,32), 0, 0, 0, 3)
			DEHP E 3  A_SpawnItemEx("streak_cfx", random(-32, 32), random(-32, 32), 0, 0, 0, 1, 0, SXF_CLIENTSIDE, 0)
			goto Spawn
		Death:
			TRT2 A 1 bright A_SpawnItemEx ("Boom", 0, 0, 60, 0, 0, 0, 0, 160)
			TRT2 A 0 bright A_StopSoundEx ("SoundSlot5")
			TRT2 A 0 bright A_PlaySound ("weapons/rocklx")
			stop
	}
}

ACTOR HealthDispenser_HealPickup : CustomInventory
{
	radius 8
	height 32
	
	inventory.pickupmessage "Healing..."
	
	+COUNTITEM
	+NOGRAVITY
	+FORCEYBILLBOARD
	renderstyle add
	
	states
	{
		Spawn:
			STRK C 1 A_FadeOut(0.02)
			goto Spawn
		Pickup:
			STRK A 0
			STRK A 0 ACS_Execute(106, 0, 4, 1, 0)
			STRK A 1
			stop
	}
}