1
0
mirror of https://github.com/ppy/osu.git synced 2026-06-08 15:44:25 +08:00

Merge pull request #33777 from peppy/fix-ssv2-menu-flakes

Fix flaky test failures at main menu due to early `ScalingContainer` access
This commit is contained in:
Dan Balasescu
2025-06-19 21:37:35 +09:00
committed by GitHub
Unverified
+38 -33
View File
@@ -519,16 +519,45 @@ namespace osu.Game.Screens.Menu
private void updateSongSelectV2HoldState()
{
if (Buttons.State == ButtonSystemState.Play &&
inputManager.CurrentState.Mouse.IsPressed(MouseButton.Left) &&
inputManager.HoveredDrawables.Any(h => h is OsuLogo || (h is MainMenuButton b && b.TriggerKeys.Contains(Key.P))))
holdTime += Time.Elapsed;
else
bool isValidHoverState = Buttons.State == ButtonSystemState.Play &&
inputManager.CurrentState.Mouse.IsPressed(MouseButton.Left) &&
inputManager.HoveredDrawables.Any(h => h is OsuLogo || (h is MainMenuButton b && b.TriggerKeys.Contains(Key.P)));
if (isValidHoverState)
{
var transformTarget = Game.ChildrenOfType<ScalingContainer>().First();
transformTarget.ScaleTo(1, 200, Easing.OutQuint)
.RotateTo(0, 200, Easing.OutQuint)
.FadeColour(OsuColour.Gray(1f), 200, Easing.OutQuint);
holdTime += Time.Elapsed;
if (holdTime >= required_hold_time && !ssv2Expanded)
{
var transformTarget = Game.ChildrenOfType<ScalingContainer>().First();
transformTarget.Anchor = Anchor.Centre;
transformTarget.Origin = Anchor.Centre;
transformTarget.ScaleTo(1.2f, 5000, Easing.OutPow10)
.RotateTo(2, 5000, Easing.OutPow10)
.FadeColour(Color4.BlueViolet, 10000, Easing.OutPow10);
ssv2Duck = musicController.Duck(new DuckParameters
{
DuckDuration = 2000,
DuckVolumeTo = 0.8f,
DuckCutoffTo = 500,
DuckEasing = Easing.OutQuint,
RestoreDuration = 200,
RestoreEasing = Easing.OutQuint
});
ssv2Expanded = true;
}
}
else if (holdTime > 0)
{
var transformTarget = Game.ChildrenOfType<ScalingContainer>().FirstOrDefault();
transformTarget.ScaleTo(1, 500, Easing.OutQuint)
.RotateTo(0, 500, Easing.OutQuint)
.FadeColour(OsuColour.Gray(1f), 500, Easing.OutQuint);
ssv2Duck?.Dispose();
ssv2Duck = null;
@@ -536,30 +565,6 @@ namespace osu.Game.Screens.Menu
ssv2Expanded = false;
holdTime = 0;
}
if (holdTime >= required_hold_time && !ssv2Expanded)
{
var transformTarget = Game.ChildrenOfType<ScalingContainer>().First();
transformTarget.Anchor = Anchor.Centre;
transformTarget.Origin = Anchor.Centre;
transformTarget.ScaleTo(1.2f, 5000, Easing.OutPow10)
.RotateTo(2, 5000, Easing.OutPow10)
.FadeColour(Color4.BlueViolet, 10000, Easing.OutPow10);
ssv2Duck = musicController.Duck(new DuckParameters
{
DuckDuration = 2000,
DuckVolumeTo = 0.8f,
DuckCutoffTo = 500,
DuckEasing = Easing.OutQuint,
RestoreDuration = 200,
RestoreEasing = Easing.OutQuint
});
ssv2Expanded = true;
}
}
#endregion