// 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.Bindables; namespace osu.Game.Beatmaps.ControlPoints { public class EffectControlPoint : ControlPoint { /// /// Whether the first bar line of this control point is ignored. /// public readonly BindableBool OmitFirstBarLineBindable = new BindableBool(); /// /// Whether the first bar line of this control point is ignored. /// public bool OmitFirstBarLine { get => OmitFirstBarLineBindable.Value; set => OmitFirstBarLineBindable.Value = value; } /// /// Whether this control point enables Kiai mode. /// public readonly BindableBool KiaiModeBindable = new BindableBool(); /// /// Whether this control point enables Kiai mode. /// public bool KiaiMode { get => KiaiModeBindable.Value; set => KiaiModeBindable.Value = value; } public override bool EquivalentTo(ControlPoint other) => other is EffectControlPoint otherTyped && KiaiMode == otherTyped.KiaiMode && OmitFirstBarLine == otherTyped.OmitFirstBarLine; public override bool IsRedundant(ControlPoint existing, double time) => !OmitFirstBarLine && EquivalentTo(existing); } }