using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Xenoarchaeology.Artifact.Components; /// /// This is used for tracking the nodes which have been triggered during a particular unlocking state. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause] public sealed partial class XenoArtifactUnlockingComponent : Component { /// /// Indexes corresponding to all of the nodes that have been triggered /// [DataField, AutoNetworkedField] public HashSet TriggeredNodeIndexes = new(); /// /// The time at which the unlocking state ends. /// [DataField, AutoNetworkedField, AutoPausedField] public TimeSpan EndTime; /// /// Tracks if artifexium has been applied, which changes the unlock behavior slightly. /// [DataField, AutoNetworkedField] public bool ArtifexiumApplied; /// /// The sound that plays when an artifact finishes unlocking successfully (with node unlocked). /// [DataField] public SoundSpecifier UnlockActivationSuccessfulSound = new SoundCollectionSpecifier("ArtifactUnlockingActivationSuccess") { Params = new() { Variation = 0.1f, Volume = 3f } }; /// /// The sound that plays when artifact finishes unlocking non-successfully. /// [DataField] public SoundSpecifier? UnlockActivationFailedSound = new SoundCollectionSpecifier("ArtifactUnlockActivationFailure") { Params = new() { Variation = 0.1f } }; }