Add filter effect to fail sequence

This commit is contained in:
Jamie Taylor 2021-10-07 14:15:47 +09:00
parent 5c48340520
commit cc209f0f2d
No known key found for this signature in database
GPG Key ID: 2ACFA8B6370B8C8C
1 changed files with 6 additions and 0 deletions

View File

@ -16,6 +16,7 @@
using osu.Framework.Logging;
using osu.Framework.Screens;
using osu.Framework.Threading;
using osu.Game.Audio.Effects;
using osu.Game.Beatmaps;
using osu.Game.Configuration;
using osu.Game.Graphics.Containers;
@ -62,6 +63,8 @@ public abstract class Player : ScreenWithBeatmapBackground, ISamplePlaybackDisab
private readonly Bindable<bool> samplePlaybackDisabled = new Bindable<bool>();
private Filter lpFilter;
/// <summary>
/// Whether gameplay should pause when the game window focus is lost.
/// </summary>
@ -227,6 +230,7 @@ private void load(AudioManager audio, OsuConfigManager config, OsuGameBase game)
AddInternal(GameplayBeatmap = new GameplayBeatmap(playableBeatmap));
AddInternal(screenSuspension = new ScreenSuspensionHandler(GameplayClockContainer));
AddInternal(lpFilter = new Filter(audio.TrackMixer));
dependencies.CacheAs(GameplayBeatmap);
@ -788,6 +792,7 @@ private bool onFail()
if (PauseOverlay.State.Value == Visibility.Visible)
PauseOverlay.Hide();
lpFilter.CutoffTo(300, 2500, Easing.OutCubic);
failAnimation.Start();
if (Mods.Value.OfType<IApplicableFailOverride>().Any(m => m.RestartOnFail))
@ -800,6 +805,7 @@ private bool onFail()
private void onFailComplete()
{
GameplayClockContainer.Stop();
lpFilter.CutoffTo(lpFilter.MaxCutoff);
FailOverlay.Retries = RestartCount;
FailOverlay.Show();