using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Salvage.Fulton; /// /// Applies to the target so they teleport to after a time. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class FultonComponent : Component { /// /// How long it takes to apply the fulton to an entity. /// [ViewVariables(VVAccess.ReadWrite), DataField("applyDuration"), AutoNetworkedField] public TimeSpan ApplyFultonDuration = TimeSpan.FromSeconds(3); /// /// Linked fulton beacon. /// [ViewVariables(VVAccess.ReadWrite), DataField("beacon"), AutoNetworkedField] public EntityUid? Beacon; /// /// Applies Removeable to the . /// [ViewVariables(VVAccess.ReadWrite), DataField("removeable"), AutoNetworkedField] public bool Removeable = true; /// /// How long the fulton will remain before teleporting to the beacon. /// [ViewVariables(VVAccess.ReadWrite), DataField("duration")] public TimeSpan FultonDuration = TimeSpan.FromSeconds(45); [ViewVariables(VVAccess.ReadWrite), DataField("whitelist"), AutoNetworkedField] public EntityWhitelist? Whitelist = new() { Components = new[] { "Item", "Anchorable" } }; /// /// Sound that gets played when fulton is applied. /// /// [ViewVariables(VVAccess.ReadWrite), DataField("soundFulton"), AutoNetworkedField] public SoundSpecifier? FultonSound = new SoundPathSpecifier("/Audio/Items/Mining/fultext_deploy.ogg"); }