Add salvage song (#15580)
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
using Content.Shared.Salvage;
|
using Content.Shared.Salvage;
|
||||||
|
using Robust.Shared.Audio;
|
||||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||||
|
|
||||||
namespace Content.Server.Salvage.Expeditions;
|
namespace Content.Server.Salvage.Expeditions;
|
||||||
@@ -33,6 +34,11 @@ public sealed class SalvageExpeditionComponent : Component
|
|||||||
|
|
||||||
[ViewVariables(VVAccess.ReadWrite), DataField("stage")]
|
[ViewVariables(VVAccess.ReadWrite), DataField("stage")]
|
||||||
public ExpeditionStage Stage = ExpeditionStage.Added;
|
public ExpeditionStage Stage = ExpeditionStage.Added;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Countdown audio stream.
|
||||||
|
/// </summary>
|
||||||
|
public IPlayingAudioStream? Stream = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ExpeditionStage : byte
|
public enum ExpeditionStage : byte
|
||||||
|
|||||||
@@ -84,6 +84,8 @@ public sealed partial class SalvageSystem
|
|||||||
|
|
||||||
private void OnExpeditionShutdown(EntityUid uid, SalvageExpeditionComponent component, ComponentShutdown args)
|
private void OnExpeditionShutdown(EntityUid uid, SalvageExpeditionComponent component, ComponentShutdown args)
|
||||||
{
|
{
|
||||||
|
component.Stream?.Stop();
|
||||||
|
|
||||||
foreach (var (job, cancelToken) in _salvageJobs.ToArray())
|
foreach (var (job, cancelToken) in _salvageJobs.ToArray())
|
||||||
{
|
{
|
||||||
if (job.Station == component.Station)
|
if (job.Station == component.Station)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using Content.Server.Shuttles.Systems;
|
|||||||
using Content.Server.Station.Components;
|
using Content.Server.Station.Components;
|
||||||
using Content.Shared.Chat;
|
using Content.Shared.Chat;
|
||||||
using Content.Shared.Salvage;
|
using Content.Shared.Salvage;
|
||||||
|
using Robust.Shared.Audio;
|
||||||
using Robust.Shared.Map.Components;
|
using Robust.Shared.Map.Components;
|
||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
@@ -125,9 +126,11 @@ public sealed partial class SalvageSystem
|
|||||||
comp.Stage = ExpeditionStage.FinalCountdown;
|
comp.Stage = ExpeditionStage.FinalCountdown;
|
||||||
Announce(uid, Loc.GetString("salvage-expedition-announcement-countdown-seconds", ("duration", TimeSpan.FromSeconds(30).Seconds)));
|
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))
|
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;
|
comp.Stage = ExpeditionStage.Countdown;
|
||||||
Announce(uid, Loc.GetString("salvage-expedition-announcement-countdown-minutes", ("duration", TimeSpan.FromMinutes(2).Minutes)));
|
Announce(uid, Loc.GetString("salvage-expedition-announcement-countdown-minutes", ("duration", TimeSpan.FromMinutes(2).Minutes)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ namespace Content.Server.Salvage
|
|||||||
[Dependency] private readonly SharedPopupSystem _popupSystem = default!;
|
[Dependency] private readonly SharedPopupSystem _popupSystem = default!;
|
||||||
[Dependency] private readonly RadioSystem _radioSystem = default!;
|
[Dependency] private readonly RadioSystem _radioSystem = default!;
|
||||||
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
|
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
|
||||||
|
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||||
[Dependency] private readonly ShuttleSystem _shuttle = default!;
|
[Dependency] private readonly ShuttleSystem _shuttle = default!;
|
||||||
[Dependency] private readonly ShuttleConsoleSystem _shuttleConsoles = default!;
|
[Dependency] private readonly ShuttleConsoleSystem _shuttleConsoles = default!;
|
||||||
|
|||||||
@@ -2,3 +2,8 @@
|
|||||||
license: "CC-BY-NC-SA-3.0"
|
license: "CC-BY-NC-SA-3.0"
|
||||||
copyright: "Taken from TG station."
|
copyright: "Taken from TG station."
|
||||||
source: "https://github.com/tgstation/tgstation/commit/97945e7d08d1457ffc27e46526a48c0453cc95e4"
|
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
|
||||||
|
|||||||
BIN
Resources/Audio/Misc/salvage.ogg
Normal file
BIN
Resources/Audio/Misc/salvage.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user