예제 #1
0
    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);
    }
예제 #2
0
    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);
        }
    }
예제 #3
0
        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>;
            }
        }
예제 #4
0
 private void OnStageCompleted(object sender, OnStageCompleted onStageCompleted)
 {
     this.ShowFade();
 }