KitSpawner.cs
using Sandbox;
using System.Threading.Tasks;
public sealed class KitSpawner : Component
{
[Property] GameObject KitPrefab;
[Property] float SpawnCooldown;
GameObject currentKit;
int _id = 0;
TimeUntil NextSpawn;
protected override void OnStart()
{
SpawnKit();
}
protected override void OnFixedUpdate()
{
// Solange currentKit Valid ist bleibt der NextSpawn auf Cooldown
if (currentKit.IsValid() ) NextSpawn = SpawnCooldown;
// GhostKit?
// Wenn NextSpawn abgelaufen ist und es kein gültiges Kit gibt, spawne ein neues
if ( NextSpawn && !currentKit.IsValid )
{
SpawnKit();
}
}
void SpawnKit()
{
// Particle Effekt, Sound?
currentKit = KitPrefab.Clone( WorldPosition + Vector3.Up * 500 );
currentKit.GetComponent<TemporaryEffect>().Enabled = false;
}
}