Пример #1
0
    private void Awake()
    {
        Instance      = this;
        _highestScore = PlayerPrefs.GetInt(HighestScorePrefKey, 0);

        OnLevelCompletedEvent.AddListener(OnLevelCompleted);
        OnLevelResultEvent.AddListener(OnLevelResult);
    }
Пример #2
0
 private void OnDestroy()
 {
     OnLevelCompletedEvent.RemoveAllListeners();
     OnOpenLevelsPopUp.RemoveAllListeners();
     OnPlayLevelButtonEvent.RemoveAllListeners();
     OnInitializeLevelEvent.RemoveAllListeners();
     OnLevelResultEvent.RemoveAllListeners();
     OnReturnMainMenu.RemoveAllListeners();
     OnGameHudUpdateEvent.RemoveAllListeners();
 }
Пример #3
0
    private void OnLevelResult(int score, int levelNo)
    {
        if (score <= _highestScore)
        {
            OnLevelCompletedEvent.Invoke(CompleteType.None);
            return;
        }

        _highestScore = score;

        PlayerPrefs.SetInt(HighestScorePrefKey, _highestScore);
        OnLevelCompletedEvent.Invoke(CompleteType.NewScore);
    }
Пример #4
0
        public void Action()
        {
            foreach (IBall ball in ballManager.ToArray())
            {
                int speed = ball.Speed;
                for (int i = 0; i < speed; ++i)
                {
                    if (!ballStateMachine.Action(ball))
                    {
                        break;
                    }

                    SavePosition(ball);
                }
            }

            if (levelManager.VerifyAllBricksAreHit() || ForceChangeLevel)
            {
                OnLevelCompletedEvent?.Invoke(this, null);
            }
        }