// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System; using MessagePack; using osu.Game.Online.Multiplayer.Countdown; namespace osu.Game.Online.Multiplayer { /// /// Describes the current countdown in a . /// [MessagePackObject] [Union(0, typeof(MatchStartCountdown))] // IMPORTANT: Add rules to SignalRUnionWorkaroundResolver for new derived types. [Union(1, typeof(ForceGameplayStartCountdown))] [Union(2, typeof(ServerShuttingDownCountdown))] public abstract class MultiplayerCountdown { /// /// A unique identifier for this countdown. /// [Key(0)] public int ID { get; set; } /// /// The amount of time remaining in the countdown. /// /// /// This is only sent once from the server upon initial retrieval of the or via a . /// [Key(1)] public TimeSpan TimeRemaining { get; set; } /// /// Whether only a single instance of this type may be active at any one time. /// [IgnoreMember] public virtual bool IsExclusive => true; } }