// Update is called once per frame void Update() { spawnTimer += Time.deltaTime; despawnTimer += Time.deltaTime; if (despawnTimer > 0.15f) { despawnTimer = 0.0f; foreach (MatScript mat in mats) { if (Random.Range(0f, 1f) > 0.3f) { mats.Remove(mat); Destroy(mat); break; } } } if (spawnTimer > 0.5f) { spawnTimer = 0.0f; Levels.Level lev = LevelManager.Instance.CurrentLevel; if (!lev) { return; } if (lev != prevLev) { prevLev = lev; if (firstLevel) { firstLevel = false; } else { insanityPercent += insanityInc / 30.0f + insanityPercent / 30.0f; enemyInsanityInc += enemyInsanityInc / 30.0f + enemyInsanityInc / 30.0f; Camera.main.GetComponent <MusicController>().Next(); } } foreach (GameObject gm in lev.GetSprites()) { float insanityPercent = gm.CompareTag("Enemy") ? this.enemyInsanityInc : this.insanityPercent; if (Random.Range(0f, 1f) >= insanityPercent) { continue; } Material select; if (gm.CompareTag("Enemy")) { select = enemyMaterialSelection[Random.Range(0, enemyMaterialSelection.Length)]; } else { select = materialSelection[Random.Range(0, materialSelection.Length)]; } MatScript m = gm.AddComponent <MatScript>(); m.newMaterial = select; mats.Add(m); } } }