Actor CreditItem : CustomInventory {
	inventory.pickupsound "items/credit"
	inventory.pickupmessage "\ccCredit Pickup :"
	inventory.maxamount 1
	+NEVERRESPAWN
}

Actor Credit_01 : CreditItem {
	inventory.pickupmessage "\ccCredit Pickup : \c[Y5]$1\c-"
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "Flip")
			CIT1 A -1
		Stop
		Flip:
			CIT1 B -1
		Stop
		Pickup:
			TNT1 A 0 A_GiveInventory("Credit", 1)
		Stop
	}
}

Actor Credit_02 : CreditItem {
	inventory.pickupmessage "\ccCredit Pickup : \c[Y5]$5\c-"
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "Flip")
			CIT2 A -1
		Stop
		Flip:
			CIT2 B -1
		Stop
		Pickup:
			TNT1 A 0 A_GiveInventory("Credit", 5)
		Stop
	}
}

Actor Credit_03 : CreditItem {
	inventory.pickupmessage "\ccCredit Pickup : \c[Y5]$15\c-"
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "Flip")
			CIT3 A -1
		Stop
		Flip:
			CIT3 B -1
		Stop
		Pickup:
			TNT1 A 0 A_GiveInventory("Credit", 15)
		Stop
	}
}

Actor Credit_04 : CreditItem {
	inventory.pickupmessage "\ccCredit Pickup : \c[Y5]$50\c-"
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "Flip")
			CIT4 A -1
		Stop
		Flip:
			CIT4 B -1
		Stop
		Pickup:
			TNT1 A 0 A_GiveInventory("Credit", 50)
		Stop
	}
}

Actor Credit_05 : CreditItem {
	inventory.pickupmessage "\ccCredit Pickup : \c[Y5]$75\c-"
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "Flip")
			CIT5 A -1
		Stop
		Flip:
			CIT5 B -1
		Stop
		Pickup:
			TNT1 A 0 A_GiveInventory("Credit", 75)
		Stop
	}
}

Actor Credit_06 : CreditItem {
	inventory.pickupmessage "\ccCredit Pickup : \c[Y5]$125\c-"
	States {
		Spawn:
			CIT6 A 4
			CIT6 B 4 Bright
		Loop
		Pickup:
			TNT1 A 0 A_GiveInventory("Credit", 100)
		Stop
	}
}

Actor Credit_07 : CreditItem {
	inventory.pickupmessage "\ccCredit Pickup : \c[Y5]$25\c-"
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "Flip")
			CIT7 A -1
		Stop
		Flip:
			CIT7 B -1
		Stop
		Pickup:
			TNT1 A 0 A_GiveInventory("Credit", 125)
		Stop
	}
}

Actor Credit_08 : CreditItem {
	inventory.pickupmessage "\ccCredit Pickup : \c[Y5]$200\c-"
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "Flip")
			CIT8 A -1
		Stop
		Flip:
			CIT8 B -1
		Stop
		Pickup:
			TNT1 A 0 A_GiveInventory("Credit", 200)
		Stop
	}
}

Actor Credit_09 : CreditItem {
	inventory.pickupmessage "\ccCredit Pickup : \c[Y5]$500\c-"
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "Flip")
			CIT9 A -1
		Stop
		Flip:
			CIT9 B -1
		Stop
		Pickup:
			TNT1 A 0 A_GiveInventory("Credit", 500)
		Stop
	}
}

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

Actor SmallCreditSpawner_Elite {
	Height 1
	Radius 1
	+NOINTERACTION
	var int user_count;
	States {
		Spawn:
			TNT1 A 0 NoDelay A_SetUserVar("user_count", random(2, 12))
		SpawnLoop:
			TNT1 A 0 A_JumpIf(!user_count, "Done")
			TNT1 A 0 A_SpawnItemEx("Credit_01", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
			TNT1 A 0 A_SetUserVar("user_count", user_count - 1)
		Loop
		Done:
			TNT1 A 0 A_SpawnItemEx("Credit_04", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
			TNT1 A 0 A_Jump(64, "ReallyDone")
			TNT1 A 0 A_SpawnItemEx("Credit_04", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		ReallyDone:
			TNT1 A 0
		Stop
	}
}

Actor SmallCreditDropper : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SpawnItem("SmallCreditSpawner")
		Stop
	}
}

Actor SmallCreditDropper_Elite : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SpawnItem("SmallCreditSpawner_Elite")
		Stop
	}
}

Actor CreditDropper_Medium {
	Height 1
	Radius 1
	+NOINTERACTION
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "5Coins")
			TNT1 A 0 A_SpawnItemEx("Credit_01", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
		5Coins:
			TNT1 A 0 A_SpawnItemEx("Credit_02", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
	}
}

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

Actor MediumCreditSpawner_Elite {
	Height 1
	Radius 1
	+NOINTERACTION
	var int user_count;
	States {
		Spawn:
			TNT1 A 0 NoDelay A_SetUserVar("user_count", random(2, 12))
		SpawnLoop:
			TNT1 A 0 A_JumpIf(!user_count, "Done")
			TNT1 A 0 A_SpawnItemEx("CreditDropper_Medium")
			TNT1 A 0 A_SetUserVar("user_count", user_count - 1)
		Loop
		Done:
			TNT1 A 0 A_SpawnItemEx("Credit_05", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
			TNT1 A 0 A_SpawnItemEx("Credit_06", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
			TNT1 A 0 A_Jump(64, "ReallyDone")
			TNT1 A 0 A_SpawnItemEx("Credit_05", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
			TNT1 A 0 A_SpawnItemEx("Credit_06", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		ReallyDone:
			TNT1 A 0
		Stop
	}
}

Actor MediumCreditDropper : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SpawnItem("MediumCreditSpawner")
		Stop
	}
}

Actor MediumCreditDropper_Elite : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SpawnItem("MediumCreditSpawner_Elite")
		Stop
	}
}

Actor CreditDropper_Large {
	Height 1
	Radius 1
	+NOINTERACTION
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(128, "5Coins", "15Coins")
			TNT1 A 0 A_SpawnItemEx("Credit_01", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
		5Coins:
			TNT1 A 0 A_SpawnItemEx("Credit_02", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
		15Coins:
			TNT1 A 0 A_SpawnItemEx("Credit_03", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		Stop
	}
}

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

Actor LargeCreditSpawner_Elite {
	Height 1
	Radius 1
	+NOINTERACTION
	var int user_count;
	States {
		Spawn:
			TNT1 A 0 NoDelay A_SetUserVar("user_count", random(12, 24))
		SpawnLoop:
			TNT1 A 0 A_JumpIf(!user_count, "Done")
			TNT1 A 0 A_SpawnItemEx("CreditDropper_Large")
			TNT1 A 0 A_SetUserVar("user_count", user_count - 1)
		Loop
		Done:
			TNT1 A 0 A_SpawnItemEx("Credit_06", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
			TNT1 A 0 A_SpawnItemEx("Credit_07", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
			TNT1 A 0 A_Jump(32, "ReallyDone")
			TNT1 A 0 A_SpawnItemEx("Credit_06", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
			TNT1 A 0 A_SpawnItemEx("Credit_07", 0, 0, 0, random(-4, 4), random(-4, 4), random(4, 12))
		ReallyDone:
			TNT1 A 0
		Stop
	}
}

Actor LargeCreditDropper : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SpawnItem("LargeCreditSpawner")
		Stop
	}
}

Actor LargeCreditDropper_Elite : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SpawnItem("LargeCreditSpawner_Elite")
		Stop
	}
}