private void OnStageCompleted(object sender, OnStageCompleted onStageCompleted) { int stageToLoad = onStageCompleted.Stage + 1; if (this.isFirstPlay && !this.isSpeedRunMode) { this.isFirstPlay = false; int lastPlayerStage = Player.GetLastPlayedStage(); if (lastPlayerStage != 0) { stageToLoad = lastPlayerStage; } } if (this.isSpeedRunMode && stageToLoad >= 25) { this.isSpeedRunMode = false; this.speedRunStopWatch.Stop(); TimeSpan timeSpan = this.speedRunStopWatch.Elapsed; this.speedRunStopWatch = null; Player.SetLastSpeedRunTime(timeSpan); TimeSpan bestSpeedRuntimeSpan = Player.GetBestSpeedRunTime(); if (timeSpan < bestSpeedRuntimeSpan) { Player.SetBestSpeedRunTime(timeSpan); } EventManager.Dispatch(new OnSpeedRunEnd(timeSpan)); stageToLoad = -1; } IEnumerator routine = this.LoadNewStage(stageToLoad, false); this.StartCoroutine(routine); }
private void OnStageCompleted(object sender, OnStageCompleted eventArgs) { int stage = eventArgs.Stage; if (stage < Player.GetLastStage()) { return; } foreach (IAnalytics analytics in this.analytics) { analytics.OnStageCompleted(stage); } }
public void Evalute(Goal lastCompletedGoal) { var goalsCompleted = true; for (int goal = 0; goal < Goals.Count; goal++) { if (Goals[goal].Completed) { continue; } goalsCompleted = false; break; } completed = goalsCompleted; if (!completed) { return; } active = false; if (OnStageCompleted == null) { return; } OnStageCompleted(this); Delegate[] completedDelegates = OnStageCompleted.GetInvocationList(); for (int i = 0; i < completedDelegates.Length; i++) { OnStageCompleted -= completedDelegates[i] as Action <StageS>; } if (OnStageActivated == null) { return; } Delegate[] activatedDelegates = OnStageActivated.GetInvocationList(); for (int i = 0; i < activatedDelegates.Length; i++) { OnStageActivated -= activatedDelegates[i] as Action <StageS>; } }
private void OnStageCompleted(object sender, OnStageCompleted onStageCompleted) { this.ShowFade(); }