using System.Threading; using Content.Server.UserInterface; using Content.Shared.MedicalScanner; using Content.Shared.Disease; using Robust.Server.GameObjects; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Medical.Components { /// /// After scanning, retrieves the target Uid to use with its related UI. /// [RegisterComponent] [ComponentReference(typeof(SharedHealthAnalyzerComponent))] public sealed class HealthAnalyzerComponent : SharedHealthAnalyzerComponent { /// /// How long it takes to scan someone. /// [DataField("scanDelay")] [ViewVariables] public float ScanDelay = 0.8f; /// /// Token for interrupting scanning do after. /// public CancellationTokenSource? CancelToken; public BoundUserInterface? UserInterface => Owner.GetUIOrNull(HealthAnalyzerUiKey.Key); /// /// Is this actually going to give people the disease below /// [DataField("fake")] [ViewVariables(VVAccess.ReadWrite)] public bool Fake = false; /// /// The disease this will give people if Fake == true /// [DataField("disease", customTypeSerializer: typeof(PrototypeIdSerializer))] [ViewVariables(VVAccess.ReadWrite)] public string Disease = string.Empty; } }