using Robust.Shared.Audio; namespace Content.Server.AbstractAnalyzer; /// /// After scanning, retrieves the target Uid to use with its related UI. /// /// /// Requires ItemToggleComponent. /// public abstract partial class AbstractAnalyzerComponent : Component { /// /// When should the next update be sent for the patient /// /// /// Override this in your implementation with: /// /// ```cs /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] /// [AutoPausedField] /// public override TimeSpan NextUpdate { get; set; } = TimeSpan.Zero; /// ``` /// public abstract TimeSpan NextUpdate { get; set; } /// /// The delay between patient health updates /// [DataField] public TimeSpan UpdateInterval = TimeSpan.FromSeconds(1); /// /// How long it takes to scan someone. /// [DataField] public TimeSpan ScanDelay = TimeSpan.FromSeconds(0.8); /// /// Which entity has been scanned, for continuous updates /// [DataField] public EntityUid? ScannedEntity; /// /// The maximum range in tiles at which the analyzer can receive continuous updates /// [DataField] public float MaxScanRange = 2.5f; /// /// Sound played on scanning begin /// [DataField] public SoundSpecifier? ScanningBeginSound; /// /// Sound played on scanning end /// [DataField] public SoundSpecifier ScanningEndSound = new SoundPathSpecifier("/Audio/Items/Medical/healthscanner.ogg"); /// /// Whether to show up the popup /// [DataField] public bool Silent; }