diff --git a/osu.Game/Graphics/OsuColour.cs b/osu.Game/Graphics/OsuColour.cs
index f7ed55410c..466d59b08b 100644
--- a/osu.Game/Graphics/OsuColour.cs
+++ b/osu.Game/Graphics/OsuColour.cs
@@ -3,6 +3,7 @@
using osu.Framework.Extensions.Color4Extensions;
using osu.Game.Beatmaps;
+using osu.Game.Rulesets.Scoring;
using osu.Game.Scoring;
using osuTK.Graphics;
@@ -47,23 +48,49 @@ namespace osu.Game.Graphics
{
case ScoreRank.XH:
case ScoreRank.X:
- return Color4Extensions.FromHex(@"ce1c9d");
+ return Color4Extensions.FromHex(@"de31ae");
case ScoreRank.SH:
case ScoreRank.S:
- return Color4Extensions.FromHex(@"00a8b5");
+ return Color4Extensions.FromHex(@"02b5c3");
case ScoreRank.A:
- return Color4Extensions.FromHex(@"7cce14");
+ return Color4Extensions.FromHex(@"88da20");
case ScoreRank.B:
return Color4Extensions.FromHex(@"e3b130");
case ScoreRank.C:
- return Color4Extensions.FromHex(@"f18252");
+ return Color4Extensions.FromHex(@"ff8e5d");
default:
- return Color4Extensions.FromHex(@"e95353");
+ return Color4Extensions.FromHex(@"ff5a5a");
+ }
+ }
+
+ ///
+ /// Retrieves the colour for a .
+ ///
+ public Color4 ForHitResult(HitResult judgement)
+ {
+ switch (judgement)
+ {
+ case HitResult.Perfect:
+ case HitResult.Great:
+ return Blue;
+
+ case HitResult.Ok:
+ case HitResult.Good:
+ return Green;
+
+ case HitResult.Meh:
+ return Yellow;
+
+ case HitResult.Miss:
+ return Red;
+
+ default:
+ return Color4.White;
}
}
diff --git a/osu.Game/Rulesets/Judgements/DrawableJudgement.cs b/osu.Game/Rulesets/Judgements/DrawableJudgement.cs
index 960585b968..7113acbbfb 100644
--- a/osu.Game/Rulesets/Judgements/DrawableJudgement.cs
+++ b/osu.Game/Rulesets/Judgements/DrawableJudgement.cs
@@ -12,7 +12,6 @@ using osu.Game.Graphics.Sprites;
using osu.Game.Rulesets.Objects.Drawables;
using osu.Game.Rulesets.Scoring;
using osu.Game.Skinning;
-using osuTK.Graphics;
namespace osu.Game.Rulesets.Judgements
{
@@ -68,7 +67,7 @@ namespace osu.Game.Rulesets.Judgements
{
Text = Result.Type.GetDescription().ToUpperInvariant(),
Font = OsuFont.Numeric.With(size: 20),
- Colour = judgementColour(Result.Type),
+ Colour = colours.ForHitResult(Result.Type),
Scale = new Vector2(0.85f, 1),
}, confineMode: ConfineMode.NoScaling)
};
@@ -110,28 +109,5 @@ namespace osu.Game.Rulesets.Judgements
Expire(true);
}
-
- private Color4 judgementColour(HitResult judgement)
- {
- switch (judgement)
- {
- case HitResult.Perfect:
- case HitResult.Great:
- return colours.Blue;
-
- case HitResult.Ok:
- case HitResult.Good:
- return colours.Green;
-
- case HitResult.Meh:
- return colours.Yellow;
-
- case HitResult.Miss:
- return colours.Red;
-
- default:
- return Color4.White;
- }
- }
}
}
diff --git a/osu.Game/Screens/Ranking/Expanded/Accuracy/AccuracyCircle.cs b/osu.Game/Screens/Ranking/Expanded/Accuracy/AccuracyCircle.cs
index 4b6f777283..2d76a7c3b0 100644
--- a/osu.Game/Screens/Ranking/Expanded/Accuracy/AccuracyCircle.cs
+++ b/osu.Game/Screens/Ranking/Expanded/Accuracy/AccuracyCircle.cs
@@ -119,42 +119,42 @@ namespace osu.Game.Screens.Ranking.Expanded.Accuracy
new SmoothCircularProgress
{
RelativeSizeAxes = Axes.Both,
- Colour = Color4Extensions.FromHex("#BE0089"),
+ Colour = OsuColour.ForRank(ScoreRank.X),
InnerRadius = RANK_CIRCLE_RADIUS,
Current = { Value = 1 }
},
new SmoothCircularProgress
{
RelativeSizeAxes = Axes.Both,
- Colour = Color4Extensions.FromHex("#0096A2"),
+ Colour = OsuColour.ForRank(ScoreRank.S),
InnerRadius = RANK_CIRCLE_RADIUS,
Current = { Value = 1 - virtual_ss_percentage }
},
new SmoothCircularProgress
{
RelativeSizeAxes = Axes.Both,
- Colour = Color4Extensions.FromHex("#72C904"),
+ Colour = OsuColour.ForRank(ScoreRank.A),
InnerRadius = RANK_CIRCLE_RADIUS,
Current = { Value = 0.95f }
},
new SmoothCircularProgress
{
RelativeSizeAxes = Axes.Both,
- Colour = Color4Extensions.FromHex("#D99D03"),
+ Colour = OsuColour.ForRank(ScoreRank.B),
InnerRadius = RANK_CIRCLE_RADIUS,
Current = { Value = 0.9f }
},
new SmoothCircularProgress
{
RelativeSizeAxes = Axes.Both,
- Colour = Color4Extensions.FromHex("#EA7948"),
+ Colour = OsuColour.ForRank(ScoreRank.C),
InnerRadius = RANK_CIRCLE_RADIUS,
Current = { Value = 0.8f }
},
new SmoothCircularProgress
{
RelativeSizeAxes = Axes.Both,
- Colour = Color4Extensions.FromHex("#FF5858"),
+ Colour = OsuColour.ForRank(ScoreRank.D),
InnerRadius = RANK_CIRCLE_RADIUS,
Current = { Value = 0.7f }
},
diff --git a/osu.Game/Screens/Ranking/Expanded/ExpandedPanelMiddleContent.cs b/osu.Game/Screens/Ranking/Expanded/ExpandedPanelMiddleContent.cs
index 7a50a96fe7..df7eed9a02 100644
--- a/osu.Game/Screens/Ranking/Expanded/ExpandedPanelMiddleContent.cs
+++ b/osu.Game/Screens/Ranking/Expanded/ExpandedPanelMiddleContent.cs
@@ -5,7 +5,6 @@ using System.Collections.Generic;
using System.Linq;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
-using osu.Framework.Extensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Localisation;
@@ -14,6 +13,7 @@ using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface;
+using osu.Game.Rulesets.Scoring;
using osu.Game.Scoring;
using osu.Game.Screens.Play.HUD;
using osu.Game.Screens.Ranking.Expanded.Accuracy;
@@ -56,13 +56,13 @@ namespace osu.Game.Screens.Ranking.Expanded
var topStatistics = new List
{
new AccuracyStatistic(score.Accuracy),
- new ComboStatistic(score.MaxCombo, true),
+ new ComboStatistic(score.MaxCombo, !score.Statistics.TryGetValue(HitResult.Miss, out var missCount) || missCount == 0),
new CounterStatistic("pp", (int)(score.PP ?? 0)),
};
var bottomStatistics = new List();
foreach (var stat in score.SortedStatistics)
- bottomStatistics.Add(new CounterStatistic(stat.Key.GetDescription(), stat.Value));
+ bottomStatistics.Add(new HitResultStatistic(stat.Key, stat.Value));
statisticDisplays.AddRange(topStatistics);
statisticDisplays.AddRange(bottomStatistics);
@@ -204,6 +204,13 @@ namespace osu.Game.Screens.Ranking.Expanded
}
}
}
+ },
+ new OsuSpriteText
+ {
+ Anchor = Anchor.TopCentre,
+ Origin = Anchor.TopCentre,
+ Font = OsuFont.GetFont(size: 10, weight: FontWeight.SemiBold),
+ Text = $"Played on {score.Date.ToLocalTime():g}"
}
}
};
diff --git a/osu.Game/Screens/Ranking/Expanded/Statistics/HitResultStatistic.cs b/osu.Game/Screens/Ranking/Expanded/Statistics/HitResultStatistic.cs
new file mode 100644
index 0000000000..faa4a6a96c
--- /dev/null
+++ b/osu.Game/Screens/Ranking/Expanded/Statistics/HitResultStatistic.cs
@@ -0,0 +1,27 @@
+// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
+// See the LICENCE file in the repository root for full licence text.
+
+using osu.Framework.Allocation;
+using osu.Framework.Extensions;
+using osu.Game.Graphics;
+using osu.Game.Rulesets.Scoring;
+
+namespace osu.Game.Screens.Ranking.Expanded.Statistics
+{
+ public class HitResultStatistic : CounterStatistic
+ {
+ private readonly HitResult result;
+
+ public HitResultStatistic(HitResult result, int count)
+ : base(result.GetDescription(), count)
+ {
+ this.result = result;
+ }
+
+ [BackgroundDependencyLoader]
+ private void load(OsuColour colours)
+ {
+ HeaderText.Colour = colours.ForHitResult(result);
+ }
+ }
+}
diff --git a/osu.Game/Screens/Ranking/Expanded/Statistics/StatisticDisplay.cs b/osu.Game/Screens/Ranking/Expanded/Statistics/StatisticDisplay.cs
index a653cc82d4..9206c58bc9 100644
--- a/osu.Game/Screens/Ranking/Expanded/Statistics/StatisticDisplay.cs
+++ b/osu.Game/Screens/Ranking/Expanded/Statistics/StatisticDisplay.cs
@@ -6,6 +6,7 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
+using osu.Framework.Graphics.Sprites;
using osu.Game.Graphics;
using osu.Game.Graphics.Sprites;
@@ -16,8 +17,9 @@ namespace osu.Game.Screens.Ranking.Expanded.Statistics
///
public abstract class StatisticDisplay : CompositeDrawable
{
- private readonly string header;
+ protected SpriteText HeaderText { get; private set; }
+ private readonly string header;
private Drawable content;
///
@@ -53,7 +55,7 @@ namespace osu.Game.Screens.Ranking.Expanded.Statistics
RelativeSizeAxes = Axes.Both,
Colour = Color4Extensions.FromHex("#222")
},
- new OsuSpriteText
+ HeaderText = new OsuSpriteText
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
diff --git a/osu.Game/Screens/Ranking/ResultsScreen.cs b/osu.Game/Screens/Ranking/ResultsScreen.cs
index 0952ba1f70..803b33a998 100644
--- a/osu.Game/Screens/Ranking/ResultsScreen.cs
+++ b/osu.Game/Screens/Ranking/ResultsScreen.cs
@@ -1,6 +1,7 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
+using System;
using osu.Framework.Allocation;
using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics;
@@ -135,7 +136,7 @@ namespace osu.Game.Screens.Ranking
protected override void Update()
{
base.Update();
- content.Height = DrawHeight;
+ content.Height = Math.Max(768, DrawHeight);
}
}
}