1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 07:42:57 +08:00

Merge pull request #23954 from Joehuu/fix-drain-length-tooltip

Fix beatmap info length tooltip not showing actual drain length
This commit is contained in:
Dean Herbert 2023-06-18 15:20:45 +09:00 committed by GitHub
commit ba8ca3facf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 5 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

@ -33,7 +33,7 @@ namespace osu.Game.Beatmaps
IBeatmapSetInfo? BeatmapSet { get; }
/// <summary>
/// The playable length in milliseconds of this beatmap.
/// The total length in milliseconds of this beatmap.
/// </summary>
double Length { get; }

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());
}
}