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");
}