Actor BudgetDrop_1 : CustomInventory {
	inventory.pickupmessage "\ccBudget Pickup : \c[Y5]$1k\c-"
	inventory.pickupsound "Items/Budget"
	+NEVERRESPAWN
	States {
		Spawn:
			GEMS A -1
		Stop
		Pickup:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Budget Giver", 0, 1)
		Stop
	}
}

Actor BudgetDrop_2 : BudgetDrop_1 {
	inventory.pickupmessage "\ccBudget Pickup : \c[Y5]$2k\c-"
	States {
		Spawn:
			GEMS B -1
		Stop
		Pickup:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Budget Giver", 0, 2)
		Stop
	}
}

Actor BudgetDrop_3 : BudgetDrop_1 {
	inventory.pickupmessage "\ccBudget Pickup : \c[Y5]$5k\c-"
	States {
		Spawn:
			GEMS C -1
		Stop
		Pickup:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Budget Giver", 0, 5)
		Stop
	}
}

Actor BudgetDrop_4 : BudgetDrop_1 {
	inventory.pickupmessage "\ccBudget Pickup : \c[Y5]$10k\c-"
	States {
		Spawn:
			GEMS D -1
		Stop
		Pickup:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Budget Giver", 0, 10)
		Stop
	}
}

Actor BudgetDrop_5 : BudgetDrop_1 {
	inventory.pickupmessage "\ccBudget Pickup : \c[Y5]$25k\c-"
	States {
		Spawn:
			GEMS E -1
		Stop
		Pickup:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Budget Giver", 0, 25)
		Stop
	}
}

Actor BudgetSpawner_Low {
	+NOINTERACTION
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(84, "2")
			TNT1 A 1 A_SpawnItemEx("BudgetDrop_1", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
		2:
			TNT1 A 1 A_SpawnItemEx("BudgetDrop_2", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
	}
}

Actor BudgetSpawner_Medium {
	+NOINTERACTION
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(84, "2")
			TNT1 A 1 A_SpawnItemEx("BudgetDrop_3", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
		2:
			TNT1 A 1 A_SpawnItemEx("BudgetDrop_4", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
	}
}

Actor BudgetSpawner_High {
	+NOINTERACTION
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(84, "2")
			TNT1 A 1 A_SpawnItemEx("BudgetDrop_4", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
		2:
			TNT1 A 1 A_SpawnItemEx("BudgetDrop_5", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
	}
}

Actor BudgetDropper_Low {
	Height 1
	Radius 1
	+NOINTERACTION
	var int user_count;
	States {
		Spawn:
			TNT1 A 0 NoDelay A_SetUserVar("user_count", random(1, 5))
		SpawnLoop:
			TNT1 A 0 A_JumpIf(!user_count, "Done")
			TNT1 A 0 A_SpawnItemEx("BudgetSpawner_Low")
			TNT1 A 1 A_SetUserVar("user_count", user_count - 1)
		Loop
		Done:
			TNT1 A 0
		Stop
	}
}

Actor BudgetDropper_Medium {
	Height 1
	Radius 1
	+NOINTERACTION
	var int user_count;
	States {
		Spawn:
			TNT1 A 0 NoDelay A_SetUserVar("user_count", random(1, 5))
		SpawnLoop:
			TNT1 A 0 A_JumpIf(!user_count, "Done")
			TNT1 A 0 A_SpawnItemEx("BudgetSpawner_Medium")
			TNT1 A 1 A_SetUserVar("user_count", user_count - 1)
		Loop
		Done:
			TNT1 A 0
		Stop
	}
}

Actor BudgetDropper_High {
	Height 1
	Radius 1
	+NOINTERACTION
	var int user_count;
	States {
		Spawn:
			TNT1 A 0 NoDelay A_SetUserVar("user_count", random(2, 4))
		SpawnLoop:
			TNT1 A 0 A_JumpIf(!user_count, "Done")
			TNT1 A 0 A_SpawnItemEx("BudgetSpawner_High")
			TNT1 A 1 A_SetUserVar("user_count", user_count - 1)
		Loop
		Done:
			TNT1 A 0
		Stop
	}
}