using Content.Shared.Medical.SuitSensor; using Robust.Shared.Audio; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Medical.CrewMonitoring; [RegisterComponent] [Access(typeof(CrewMonitoringConsoleSystem))] public sealed partial class CrewMonitoringConsoleComponent : Component { /// /// List of all currently connected sensors to this console. /// public Dictionary ConnectedSensors = new(); /// /// After what time sensor consider to be lost. /// [DataField("sensorTimeout"), ViewVariables(VVAccess.ReadWrite)] public float SensorTimeout = 10f; /// /// Whether the console should beep when corpses with sensors are detected outside morgues. /// [DataField("doCorpseAlert"), ViewVariables(VVAccess.ReadWrite)] public bool DoCorpseAlert = false; /// /// Next time to check for corpses and potentially play alert sound. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] public TimeSpan NextCorpseAlertTime = TimeSpan.Zero; /// /// The amount of time between each corpse alert beep. /// [DataField("corpseAlertTime"), ViewVariables(VVAccess.ReadWrite)] public float CorpseAlertTime = 15f; /// /// Sound to play when corpses with sensors are detected outside morgues. /// [DataField("corpseAlertSound")] public SoundSpecifier CorpseAlertSound = new SoundPathSpecifier("/Audio/Weapons/Guns/EmptyAlarm/smg_empty_alarm.ogg"); }