//Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using System.Collections.Generic; using System.Linq; using osu.Game.Beatmaps; using osu.Game.Graphics; using osu.Game.Modes.Objects; using osu.Game.Modes.Osu.Objects; using osu.Game.Modes.Osu.UI; using osu.Game.Modes.UI; namespace osu.Game.Modes.Osu { public class OsuRuleset : Ruleset { public override ScoreOverlay CreateScoreOverlay() => new OsuScoreOverlay(); public override HitRenderer CreateHitRendererWith(List objects) => new OsuHitRenderer { Objects = objects }; public override IEnumerable GetBeatmapStatistics(WorkingBeatmap beatmap) => new[] { new BeatmapStatistic { Name = @"Circle count", Content = beatmap.Beatmap.HitObjects.Count(h => h is HitCircle).ToString(), Icon = FontAwesome.fa_dot_circle_o }, new BeatmapStatistic { Name = @"Slider count", Content = beatmap.Beatmap.HitObjects.Count(h => h is Slider).ToString(), Icon = FontAwesome.fa_circle_o } }; public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser(); public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) => new OsuScoreProcessor(hitObjectCount); protected override PlayMode PlayMode => PlayMode.Osu; } }