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
}
};
}