using Content.Shared.Salvage;
+using Robust.Shared.Audio;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Server.Salvage.Expeditions;
[ViewVariables(VVAccess.ReadWrite), DataField("stage")]
public ExpeditionStage Stage = ExpeditionStage.Added;
+
+ /// <summary>
+ /// Countdown audio stream.
+ /// </summary>
+ public IPlayingAudioStream? Stream = null;
}
public enum ExpeditionStage : byte
private void OnExpeditionShutdown(EntityUid uid, SalvageExpeditionComponent component, ComponentShutdown args)
{
+ component.Stream?.Stop();
+
foreach (var (job, cancelToken) in _salvageJobs.ToArray())
{
if (job.Station == component.Station)
using Content.Server.Station.Components;
using Content.Shared.Chat;
using Content.Shared.Salvage;
+using Robust.Shared.Audio;
using Robust.Shared.Map.Components;
using Robust.Shared.Player;
using Robust.Shared.Utility;
comp.Stage = ExpeditionStage.FinalCountdown;
Announce(uid, Loc.GetString("salvage-expedition-announcement-countdown-seconds", ("duration", TimeSpan.FromSeconds(30).Seconds)));
}
- // TODO: Play song.
else if (comp.Stage < ExpeditionStage.Countdown && remaining < TimeSpan.FromMinutes(2))
{
+ // TODO: Some way to play audio attached to a map for players.
+ comp.Stream = _audio.PlayGlobal(new SoundPathSpecifier("/Audio/Misc/salvage.ogg"),
+ Filter.BroadcastMap(Comp<MapComponent>(uid).MapId), true, AudioParams.Default.WithVolume(-7));
comp.Stage = ExpeditionStage.Countdown;
Announce(uid, Loc.GetString("salvage-expedition-announcement-countdown-minutes", ("duration", TimeSpan.FromMinutes(2).Minutes)));
}
[Dependency] private readonly SharedPopupSystem _popupSystem = default!;
[Dependency] private readonly RadioSystem _radioSystem = default!;
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
+ [Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly ShuttleSystem _shuttle = default!;
[Dependency] private readonly ShuttleConsoleSystem _shuttleConsoles = default!;
license: "CC-BY-NC-SA-3.0"
copyright: "Taken from TG station."
source: "https://github.com/tgstation/tgstation/commit/97945e7d08d1457ffc27e46526a48c0453cc95e4"
+
+- files: ["salvage.ogg"]
+ license: "CC-BY-3.0"
+ copyright: "Created by qwertyquerty / discord coconatsu#4342"
+ source: "https://www.example.com/wagoogus" # It was sent via DM what do you want