private void Awake() { Instance = this; _highestScore = PlayerPrefs.GetInt(HighestScorePrefKey, 0); OnLevelCompletedEvent.AddListener(OnLevelCompleted); OnLevelResultEvent.AddListener(OnLevelResult); }
private void OnDestroy() { OnLevelCompletedEvent.RemoveAllListeners(); OnOpenLevelsPopUp.RemoveAllListeners(); OnPlayLevelButtonEvent.RemoveAllListeners(); OnInitializeLevelEvent.RemoveAllListeners(); OnLevelResultEvent.RemoveAllListeners(); OnReturnMainMenu.RemoveAllListeners(); OnGameHudUpdateEvent.RemoveAllListeners(); }
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); }
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); } }