public void SpawnWeapon() { List <WeaponSpawner> availableSpawners = new List <WeaponSpawner>(); foreach (WeaponSpawner spwnr in spawners) { if (spwnr.spawned == 0) { if (spwnr.lastTimeSpawned) { spwnr.lastTimeSpawned = false; continue; } availableSpawners.Add(spwnr); } } WeaponSpawner spawner = availableSpawners[RollRandom.RollBetween(0, availableSpawners.Count)]; int[] weights = new int[guns.Length]; foreach (Gun gun in guns) { weights.Append(gun.chance); } Gun g = GetRandomWeightedIndex(guns); spawner.SpawnGun(g.gun); spawning = false; }