private void OnBallDeath(Ball obj)
    {
        if (BallsManager.Instance.Balls.Count <= 0)
        {
            this.Lives--;

            if (this.Lives < 1)
            {
                //show gameover screen
                gameOverScreen.SetActive(true);
                music.Stop();
                gameOverMusic.Play();
            }
            else
            {
                OnLifeLost?.Invoke(this.Lives);

                //reset balls
                //stop game
                //reload level

                BallsManager.Instance.ResetBalls();
                IsGameStarted = false;
                BricksManager.Instance.LoadLevel(BricksManager.Instance.CurrentLevel);
            }
        }
    }
Example #2
0
    private void Start()
    {
        NotUpdatableGUIGamePlayView();

        _achievementUnlockedGamePlay.text = "";

        OnLifeLostDel += DeleteGUIGamePlayView;
    }
Example #3
0
 public void RestartGame()
 {
     // Invoke OnLifeLost to pass remaining lives
     OnLifeLost?.Invoke(this.Lives);
     // Reset balls
     BallsManager.Instance.ResetBalls();
     // Stop the game
     IsGameStarted = false;
 }
Example #4
0
    public void RemoveLife()
    {
        lives -= 1;
        OnLifeLost?.Invoke(lives);

        if (lives == 0)
        {
            OnLevelPause?.Invoke(false);
            OnLevelLose?.Invoke();
        }
    }
Example #5
0
    private void OnBallDeath(BallHandler ball)
    {
        if (BallsManager.Instance.Balls.Count <= 0)
        {
            this.Lives--;

            if (this.Lives < 1)
            {
                gameOverScreen.SetActive(true);
            }
            else
            {
                OnLifeLost?.Invoke(this.Lives);
                BallsManager.Instance.ResetBalls();
                isGameStarted = false;
                BricksManager.Instance.LoadLevel(BricksManager.Instance.CurrentLevel);
            }
        }
    }
Example #6
0
    public void DecreaseLifes(Unit sender)
    {
        if (CurrentLifes > sender.DamageToLifes)
        {
            CurrentLifes -= sender.DamageToLifes;

            if (OnLifeLost != null)
            {
                OnLifeLost.Invoke(sender.DamageToLifes);
            }
        }
        else
        {
            if (OnLifeLost != null)
            {
                OnLifeLost.Invoke(CurrentLifes);
            }

            GameOver();
        }

        sender.Disable();
    }
 public static void LifeLost()
 {
     OnLifeLost?.Invoke();
 }
Example #8
0
 private void Start()
 {
     // broadcast initial values for lives and score for hud
     OnLifeLost?.Invoke(lives);
     OnScoreChange?.Invoke(score);
 }