using System; using System.Collections.Generic; using System.Runtime.Serialization; using BinaryPack.Attributes; namespace NitroxModel.DataStructures.GameLogic; /// /// Aurora events data /// [Serializable, DataContract] public class AuroraEventData { /// /// In-game time in seconds at which Aurora's countdown happens /// [DataMember(Order = 1)] public float TimeToStartCountdown; /// /// In-game time in seconds at which Aurora's warning messages start /// [DataMember(Order = 2)] public float TimeToStartWarning; /// /// Real time in seconds at which Aurora's considered exploded /// [DataMember(Order = 3)] public float AuroraRealExplosionTime; [IgnoreConstructor] protected AuroraEventData() { // Constructor for serialization. Has to be "protected" for json serialization. } public AuroraEventData(float timeToStartCountdown, float timeToStartWarning, float auroraRealExplosionTime) { TimeToStartCountdown = timeToStartCountdown; TimeToStartWarning = timeToStartWarning; AuroraRealExplosionTime = auroraRealExplosionTime; } [NonSerialized] public static readonly IReadOnlyCollection GoalNames = new[] { "Story_AuroraWarning1", "Story_AuroraWarning2", "Story_AuroraWarning3", "Story_AuroraWarning4", "Story_AuroraExplosion" }; }