diff --git a/Content.Server/Shuttles/Components/StationEmergencyShuttleComponent.cs b/Content.Server/Shuttles/Components/StationEmergencyShuttleComponent.cs
index 58d23ee432..d4fcfb81c6 100644
--- a/Content.Server/Shuttles/Components/StationEmergencyShuttleComponent.cs
+++ b/Content.Server/Shuttles/Components/StationEmergencyShuttleComponent.cs
@@ -1,4 +1,5 @@
using Content.Server.Shuttles.Systems;
+using Robust.Shared.Audio;
using Robust.Shared.Serialization.TypeSerializers.Implementations;
using Robust.Shared.Utility;
@@ -21,4 +22,39 @@ public sealed partial class StationEmergencyShuttleComponent : Component
///
[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";
}
diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs
index 8c1ad1a864..0f0da2294f 100644
--- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs
+++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs
@@ -326,6 +326,7 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem
///
public void AnnounceShuttleDock(ShuttleDockResult result, bool extended)
{
+ var stationShuttleComp = result.Station.Comp;
var shuttle = result.Station.Comp.EmergencyShuttle;
DebugTools.Assert(shuttle != null);
@@ -334,11 +335,11 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem
{
_chatSystem.DispatchStationAnnouncement(
result.Station,
- Loc.GetString("emergency-shuttle-good-luck"),
+ Loc.GetString(stationShuttleComp.FailureAnnouncement),
playDefaultSound: false);
// TODO: Need filter extensions or something don't blame me.
- _audio.PlayGlobal("/Audio/Misc/notice1.ogg", Filter.Broadcast(), true);
+ _audio.PlayGlobal(stationShuttleComp.FailureAudio, Filter.Broadcast(), true);
return;
}
@@ -357,10 +358,10 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem
var location = FormattedMessage.RemoveMarkupPermissive(
_navMap.GetNearestBeaconString((shuttle.Value, Transform(shuttle.Value))));
- var extendedText = extended ? Loc.GetString("emergency-shuttle-extended") : "";
+ var extendedText = extended ? Loc.GetString(stationShuttleComp.LaunchExtendedMessage) : "";
var locKey = result.ResultType == ShuttleDockResultType.NoDock
- ? "emergency-shuttle-nearby"
- : "emergency-shuttle-docked";
+ ? stationShuttleComp.NearbyAnnouncement
+ : stationShuttleComp.DockedAnnouncement;
_chatSystem.DispatchStationAnnouncement(
result.Station,
@@ -393,8 +394,8 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem
// Play announcement audio.
var audioFile = result.ResultType == ShuttleDockResultType.NoDock
- ? "/Audio/Misc/notice1.ogg"
- : "/Audio/Announcements/shuttle_dock.ogg";
+ ? stationShuttleComp.NearbyAudio
+ : stationShuttleComp.DockedAudio;
// TODO: Need filter extensions or something don't blame me.
_audio.PlayGlobal(audioFile, Filter.Broadcast(), true);