ACTOR AmmoDispenser
{
	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("AmmoDispenser_Base", 0)
			stop
	}
}


ACTOR AmmoDispenser_Count
{
	radius 3
	height 3
	scale 0.5
	+NOGRAVITY
	
	renderstyle add
	
	States
	{
		Spawn:
			CONT ABCDEFGHIJKL 29 bright
			stop
	}
}

// build column
ACTOR AmmoDispenser_BuildC1
{
	radius 8
	height 56
	mass 10000
	speed 0
	+FLOORCLIP
	+DONTOVERLAP
	+NODAMAGETHRUST
	+SOLID
	
	states
	{
		Spawn:
			BLDC A 0
			BLDC A 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC ABCDEFGHI 1
			BLDC I 5
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC O 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC P 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC N 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC M 1
			BLDC L 1
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC N 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC P 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC IHGFECBA 1
			stop
	}
}
ACTOR AmmoDispenser_BuildC2
{
	radius 8
	height 56
	mass 10000
	speed 0
	+FLOORCLIP
	+DONTOVERLAP
	+NODAMAGETHRUST
	+SOLID
	
	states
	{
		Spawn:
			BLDC A 0
			BLDC A 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC ABCDEFGHI 1
			BLDC I 5
			BLDC J 1
			BLDC K 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC M 1
			BLDC N 1
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 1
			BLDC M 1
			BLDC L 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC K 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC P 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC J 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 1
			BLDC P 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC O 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC N 1
			BLDC M 1
			BLDC L 1
			BLDC K 1
			BLDC IHGFECBA 1
			stop
	}
}
ACTOR AmmoDispenser_BuildC3
{
	radius 8
	height 56
	mass 10000
	speed 0
	+FLOORCLIP
	+DONTOVERLAP
	+NODAMAGETHRUST
	+SOLID
	
	states
	{
		Spawn:
			BLDC A 0
			BLDC A 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC ABCDEFGHI 1
			BLDC I 5
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 1
			BLDC M 1
			BLDC L 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC K 1 A_PlaySound("plats/pt1_pt1_strt", CHAN_AUTO)
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC P 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC N 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC M 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC L 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC K 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC IHGFECBA 1
			stop
	}
}
ACTOR AmmoDispenser_BuildC4
{
	radius 8
	height 56
	mass 10000
	speed 0
	+FLOORCLIP
	+DONTOVERLAP
	+NODAMAGETHRUST
	+SOLID
	
	states
	{
		Spawn:
			BLDC A 0
			BLDC A 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC ABCDEFGHI 1
			BLDC I 5
			BLDC J 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC K 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 1
			BLDC P 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC N 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC M 1
			BLDC L 1
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC M 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC N 1
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC P 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC N 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC M 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC L 1
			BLDC K 1
			BLDC IHGFECBA 1
			stop
	}
}



































ACTOR AmmoDispenser_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:
			DEAM ABCD 3 A_SpawnItemEx ("AmmoDispenser_AmmoPickup", random(-32,32), random(-32,32), 0, 0, 0, 3)
			DEAM 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 AmmoDispenser_AmmoPickup : CustomInventory
{
	radius 8
	height 32
	
	inventory.pickupmessage "Stocking..."
	
	+COUNTITEM
	+NOGRAVITY
	+FORCEYBILLBOARD
	renderstyle add
	
	states
	{
		Spawn:
			STRK B 1 A_FadeOut(0.02)
			goto Spawn
		Pickup:
			STRK A 0
			STRK A 0 ACS_Execute(106, 0, 3, 1, 0)
			STRK A 1
			stop
	}
}
