Beispiel #1
0
 // 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);
             }
         }
     }
 }