1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-26 16:12:54 +08:00

Merge pull request #12284 from bdach/fix-scores-initially-showing

Fix scores being initially visible incorrectly in gameplay screen
This commit is contained in:
Dean Herbert 2021-04-04 19:30:32 +09:00 committed by GitHub
commit f95b91e3b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 53 additions and 1 deletions

View File

@ -1,9 +1,13 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System.Linq;
using NUnit.Framework;
using osu.Framework.Allocation;
using osu.Framework.Testing;
using osu.Game.Tournament.Components;
using osu.Game.Tournament.Screens.Gameplay;
using osu.Game.Tournament.Screens.Gameplay.Components;
namespace osu.Game.Tournament.Tests.Screens
{
@ -18,5 +22,24 @@ namespace osu.Game.Tournament.Tests.Screens
Add(new GameplayScreen());
Add(chat);
}
[Test]
public void TestWarmup()
{
checkScoreVisibility(false);
toggleWarmup();
checkScoreVisibility(true);
toggleWarmup();
checkScoreVisibility(false);
}
private void checkScoreVisibility(bool visible)
=> AddUntilStep($"scores {(visible ? "shown" : "hidden")}",
() => this.ChildrenOfType<TeamScore>().All(score => score.Alpha == (visible ? 1 : 0)));
private void toggleWarmup()
=> AddStep("toggle warmup", () => this.ChildrenOfType<TourneyButton>().First().Click());
}
}

View File

@ -95,7 +95,11 @@ namespace osu.Game.Tournament.Screens.Gameplay.Components
Origin = Anchor.TopRight,
},
};
}
protected override void LoadComplete()
{
base.LoadComplete();
updateDisplay();
}

View File

@ -14,9 +14,21 @@ namespace osu.Game.Tournament.Screens.Gameplay.Components
{
private readonly TeamScore score;
private bool showScore;
public bool ShowScore
{
set => score.FadeTo(value ? 1 : 0, 200);
get => showScore;
set
{
if (showScore == value)
return;
showScore = value;
if (IsLoaded)
updateDisplay();
}
}
public TeamDisplay(TournamentTeam team, TeamColour colour, Bindable<int?> currentTeamScore, int pointsToWin)
@ -92,5 +104,18 @@ namespace osu.Game.Tournament.Screens.Gameplay.Components
}
};
}
protected override void LoadComplete()
{
base.LoadComplete();
updateDisplay();
FinishTransforms(true);
}
private void updateDisplay()
{
score.FadeTo(ShowScore ? 1 : 0, 200);
}
}
}