// Update is called once per frame void Update() { if (clearMoles) { clearMoles = false; foreach (Mole m in moles) { m.Reset(); } activeMoles.Clear(); } else if (isPlaying) { float dt = Time.deltaTime; timePassed += dt; int newLevel = (int)Mathf.Floor(timePassed / 10) + 1; if (!isDemoMode && newLevel != level) { // Debug.Log("New Level " + newLevel); level = newLevel; } // level 20->60 int promille = Mathf.Min(60, 20 + (level - 1) * 8); if (RandomHelper.PromilleCheck(25)) { // Debug.Log("TRY SHOW MOLE; active=" + activeMoles.Count); if (activeMoles.Count < 3) { ShowMole(); } } Mole m = null; for (int i = activeMoles.Count - 1; i >= 0; i--) { m = activeMoles[i]; if (m != null && m.IsEnded()) { if (!m.WasHit && !isDemoMode) { onMoleMiss?.Invoke(); } // Debug.Log("ENDED " + m.name); //m.gameObject.SetActive(false); m.Reset(); activeMoles.RemoveAt(i); } } } }