1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 18:07:23 +08:00

Fix beatmap info length tooltip not showing actual drain length

This commit is contained in:
Joseph Madamba 2023-06-17 15:00:32 -07:00
parent fdebf93ae4
commit 9ae864c219
No known key found for this signature in database
GPG Key ID: 8B746C7BDDF0BD76
4 changed files with 20 additions and 4 deletions

View File

@ -86,6 +86,7 @@ namespace osu.Game.Tests.Visual.Online
StarRating = 9.99,
DifficultyName = @"TEST",
Length = 456000,
HitLength = 400000,
RulesetID = 3,
CircleSize = 1,
DrainRate = 2.3f,

View File

@ -59,5 +59,10 @@ namespace osu.Game.Beatmaps
int PassCount { get; }
APIFailTimes? FailTimes { get; }
/// <summary>
/// The playable length in milliseconds of this beatmap.
/// </summary>
double HitLength { get; }
}
}

View File

@ -63,6 +63,16 @@ namespace osu.Game.Online.API.Requests.Responses
set => Length = TimeSpan.FromSeconds(value).TotalMilliseconds;
}
[JsonIgnore]
public double HitLength { get; set; }
[JsonProperty(@"hit_length")]
private double hitLengthInSeconds
{
get => TimeSpan.FromMilliseconds(HitLength).TotalSeconds;
set => HitLength = TimeSpan.FromSeconds(value).TotalMilliseconds;
}
[JsonProperty(@"convert")]
public bool Convert { get; set; }

View File

@ -68,13 +68,13 @@ namespace osu.Game.Overlays.BeatmapSet
}
else
{
length.TooltipText = BeatmapsetsStrings.ShowStatsTotalLength(TimeSpan.FromMilliseconds(beatmapInfo.Length).ToFormattedDuration());
length.Value = TimeSpan.FromMilliseconds(beatmapInfo.Length).ToFormattedDuration();
var onlineInfo = beatmapInfo as IBeatmapOnlineInfo;
if (beatmapInfo is not IBeatmapOnlineInfo onlineInfo) return;
circleCount.Value = (onlineInfo?.CircleCount ?? 0).ToLocalisableString(@"N0");
sliderCount.Value = (onlineInfo?.SliderCount ?? 0).ToLocalisableString(@"N0");
circleCount.Value = onlineInfo.CircleCount.ToLocalisableString(@"N0");
sliderCount.Value = onlineInfo.SliderCount.ToLocalisableString(@"N0");
length.TooltipText = BeatmapsetsStrings.ShowStatsTotalLength(TimeSpan.FromMilliseconds(onlineInfo.HitLength).ToFormattedDuration());
}
}