mirror of
https://github.com/ppy/osu
synced 2025-01-12 17:19:38 +00:00
Add position display in contracted score panels
This commit is contained in:
parent
f1e721e396
commit
b361761d86
@ -80,7 +80,8 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
Date = EndedAt,
|
Date = EndedAt,
|
||||||
Hash = string.Empty, // todo: temporary?
|
Hash = string.Empty, // todo: temporary?
|
||||||
Rank = Rank,
|
Rank = Rank,
|
||||||
Mods = Mods?.Select(m => m.ToMod(rulesetInstance)).ToArray() ?? Array.Empty<Mod>()
|
Mods = Mods?.Select(m => m.ToMod(rulesetInstance)).ToArray() ?? Array.Empty<Mod>(),
|
||||||
|
Position = Position,
|
||||||
};
|
};
|
||||||
|
|
||||||
return scoreInfo;
|
return scoreInfo;
|
||||||
|
@ -179,6 +179,13 @@ namespace osu.Game.Scoring
|
|||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public bool DeletePending { get; set; }
|
public bool DeletePending { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The position of this score, starting at 1.
|
||||||
|
/// </summary>
|
||||||
|
[NotMapped]
|
||||||
|
[JsonProperty("position")]
|
||||||
|
public int? Position { get; set; }
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
protected class DeserializedMod : IMod
|
protected class DeserializedMod : IMod
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
// 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 osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Framework.Graphics.Containers;
|
||||||
|
using osu.Game.Graphics;
|
||||||
|
using osu.Game.Graphics.Sprites;
|
||||||
|
using osu.Game.Scoring;
|
||||||
|
|
||||||
|
namespace osu.Game.Screens.Ranking.Contracted
|
||||||
|
{
|
||||||
|
public class ContractedPanelTopContent : CompositeDrawable
|
||||||
|
{
|
||||||
|
private readonly ScoreInfo score;
|
||||||
|
|
||||||
|
public ContractedPanelTopContent(ScoreInfo score)
|
||||||
|
{
|
||||||
|
this.score = score;
|
||||||
|
|
||||||
|
RelativeSizeAxes = Axes.Both;
|
||||||
|
}
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load()
|
||||||
|
{
|
||||||
|
InternalChild = new OsuSpriteText
|
||||||
|
{
|
||||||
|
Anchor = Anchor.TopCentre,
|
||||||
|
Origin = Anchor.TopCentre,
|
||||||
|
Y = 6,
|
||||||
|
Text = score.Position != null ? $"#{score.Position}" : string.Empty,
|
||||||
|
Font = OsuFont.GetFont(size: 18, weight: FontWeight.Bold)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -213,6 +213,7 @@ namespace osu.Game.Screens.Ranking
|
|||||||
topLayerBackground.FadeColour(contracted_top_layer_colour, resize_duration, Easing.OutQuint);
|
topLayerBackground.FadeColour(contracted_top_layer_colour, resize_duration, Easing.OutQuint);
|
||||||
middleLayerBackground.FadeColour(contracted_middle_layer_colour, resize_duration, Easing.OutQuint);
|
middleLayerBackground.FadeColour(contracted_middle_layer_colour, resize_duration, Easing.OutQuint);
|
||||||
|
|
||||||
|
topLayerContentContainer.Add(middleLayerContent = new ContractedPanelTopContent(Score).With(d => d.Alpha = 0));
|
||||||
middleLayerContentContainer.Add(topLayerContent = new ContractedPanelMiddleContent(Score).With(d => d.Alpha = 0));
|
middleLayerContentContainer.Add(topLayerContent = new ContractedPanelMiddleContent(Score).With(d => d.Alpha = 0));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,8 @@ namespace osu.Game.Tests
|
|||||||
Statistics[HitResult.Meh] = 50;
|
Statistics[HitResult.Meh] = 50;
|
||||||
Statistics[HitResult.Good] = 100;
|
Statistics[HitResult.Good] = 100;
|
||||||
Statistics[HitResult.Great] = 300;
|
Statistics[HitResult.Great] = 300;
|
||||||
|
|
||||||
|
Position = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class TestModHardRock : ModHardRock
|
private class TestModHardRock : ModHardRock
|
||||||
|
Loading…
Reference in New Issue
Block a user