1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-27 19:50:18 +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
Unverified
3 changed files with 53 additions and 1 deletions
@@ -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());
}
}
@@ -95,7 +95,11 @@ namespace osu.Game.Tournament.Screens.Gameplay.Components
Origin = Anchor.TopRight,
},
};
}
protected override void LoadComplete()
{
base.LoadComplete();
updateDisplay();
}
@@ -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);
}
}
}