mirror of
https://github.com/ppy/osu.git
synced 2026-05-17 03:52:35 +08:00
Tidy up TestSceneFooterButtonMods tests
This commit is contained in:
@@ -20,14 +20,14 @@ namespace osu.Game.Tests.Visual.SongSelectV2
|
||||
{
|
||||
public partial class TestSceneFooterButtonMods : OsuTestScene
|
||||
{
|
||||
private readonly TestScreenFooterButtonMods footerButtonMods;
|
||||
private readonly FooterButtonMods footerButtonMods;
|
||||
|
||||
[Cached]
|
||||
private OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Aquamarine);
|
||||
|
||||
public TestSceneFooterButtonMods()
|
||||
{
|
||||
Add(footerButtonMods = new TestScreenFooterButtonMods(new TestModSelectOverlay())
|
||||
Add(footerButtonMods = new FooterButtonMods(new TestModSelectOverlay())
|
||||
{
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.CentreLeft,
|
||||
@@ -63,19 +63,19 @@ namespace osu.Game.Tests.Visual.SongSelectV2
|
||||
{
|
||||
var hiddenMod = new Mod[] { new OsuModHidden() };
|
||||
AddStep(@"Add Hidden", () => changeMods(hiddenMod));
|
||||
AddAssert(@"Check Hidden multiplier", () => assertModsMultiplier(hiddenMod));
|
||||
assertModsMultiplier(hiddenMod);
|
||||
|
||||
var hardRockMod = new Mod[] { new OsuModHardRock() };
|
||||
AddStep(@"Add HardRock", () => changeMods(hardRockMod));
|
||||
AddAssert(@"Check HardRock multiplier", () => assertModsMultiplier(hardRockMod));
|
||||
assertModsMultiplier(hardRockMod);
|
||||
|
||||
var doubleTimeMod = new Mod[] { new OsuModDoubleTime() };
|
||||
AddStep(@"Add DoubleTime", () => changeMods(doubleTimeMod));
|
||||
AddAssert(@"Check DoubleTime multiplier", () => assertModsMultiplier(doubleTimeMod));
|
||||
assertModsMultiplier(doubleTimeMod);
|
||||
|
||||
var multipleIncrementMods = new Mod[] { new OsuModDoubleTime(), new OsuModHidden(), new OsuModHardRock() };
|
||||
AddStep(@"Add multiple Mods", () => changeMods(multipleIncrementMods));
|
||||
AddAssert(@"Check multiple mod multiplier", () => assertModsMultiplier(multipleIncrementMods));
|
||||
assertModsMultiplier(multipleIncrementMods);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -83,15 +83,15 @@ namespace osu.Game.Tests.Visual.SongSelectV2
|
||||
{
|
||||
var easyMod = new Mod[] { new OsuModEasy() };
|
||||
AddStep(@"Add Easy", () => changeMods(easyMod));
|
||||
AddAssert(@"Check Easy multiplier", () => assertModsMultiplier(easyMod));
|
||||
assertModsMultiplier(easyMod);
|
||||
|
||||
var noFailMod = new Mod[] { new OsuModNoFail() };
|
||||
AddStep(@"Add NoFail", () => changeMods(noFailMod));
|
||||
AddAssert(@"Check NoFail multiplier", () => assertModsMultiplier(noFailMod));
|
||||
assertModsMultiplier(noFailMod);
|
||||
|
||||
var multipleDecrementMods = new Mod[] { new OsuModEasy(), new OsuModNoFail() };
|
||||
AddStep(@"Add Multiple Mods", () => changeMods(multipleDecrementMods));
|
||||
AddAssert(@"Check multiple mod multiplier", () => assertModsMultiplier(multipleDecrementMods));
|
||||
assertModsMultiplier(multipleDecrementMods);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -105,12 +105,12 @@ namespace osu.Game.Tests.Visual.SongSelectV2
|
||||
|
||||
private void changeMods(IReadOnlyList<Mod> mods) => footerButtonMods.Current.Value = mods;
|
||||
|
||||
private bool assertModsMultiplier(IEnumerable<Mod> mods)
|
||||
private void assertModsMultiplier(IEnumerable<Mod> mods)
|
||||
{
|
||||
double multiplier = mods.Aggregate(1.0, (current, mod) => current * mod.ScoreMultiplier);
|
||||
string expectedValue = ModUtils.FormatScoreMultiplier(multiplier).ToString();
|
||||
|
||||
return expectedValue == footerButtonMods.MultiplierText.Current.Value;
|
||||
AddAssert($"Displayed multiplier is {expectedValue}", () => footerButtonMods.ChildrenOfType<OsuSpriteText>().First(t => t.Text.ToString().Contains('x')).Text.ToString(), () => Is.EqualTo(expectedValue));
|
||||
}
|
||||
|
||||
private partial class TestModSelectOverlay : UserModSelectOverlay
|
||||
@@ -121,15 +121,5 @@ namespace osu.Game.Tests.Visual.SongSelectV2
|
||||
ShowPresets = true;
|
||||
}
|
||||
}
|
||||
|
||||
private partial class TestScreenFooterButtonMods : FooterButtonMods
|
||||
{
|
||||
public new OsuSpriteText MultiplierText => base.MultiplierText;
|
||||
|
||||
public TestScreenFooterButtonMods(ModSelectOverlay overlay)
|
||||
: base(overlay)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace osu.Game.Screens.SelectV2
|
||||
private ModDisplay modDisplay = null!;
|
||||
private OsuSpriteText modCountText = null!;
|
||||
|
||||
protected OsuSpriteText MultiplierText { get; private set; } = null!;
|
||||
private OsuSpriteText multiplierText { get; set; } = null!;
|
||||
|
||||
[Resolved]
|
||||
private OsuColour colours { get; set; } = null!;
|
||||
@@ -104,7 +104,7 @@ namespace osu.Game.Screens.SelectV2
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Width = 1f - mod_display_portion,
|
||||
Masking = true,
|
||||
Child = MultiplierText = new OsuSpriteText
|
||||
Child = multiplierText = new OsuSpriteText
|
||||
{
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
@@ -221,14 +221,14 @@ namespace osu.Game.Screens.SelectV2
|
||||
}
|
||||
|
||||
double multiplier = Current.Value?.Aggregate(1.0, (current, mod) => current * mod.ScoreMultiplier) ?? 1;
|
||||
MultiplierText.Text = ModUtils.FormatScoreMultiplier(multiplier);
|
||||
multiplierText.Text = ModUtils.FormatScoreMultiplier(multiplier);
|
||||
|
||||
if (multiplier > 1)
|
||||
MultiplierText.FadeColour(colours.Red1, duration, easing);
|
||||
multiplierText.FadeColour(colours.Red1, duration, easing);
|
||||
else if (multiplier < 1)
|
||||
MultiplierText.FadeColour(colours.Lime1, duration, easing);
|
||||
multiplierText.FadeColour(colours.Lime1, duration, easing);
|
||||
else
|
||||
MultiplierText.FadeColour(Color4.White, duration, easing);
|
||||
multiplierText.FadeColour(Color4.White, duration, easing);
|
||||
}
|
||||
|
||||
private partial class ModCountText : OsuSpriteText, IHasCustomTooltip<IReadOnlyList<Mod>>
|
||||
|
||||
Reference in New Issue
Block a user