// 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);
     }
 }