// 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.Graphics; using osu.Game.Graphics; using osu.Game.Graphics.UserInterface; using osu.Game.Screens.Ranking.Expanded.Accuracy; using osuTK; namespace osu.Game.Screens.Ranking.Expanded.Statistics { /// /// A to display general numeric values. /// public class CounterStatistic : StatisticDisplay { private readonly int count; private RollingCounter counter; /// /// Creates a new . /// /// The name of the statistic. /// The value to display. public CounterStatistic(string header, int count) : base(header) { this.count = count; } public override void Appear() { base.Appear(); counter.Current.Value = count; } protected override Drawable CreateContent() => counter = new Counter(); private class Counter : RollingCounter { protected override double RollingDuration => AccuracyCircle.ACCURACY_TRANSFORM_DURATION; protected override Easing RollingEasing => AccuracyCircle.ACCURACY_TRANSFORM_EASING; public Counter() { DisplayedCountSpriteText.Font = OsuFont.Torus.With(size: 20, fixedWidth: true); DisplayedCountSpriteText.Spacing = new Vector2(-2, 0); } public override void Increment(int amount) => Current.Value += amount; } } }