Пример #1
0
        public override bool OnExiting(IScreen next)
        {
            if (onCompletionEvent != null)
            {
                // Proceed to result screen if beatmap already finished playing
                onCompletionEvent.RunTask();
                return(true);
            }

            if ((!AllowPause || HasFailed || !ValidForResume || PausableGameplayContainer?.IsPaused.Value != false || RulesetContainer?.HasReplayLoaded.Value != false) && (!PausableGameplayContainer?.IsResuming ?? true))
            {
                // In the case of replays, we may have changed the playback rate.
                applyRateFromMods();
                fadeOut();
                return(base.OnExiting(next));
            }

            if (LoadedBeatmapSuccessfully)
            {
                PausableGameplayContainer?.Pause();
            }

            return(true);
        }
Пример #2
0
        public override bool OnExiting(IScreen next)
        {
            if (onCompletionEvent != null)
            {
                // Proceed to result screen if beatmap already finished playing
                onCompletionEvent.RunTask();
                return(true);
            }

            if ((!AllowPause || HasFailed || !ValidForResume || PausableGameplayContainer?.IsPaused.Value != false || RulesetContainer?.HasReplayLoaded.Value != false) && (!PausableGameplayContainer?.IsResuming ?? true))
            {
                gameplayClockContainer.ResetLocalAdjustments();

                fadeOut();
                return(base.OnExiting(next));
            }

            if (LoadedBeatmapSuccessfully)
            {
                PausableGameplayContainer?.Pause();
            }

            return(true);
        }