// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System.Collections.Generic; using System.Linq; using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Game.Beatmaps; using osu.Game.Online.Solo; using osu.Game.Scoring; using osu.Game.Screens.Ranking.Statistics.User; namespace osu.Game.Screens.Ranking.Statistics { public partial class SoloStatisticsPanel : StatisticsPanel { private readonly ScoreInfo achievedScore; public SoloStatisticsPanel(ScoreInfo achievedScore) { this.achievedScore = achievedScore; } public Bindable StatisticsUpdate { get; } = new Bindable(); protected override ICollection CreateStatisticRows(ScoreInfo newScore, IBeatmap playableBeatmap) { var rows = base.CreateStatisticRows(newScore, playableBeatmap); if (newScore.UserID > 1 && newScore.UserID == achievedScore.UserID && newScore.OnlineID > 0 && newScore.OnlineID == achievedScore.OnlineID) { rows = rows.Append(new StatisticRow { Columns = new[] { new StatisticItem("Overall Ranking", () => new OverallRanking { RelativeSizeAxes = Axes.X, Anchor = Anchor.Centre, Origin = Anchor.Centre, Width = 0.5f, StatisticsUpdate = { BindTarget = StatisticsUpdate } }) } }).ToArray(); } return rows; } } }