mirror of
https://github.com/ppy/osu.git
synced 2025-01-06 07:02:54 +08:00
display RankBadge
s on on their sector centres
the D `RankBadge` does this anyway. the A and S badges are slightly off centre to prevent overlap with the SS badge
This commit is contained in:
parent
6ace6bfee1
commit
0531c010eb
@ -220,12 +220,12 @@ namespace osu.Game.Screens.Ranking.Expanded.Accuracy
|
|||||||
Padding = new MarginPadding { Vertical = -15, Horizontal = -20 },
|
Padding = new MarginPadding { Vertical = -15, Horizontal = -20 },
|
||||||
Children = new[]
|
Children = new[]
|
||||||
{
|
{
|
||||||
new RankBadge(1, getRank(ScoreRank.X)),
|
new RankBadge(1, 1, getRank(ScoreRank.X)),
|
||||||
new RankBadge(0.95, getRank(ScoreRank.S)),
|
new RankBadge(0.95, 0.95 + (0.025 - virtual_ss_percentage) / 2, getRank(ScoreRank.S)),
|
||||||
new RankBadge(0.9, getRank(ScoreRank.A)),
|
new RankBadge(0.9, 0.9125, getRank(ScoreRank.A)),
|
||||||
new RankBadge(0.8, getRank(ScoreRank.B)),
|
new RankBadge(0.8, 0.85, getRank(ScoreRank.B)),
|
||||||
new RankBadge(0.7, getRank(ScoreRank.C)),
|
new RankBadge(0.7, 0.75, getRank(ScoreRank.C)),
|
||||||
new RankBadge(0.35, getRank(ScoreRank.D)),
|
new RankBadge(0, 0.35, getRank(ScoreRank.D)),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
rankText = new RankText(score.Rank)
|
rankText = new RankText(score.Rank)
|
||||||
|
@ -27,6 +27,11 @@ namespace osu.Game.Screens.Ranking.Expanded.Accuracy
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public readonly double Accuracy;
|
public readonly double Accuracy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The position around the <see cref="AccuracyCircle"/> to display this badge.
|
||||||
|
/// </summary>
|
||||||
|
private readonly double displayPosition;
|
||||||
|
|
||||||
private readonly ScoreRank rank;
|
private readonly ScoreRank rank;
|
||||||
|
|
||||||
private Drawable rankContainer;
|
private Drawable rankContainer;
|
||||||
@ -36,10 +41,12 @@ namespace osu.Game.Screens.Ranking.Expanded.Accuracy
|
|||||||
/// Creates a new <see cref="RankBadge"/>.
|
/// Creates a new <see cref="RankBadge"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="accuracy">The accuracy value corresponding to <paramref name="rank"/>.</param>
|
/// <param name="accuracy">The accuracy value corresponding to <paramref name="rank"/>.</param>
|
||||||
|
/// <param name="position">The position around the <see cref="AccuracyCircle"/> to display this badge.</param>
|
||||||
/// <param name="rank">The <see cref="ScoreRank"/> to be displayed in this <see cref="RankBadge"/>.</param>
|
/// <param name="rank">The <see cref="ScoreRank"/> to be displayed in this <see cref="RankBadge"/>.</param>
|
||||||
public RankBadge(double accuracy, ScoreRank rank)
|
public RankBadge(double accuracy, double position, ScoreRank rank)
|
||||||
{
|
{
|
||||||
Accuracy = accuracy;
|
Accuracy = accuracy;
|
||||||
|
displayPosition = position;
|
||||||
this.rank = rank;
|
this.rank = rank;
|
||||||
|
|
||||||
RelativeSizeAxes = Axes.Both;
|
RelativeSizeAxes = Axes.Both;
|
||||||
@ -92,7 +99,7 @@ namespace osu.Game.Screens.Ranking.Expanded.Accuracy
|
|||||||
base.Update();
|
base.Update();
|
||||||
|
|
||||||
// Starts at -90deg (top) and moves counter-clockwise by the accuracy
|
// Starts at -90deg (top) and moves counter-clockwise by the accuracy
|
||||||
rankContainer.Position = circlePosition(-MathF.PI / 2 - (1 - (float)Accuracy) * MathF.PI * 2);
|
rankContainer.Position = circlePosition(-MathF.PI / 2 - (1 - (float)displayPosition) * MathF.PI * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Vector2 circlePosition(float t)
|
private Vector2 circlePosition(float t)
|
||||||
|
Loading…
Reference in New Issue
Block a user