Fix countdown timer not refreshing on new countdown

This commit is contained in:
Dan Balasescu 2022-03-29 11:24:26 +09:00
parent 9ceceeca3d
commit 375a752e24

View File

@ -36,17 +36,18 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
} }
private MultiplayerCountdown countdown; private MultiplayerCountdown countdown;
private DateTimeOffset countdownReceivedTime; private DateTimeOffset countdownChangeTime;
private ScheduledDelegate countdownUpdateDelegate; private ScheduledDelegate countdownUpdateDelegate;
private void onRoomUpdated() => Scheduler.AddOnce(() => private void onRoomUpdated() => Scheduler.AddOnce(() =>
{ {
if (countdown == null && room?.Countdown != null) if (countdown != room?.Countdown)
countdownReceivedTime = DateTimeOffset.Now; {
countdown = room?.Countdown;
countdownChangeTime = DateTimeOffset.Now;
}
countdown = room?.Countdown; if (countdown != null)
if (room?.Countdown != null)
countdownUpdateDelegate ??= Scheduler.AddDelayed(updateButtonText, 100, true); countdownUpdateDelegate ??= Scheduler.AddDelayed(updateButtonText, 100, true);
else else
{ {
@ -74,7 +75,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
if (countdown != null) if (countdown != null)
{ {
TimeSpan timeElapsed = DateTimeOffset.Now - countdownReceivedTime; TimeSpan timeElapsed = DateTimeOffset.Now - countdownChangeTime;
TimeSpan countdownRemaining; TimeSpan countdownRemaining;
if (timeElapsed > countdown.TimeRemaining) if (timeElapsed > countdown.TimeRemaining)