// Selects an essence color private GameObject selectColor(EssenceSpawnPoint s) { //Selecting a color int color = Random.Range(1, 10); if (color <= s.redPercent) { return(redEssence); } else if (color <= s.bluePercent) { return(blueEssence); } else if (color <= s.greenPercent) { return(greenEssence); } else { return(yellowEssence); } }
// Clears n from taken list of essence spawns and spawns new essence at non-n spawn public void NotifyCollectedEssence(int n) { lock (_lockObj) { IList <EssenceSpawnPoint> tempEssenceSpawnPoints = new List <EssenceSpawnPoint>(_essenceSpawnPoints); for (int i = 0; i < _takenEssenceSpawns.Count; i++) { for (int j = 0; j < tempEssenceSpawnPoints.Count; j++) { if (tempEssenceSpawnPoints[j].number == _takenEssenceSpawns[i]) { tempEssenceSpawnPoints.RemoveAt(j); break; } } } EssenceSpawnPoint selectedEssenceSpawn = tempEssenceSpawnPoints[Random.Range(0, tempEssenceSpawnPoints.Count)]; GameObject newEssence = Instantiate(selectColor(selectedEssenceSpawn), selectedEssenceSpawn.position, Quaternion.identity) as GameObject; newEssence.GetComponent <Essence.Essence>().SetSpawnNumber(selectedEssenceSpawn.number); _takenEssenceSpawns.Add(selectedEssenceSpawn.number); _takenEssenceSpawns.Remove(n); } }