From 3571c2b6172c70abb46586ffb801eb45f68df6fe Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 19:41:44 +0700
Subject: [PATCH 01/13] Rearrange children in TopScoreStatisticsSection

---
 .../Scores/TopScoreStatisticsSection.cs       | 31 ++++++++++---------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index 7d410d0d34..5abff41cc1 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -44,9 +44,24 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
             {
                 RelativeSizeAxes = Axes.X,
                 AutoSizeAxes = Axes.Y,
-                Spacing = new Vector2(10, 0),
+                Direction = FillDirection.Vertical,
+                Spacing = new Vector2(10, 8),
                 Children = new Drawable[]
                 {
+                    new FillFlowContainer
+                    {
+                        Anchor = Anchor.TopRight,
+                        Origin = Anchor.TopRight,
+                        AutoSizeAxes = Axes.Both,
+                        Direction = FillDirection.Horizontal,
+                        Spacing = new Vector2(margin, 0),
+                        Children = new Drawable[]
+                        {
+                            totalScoreColumn = new TextColumn("total score", largeFont),
+                            accuracyColumn = new TextColumn("accuracy", largeFont),
+                            maxComboColumn = new TextColumn("max combo", largeFont)
+                        }
+                    },
                     new FillFlowContainer
                     {
                         Anchor = Anchor.TopRight,
@@ -66,20 +81,6 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                             modsColumn = new ModsInfoColumn(),
                         }
                     },
-                    new FillFlowContainer
-                    {
-                        Anchor = Anchor.TopRight,
-                        Origin = Anchor.TopRight,
-                        AutoSizeAxes = Axes.Both,
-                        Direction = FillDirection.Horizontal,
-                        Spacing = new Vector2(margin, 0),
-                        Children = new Drawable[]
-                        {
-                            totalScoreColumn = new TextColumn("total score", largeFont),
-                            accuracyColumn = new TextColumn("accuracy", largeFont),
-                            maxComboColumn = new TextColumn("max combo", largeFont)
-                        }
-                    },
                 }
             };
         }

From c12fc67887781b4c13c824e689f6bc09194fd6e3 Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 19:42:37 +0700
Subject: [PATCH 02/13] Change InfoColumn title font weight

---
 .../Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index 5abff41cc1..928d6be800 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -125,7 +125,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                     {
                         text = new OsuSpriteText
                         {
-                            Font = OsuFont.GetFont(size: 10, weight: FontWeight.Black),
+                            Font = OsuFont.GetFont(size: 10, weight: FontWeight.Bold),
                             Text = title.ToUpper()
                         },
                         separator = new Box

From 4f312ae6bca082e476bfac9b32d83fb2694850f8 Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 19:43:14 +0700
Subject: [PATCH 03/13] Adjust InfoColumn spacing

---
 .../Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index 928d6be800..88aac732d7 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -120,7 +120,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                 {
                     AutoSizeAxes = Axes.Both,
                     Direction = FillDirection.Vertical,
-                    Spacing = new Vector2(0, 2),
+                    Spacing = new Vector2(0, 1),
                     Children = new[]
                     {
                         text = new OsuSpriteText

From 8f9917238e3303860659442aa7ac373cbdae04bf Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 19:45:08 +0700
Subject: [PATCH 04/13] Add optional minimum width to InfoColumn

---
 .../BeatmapSet/Scores/TopScoreStatisticsSection.cs | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index 88aac732d7..b456a35480 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -23,6 +23,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
     public class TopScoreStatisticsSection : CompositeDrawable
     {
         private const float margin = 10;
+        private const float statistics_column_min_width = 50;
 
         private readonly FontUsage smallFont = OsuFont.GetFont(size: 16);
         private readonly FontUsage largeFont = OsuFont.GetFont(size: 22);
@@ -112,7 +113,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
             private readonly Box separator;
             private readonly OsuSpriteText text;
 
-            public InfoColumn(string title, Drawable content)
+            public InfoColumn(string title, Drawable content, float? minWidth = null)
             {
                 AutoSizeAxes = Axes.Both;
 
@@ -130,7 +131,8 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                         },
                         separator = new Box
                         {
-                            RelativeSizeAxes = Axes.X,
+                            RelativeSizeAxes = minWidth == null ? Axes.X : Axes.None,
+                            Width = minWidth ?? 1f,
                             Height = 1
                         },
                         content
@@ -149,13 +151,13 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
         {
             private readonly SpriteText text;
 
-            public TextColumn(string title, FontUsage font)
-                : this(title, new OsuSpriteText { Font = font })
+            public TextColumn(string title, FontUsage font, float? minWidth = null)
+                : this(title, new OsuSpriteText { Font = font }, minWidth)
             {
             }
 
-            private TextColumn(string title, SpriteText text)
-                : base(title, text)
+            private TextColumn(string title, SpriteText text, float? minWidth = null)
+                : base(title, text, minWidth)
             {
                 this.text = text;
             }

From 556a4e64cb705c8a413fe7acd14446b3fedb29b8 Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 19:46:14 +0700
Subject: [PATCH 05/13] Use minimum width on statistics columns

---
 .../Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index b456a35480..d11a74617a 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -103,7 +103,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
             }
         }
 
-        private TextColumn createStatisticsColumn(HitResult hitResult, int count) => new TextColumn(hitResult.GetDescription(), smallFont)
+        private TextColumn createStatisticsColumn(HitResult hitResult, int count) => new TextColumn(hitResult.GetDescription(), smallFont, statistics_column_min_width)
         {
             Text = count.ToString()
         };

From a8faee91d8404989469e7606a85296d371065b64 Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 19:54:57 +0700
Subject: [PATCH 06/13] Use minWidth on pp column

---
 .../Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index d11a74617a..fc50a528e9 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -78,7 +78,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                                 Direction = FillDirection.Horizontal,
                                 Spacing = new Vector2(margin, 0),
                             },
-                            ppColumn = new TextColumn("pp", smallFont),
+                            ppColumn = new TextColumn("pp", smallFont, statistics_column_min_width),
                             modsColumn = new ModsInfoColumn(),
                         }
                     },

From 5030b66092ff9e28c006c5ee025bf5881c65997d Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 19:59:11 +0700
Subject: [PATCH 07/13] Adjust width of statistics columns

---
 .../Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index fc50a528e9..54ead4ebf4 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -23,7 +23,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
     public class TopScoreStatisticsSection : CompositeDrawable
     {
         private const float margin = 10;
-        private const float statistics_column_min_width = 50;
+        private const float statistics_column_min_width = 40;
 
         private readonly FontUsage smallFont = OsuFont.GetFont(size: 16);
         private readonly FontUsage largeFont = OsuFont.GetFont(size: 22);

From f112760b0027030f8c1e62683529624d04e9e8fd Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 21:55:04 +0700
Subject: [PATCH 08/13] Revert column separator height to 2

---
 .../Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index 54ead4ebf4..c3a929dd4a 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -133,7 +133,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                         {
                             RelativeSizeAxes = minWidth == null ? Axes.X : Axes.None,
                             Width = minWidth ?? 1f,
-                            Height = 1
+                            Height = 2
                         },
                         content
                     }

From 1c16ab1813393f0652a8ea257e51540f34b77817 Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 21:55:20 +0700
Subject: [PATCH 09/13] Use better colours

---
 .../Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index c3a929dd4a..ec87b04947 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -143,7 +143,8 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
             [BackgroundDependencyLoader]
             private void load(OverlayColourProvider colourProvider)
             {
-                separator.Colour = text.Colour = colourProvider.Foreground1;
+                text.Colour = colourProvider.Foreground1;
+                separator.Colour = colourProvider.Background3;
             }
         }
 

From bd815cd81b003f5fe95250cab209e09b759492b3 Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 21:55:48 +0700
Subject: [PATCH 10/13] Use minWidth on more columns to further match web

---
 .../BeatmapSet/Scores/TopScoreStatisticsSection.cs  | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index ec87b04947..8386c82572 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -23,7 +23,8 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
     public class TopScoreStatisticsSection : CompositeDrawable
     {
         private const float margin = 10;
-        private const float statistics_column_min_width = 40;
+        private const float top_columns_min_width = 64;
+        private const float bottom_columns_min_width = 45;
 
         private readonly FontUsage smallFont = OsuFont.GetFont(size: 16);
         private readonly FontUsage largeFont = OsuFont.GetFont(size: 22);
@@ -58,9 +59,9 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                         Spacing = new Vector2(margin, 0),
                         Children = new Drawable[]
                         {
-                            totalScoreColumn = new TextColumn("total score", largeFont),
-                            accuracyColumn = new TextColumn("accuracy", largeFont),
-                            maxComboColumn = new TextColumn("max combo", largeFont)
+                            totalScoreColumn = new TextColumn("total score", largeFont, top_columns_min_width),
+                            accuracyColumn = new TextColumn("accuracy", largeFont, top_columns_min_width),
+                            maxComboColumn = new TextColumn("max combo", largeFont, top_columns_min_width)
                         }
                     },
                     new FillFlowContainer
@@ -78,7 +79,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                                 Direction = FillDirection.Horizontal,
                                 Spacing = new Vector2(margin, 0),
                             },
-                            ppColumn = new TextColumn("pp", smallFont, statistics_column_min_width),
+                            ppColumn = new TextColumn("pp", smallFont, bottom_columns_min_width),
                             modsColumn = new ModsInfoColumn(),
                         }
                     },
@@ -103,7 +104,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
             }
         }
 
-        private TextColumn createStatisticsColumn(HitResult hitResult, int count) => new TextColumn(hitResult.GetDescription(), smallFont, statistics_column_min_width)
+        private TextColumn createStatisticsColumn(HitResult hitResult, int count) => new TextColumn(hitResult.GetDescription(), smallFont, bottom_columns_min_width)
         {
             Text = count.ToString()
         };

From 0cba1a357f68f90b81fb2828aa2265ae7a328c1d Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 21:56:22 +0700
Subject: [PATCH 11/13] Adjust padding on DrawableTopScore

---
 osu.Game/Overlays/BeatmapSet/Scores/DrawableTopScore.cs | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/DrawableTopScore.cs b/osu.Game/Overlays/BeatmapSet/Scores/DrawableTopScore.cs
index e12c977430..bb85b4a37b 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/DrawableTopScore.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/DrawableTopScore.cs
@@ -42,7 +42,12 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                 {
                     RelativeSizeAxes = Axes.X,
                     AutoSizeAxes = Axes.Y,
-                    Padding = new MarginPadding(10),
+                    Padding = new MarginPadding
+                    {
+                        Vertical = 10,
+                        Left = 10,
+                        Right = 25,
+                    },
                     Children = new Drawable[]
                     {
                         new AutoSizingGrid

From 833bb28dcfcddd529959a60b0f4ea2b1a25d4688 Mon Sep 17 00:00:00 2001
From: recapitalverb <41869184+recapitalverb@users.noreply.github.com>
Date: Tue, 4 Feb 2020 22:38:25 +0700
Subject: [PATCH 12/13] Adjust separator position between top and bottom
 content

---
 .../Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index 8386c82572..171aae06d3 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -134,7 +134,8 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                         {
                             RelativeSizeAxes = minWidth == null ? Axes.X : Axes.None,
                             Width = minWidth ?? 1f,
-                            Height = 2
+                            Height = 2,
+                            Margin = new MarginPadding { Top = 2 }
                         },
                         content
                     }

From 4ea9efd92e8a1f87ec905ac8ec387d335d1862a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= <dach.bartlomiej@gmail.com>
Date: Tue, 4 Feb 2020 17:56:06 +0100
Subject: [PATCH 13/13] Enforce column ordering

---
 .../Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs   | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
index 171aae06d3..8a17fef367 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/TopScoreStatisticsSection.cs
@@ -99,7 +99,9 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
                 maxComboColumn.Text = $@"{value.MaxCombo:N0}x";
                 ppColumn.Text = $@"{value.PP:N0}";
 
-                statisticsColumns.ChildrenEnumerable = value.Statistics.Select(kvp => createStatisticsColumn(kvp.Key, kvp.Value));
+                statisticsColumns.ChildrenEnumerable = value.Statistics
+                                                            .OrderByDescending(pair => pair.Key)
+                                                            .Select(kvp => createStatisticsColumn(kvp.Key, kvp.Value));
                 modsColumn.Mods = value.Mods;
             }
         }