// 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; using osu.Game.Graphics; using osuTK.Graphics; namespace osu.Game.Beatmaps.ControlPoints { public class EffectControlPoint : ControlPoint { public static readonly EffectControlPoint DEFAULT = new EffectControlPoint { KiaiModeBindable = { Disabled = true }, OmitFirstBarLineBindable = { Disabled = true } }; /// /// Whether the first bar line of this control point is ignored. /// public readonly BindableBool OmitFirstBarLineBindable = new BindableBool(); public override Color4 GetRepresentingColour(OsuColour colours) => colours.Purple; /// /// 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 IsRedundant(ControlPoint existing) => !OmitFirstBarLine && existing is EffectControlPoint existingEffect && KiaiMode == existingEffect.KiaiMode && OmitFirstBarLine == existingEffect.OmitFirstBarLine; } }