using Content.Shared.Medical.SuitSensor;
using Robust.Shared.Audio; // DeltaV
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; // DeltaV
namespace Content.Server.Medical.CrewMonitoring;
[RegisterComponent, AutoGenerateComponentPause] // DeltaV - add AutoGenerateComponentPause
[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;
// DeltaV - start of alert system code
///
/// Should the component beep if someone goes critical or dies
///
[DataField]
public bool AlertsEnabled = true;
///
/// Track sensors that have triggered the crew member critical alert.
///
public HashSet AlertedSensors = [];
///
/// Timestamp of the next possible alert (alert cooldown)
///
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField]
public TimeSpan NextAlert;
///
/// Time between alerts
///
[DataField]
public TimeSpan AlertCooldown = TimeSpan.FromSeconds(15);
///
/// Alert sound that is played when a crew member goes into critical / dies.
///
[DataField]
public SoundSpecifier AlertSound = new SoundPathSpecifier("/Audio/_DV/Medical/CrewMonitoring/crew_alert.ogg");
// DeltaV - end of alert system code
}