using Robust.Shared.Audio; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Medical.Components; /// /// After scanning, retrieves the target Uid to use with its related UI. /// /// /// Requires ItemToggleComponent. /// [RegisterComponent, AutoGenerateComponentPause] [Access(typeof(HealthAnalyzerSystem), typeof(CryoPodSystem))] public sealed partial class HealthAnalyzerComponent : Component { /// /// When should the next update be sent for the patient /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan NextUpdate = TimeSpan.Zero; /// /// 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, a value of null will be infinite range /// [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; }