// 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.Game.Rulesets.Mods; namespace osu.Game.Rulesets.Difficulty.Skills { /// /// A abstract skill with available per objet difficulty. /// /// /// This class should be considered a "processing" class and not persisted. /// public abstract class GraphSkill : Skill { protected GraphSkill(Mod[] mods) : base(mods) { } /// /// The length of each section. /// protected virtual int SectionLength => 400; public double CurrentSectionPeak { get; protected set; } // We also keep track of the peak level in the current section. protected double CurrentSectionEnd; protected readonly List StrainPeaks = new List(); /// /// Returns a live enumerable of the difficulties /// public virtual IEnumerable GetCurrentStrainPeaks() => StrainPeaks.Append(CurrentSectionPeak); } }