using Content.Server.Shuttles.Systems;
using Robust.Shared.Audio;
using Robust.Shared.Serialization.TypeSerializers.Implementations;
using Robust.Shared.Utility;
namespace Content.Server.Shuttles.Components;
///
/// This is used for controlling evacuation for a station.
///
[RegisterComponent]
public sealed partial class StationEmergencyShuttleComponent : Component
{
///
/// The emergency shuttle assigned to this station.
///
[DataField, Access(typeof(ShuttleSystem), typeof(EmergencyShuttleSystem), Friend = AccessPermissions.ReadWrite)]
public EntityUid? EmergencyShuttle;
///
/// Emergency shuttle map path for this station.
///
[DataField("emergencyShuttlePath", customTypeSerializer: typeof(ResPathSerializer))]
public ResPath EmergencyShuttlePath { get; set; } = new("/Maps/Shuttles/emergency.yml");
///
/// The announcement made when the shuttle has successfully docked with the station.
///
public LocId DockedAnnouncement = "emergency-shuttle-docked";
///
/// Sound played when the shuttle has successfully docked with the station.
///
public SoundSpecifier DockedAudio = new SoundPathSpecifier("/Audio/Announcements/shuttle_dock.ogg");
///
/// The announcement made when the shuttle is unable to dock and instead parks in nearby space.
///
public LocId NearbyAnnouncement = "emergency-shuttle-nearby";
///
/// Sound played when the shuttle is unable to dock and instead parks in nearby space.
///
public SoundSpecifier NearbyAudio = new SoundPathSpecifier("/Audio/Misc/notice1.ogg");
///
/// The announcement made when the shuttle is unable to find a station.
///
public LocId FailureAnnouncement = "emergency-shuttle-good-luck";
///
/// Sound played when the shuttle is unable to find a station.
///
public SoundSpecifier FailureAudio = new SoundPathSpecifier("/Audio/Misc/notice1.ogg");
///
/// Text appended to the docking announcement if the launch time has been extended.
///
public LocId LaunchExtendedMessage = "emergency-shuttle-extended";
}