mirror of https://github.com/ppy/osu
Don't flash screen red on fail if the user has disabled red tinting
This commit is contained in:
parent
43c2e9bf3e
commit
762949f49f
|
@ -20,14 +20,15 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||
/// </summary>
|
||||
public abstract class TestSceneAllRulesetPlayers : RateAdjustedBeatmapTestScene
|
||||
{
|
||||
protected Player Player;
|
||||
protected Player Player { get; private set; }
|
||||
|
||||
protected OsuConfigManager Config { get; private set; }
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(RulesetStore rulesets)
|
||||
{
|
||||
OsuConfigManager manager;
|
||||
Dependencies.Cache(manager = new OsuConfigManager(LocalStorage));
|
||||
manager.GetBindable<double>(OsuSetting.DimLevel).Value = 1.0;
|
||||
Dependencies.Cache(Config = new OsuConfigManager(LocalStorage));
|
||||
Config.GetBindable<double>(OsuSetting.DimLevel).Value = 1.0;
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System;
|
||||
using NUnit.Framework;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Rulesets;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Screens.Play;
|
||||
|
@ -17,6 +19,14 @@ protected override Player CreatePlayer(Ruleset ruleset)
|
|||
return new FailPlayer();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestOsuWithoutRedTint()
|
||||
{
|
||||
AddStep("Disable red tint", () => Config.SetValue(OsuSetting.FadePlayfieldWhenHealthLow, false));
|
||||
TestOsu();
|
||||
AddStep("Enable red tint", () => Config.SetValue(OsuSetting.FadePlayfieldWhenHealthLow, true));
|
||||
}
|
||||
|
||||
protected override void AddCheckSteps()
|
||||
{
|
||||
AddUntilStep("wait for fail", () => Player.HasFailed);
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
using osu.Framework.Utils;
|
||||
using osu.Game.Audio.Effects;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Rulesets.Objects.Drawables;
|
||||
using osuTK;
|
||||
using osuTK.Graphics;
|
||||
|
@ -35,7 +36,7 @@ public class FailAnimation : Container
|
|||
|
||||
private Container filters;
|
||||
|
||||
private Box failFlash;
|
||||
private Box redFlashLayer;
|
||||
|
||||
private Track track;
|
||||
|
||||
|
@ -46,6 +47,9 @@ public class FailAnimation : Container
|
|||
|
||||
private Sample failSample;
|
||||
|
||||
[Resolved]
|
||||
private OsuConfigManager config { get; set; }
|
||||
|
||||
protected override Container<Drawable> Content { get; } = new Container
|
||||
{
|
||||
Anchor = Anchor.Centre,
|
||||
|
@ -77,7 +81,7 @@ private void load(AudioManager audio, IBindable<WorkingBeatmap> beatmap)
|
|||
},
|
||||
},
|
||||
Content,
|
||||
failFlash = new Box
|
||||
redFlashLayer = new Box
|
||||
{
|
||||
Colour = Color4.Red,
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
|
@ -114,7 +118,8 @@ public void Start()
|
|||
applyToPlayfield(drawableRuleset.Playfield);
|
||||
drawableRuleset.Playfield.HitObjectContainer.FadeOut(duration / 2);
|
||||
|
||||
failFlash.FadeOutFromOne(1000);
|
||||
if (config.Get<bool>(OsuSetting.FadePlayfieldWhenHealthLow))
|
||||
redFlashLayer.FadeOutFromOne(1000);
|
||||
|
||||
Content.Masking = true;
|
||||
|
||||
|
|
Loading…
Reference in New Issue