using RhythmBase.Components; using RhythmBase.Components.Easing; namespace RhythmBase.Events { /// /// Represents a custom flash event. /// public class CustomFlash : BaseEvent, IEaseEvent, IRoomEvent { /// /// Initializes a new instance of the class. /// public CustomFlash() { Rooms = new RDRoom(true, new byte[1]); StartColor = new PaletteColor(false); EndColor = new PaletteColor(false); Type = EventType.CustomFlash; Tab = Tabs.Actions; } /// public RDRoom Rooms { get; set; } /// public EaseType Ease { get; set; } /// /// Gets or sets the start color of the flash. /// public PaletteColor StartColor { get; set; } /// /// Gets or sets a value indicating whether the background is affected. /// public bool Background { get; set; } /// /// Gets or sets the end color of the flash. /// [EaseProperty] public PaletteColor EndColor { get; set; } /// public float Duration { get; set; } /// /// Gets or sets the start opacity of the flash. /// public int StartOpacity { get; set; } /// /// Gets or sets the end opacity of the flash. /// [EaseProperty] public int EndOpacity { get; set; } /// public override EventType Type { get; } /// public override Tabs Tab { get; } /// public override string ToString() => base.ToString() + $" {StartColor} {StartOpacity}%=>{EndColor} {EndOpacity}%"; } }