Round end audio (#8048)
This commit is contained in:
@@ -70,15 +70,18 @@ namespace Content.Client.Audio
|
|||||||
private void StateManagerOnStateChanged(StateChangedEventArgs args)
|
private void StateManagerOnStateChanged(StateChangedEventArgs args)
|
||||||
{
|
{
|
||||||
EndAmbience();
|
EndAmbience();
|
||||||
EndLobbyMusic();
|
|
||||||
if (args.NewState is LobbyState && _configManager.GetCVar(CCVars.LobbyMusicEnabled))
|
if (args.NewState is LobbyState && _configManager.GetCVar(CCVars.LobbyMusicEnabled))
|
||||||
{
|
{
|
||||||
StartLobbyMusic();
|
StartLobbyMusic();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else if (args.NewState is GameScreen)
|
else if (args.NewState is GameScreen)
|
||||||
{
|
{
|
||||||
StartAmbience();
|
StartAmbience();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EndLobbyMusic();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnJoin(object? sender, PlayerEventArgs args)
|
private void OnJoin(object? sender, PlayerEventArgs args)
|
||||||
@@ -156,9 +159,17 @@ namespace Content.Client.Audio
|
|||||||
StartLobbyMusic();
|
StartLobbyMusic();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void StartLobbyMusic()
|
|
||||||
|
public void RestartLobbyMusic()
|
||||||
{
|
{
|
||||||
EndLobbyMusic();
|
EndLobbyMusic();
|
||||||
|
StartLobbyMusic();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StartLobbyMusic()
|
||||||
|
{
|
||||||
|
if (_lobbyStream != null) return;
|
||||||
|
|
||||||
var file = _gameTicker.LobbySong;
|
var file = _gameTicker.LobbySong;
|
||||||
if (file == null) // We have not received the lobby song yet.
|
if (file == null) // We have not received the lobby song yet.
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Content.Client.Audio;
|
||||||
using Content.Client.Lobby;
|
using Content.Client.Lobby;
|
||||||
using Content.Client.RoundEnd;
|
using Content.Client.RoundEnd;
|
||||||
using Content.Client.Viewport;
|
using Content.Client.Viewport;
|
||||||
@@ -121,6 +122,12 @@ namespace Content.Client.GameTicking.Managers
|
|||||||
|
|
||||||
private void RoundEnd(RoundEndMessageEvent message)
|
private void RoundEnd(RoundEndMessageEvent message)
|
||||||
{
|
{
|
||||||
|
if (message.LobbySong != null)
|
||||||
|
{
|
||||||
|
LobbySong = message.LobbySong;
|
||||||
|
Get<BackgroundAudioSystem>().StartLobbyMusic();
|
||||||
|
}
|
||||||
|
|
||||||
//This is not ideal at all, but I don't see an immediately better fit anywhere else.
|
//This is not ideal at all, but I don't see an immediately better fit anywhere else.
|
||||||
var roundEnd = new RoundEndSummaryWindow(message.GamemodeTitle, message.RoundEndText, message.RoundDuration, message.RoundId, message.AllPlayersEndInfo);
|
var roundEnd = new RoundEndSummaryWindow(message.GamemodeTitle, message.RoundEndText, message.RoundDuration, message.RoundId, message.AllPlayersEndInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -326,7 +326,7 @@ namespace Content.Server.GameTicking
|
|||||||
// This ordering mechanism isn't great (no ordering of minds) but functions
|
// This ordering mechanism isn't great (no ordering of minds) but functions
|
||||||
var listOfPlayerInfoFinal = listOfPlayerInfo.OrderBy(pi => pi.PlayerOOCName).ToArray();
|
var listOfPlayerInfoFinal = listOfPlayerInfo.OrderBy(pi => pi.PlayerOOCName).ToArray();
|
||||||
_playersInGame.Clear();
|
_playersInGame.Clear();
|
||||||
RaiseNetworkEvent(new RoundEndMessageEvent(gamemodeTitle, roundEndText, roundDuration, RoundId, listOfPlayerInfoFinal.Length, listOfPlayerInfoFinal));
|
RaiseNetworkEvent(new RoundEndMessageEvent(gamemodeTitle, roundEndText, roundDuration, RoundId, listOfPlayerInfoFinal.Length, listOfPlayerInfoFinal, LobbySong));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RestartRound()
|
public void RestartRound()
|
||||||
@@ -351,6 +351,7 @@ namespace Content.Server.GameTicking
|
|||||||
LobbySong = _robustRandom.Pick(_lobbyMusicCollection.PickFiles).ToString();
|
LobbySong = _robustRandom.Pick(_lobbyMusicCollection.PickFiles).ToString();
|
||||||
RandomizeLobbyBackground();
|
RandomizeLobbyBackground();
|
||||||
ResettingCleanup();
|
ResettingCleanup();
|
||||||
|
SoundSystem.Play(Filter.Broadcast(), new SoundCollectionSpecifier("RoundEnd").GetSound());
|
||||||
|
|
||||||
if (!LobbyEnabled)
|
if (!LobbyEnabled)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -138,9 +138,16 @@ namespace Content.Shared.GameTicking
|
|||||||
public int RoundId { get; }
|
public int RoundId { get; }
|
||||||
public int PlayerCount { get; }
|
public int PlayerCount { get; }
|
||||||
public RoundEndPlayerInfo[] AllPlayersEndInfo { get; }
|
public RoundEndPlayerInfo[] AllPlayersEndInfo { get; }
|
||||||
|
public string? LobbySong;
|
||||||
|
|
||||||
public RoundEndMessageEvent(string gamemodeTitle, string roundEndText, TimeSpan roundDuration, int roundId,
|
public RoundEndMessageEvent(
|
||||||
int playerCount, RoundEndPlayerInfo[] allPlayersEndInfo)
|
string gamemodeTitle,
|
||||||
|
string roundEndText,
|
||||||
|
TimeSpan roundDuration,
|
||||||
|
int roundId,
|
||||||
|
int playerCount,
|
||||||
|
RoundEndPlayerInfo[] allPlayersEndInfo,
|
||||||
|
string? lobbySong)
|
||||||
{
|
{
|
||||||
GamemodeTitle = gamemodeTitle;
|
GamemodeTitle = gamemodeTitle;
|
||||||
RoundEndText = roundEndText;
|
RoundEndText = roundEndText;
|
||||||
@@ -148,6 +155,7 @@ namespace Content.Shared.GameTicking
|
|||||||
RoundId = roundId;
|
RoundId = roundId;
|
||||||
PlayerCount = playerCount;
|
PlayerCount = playerCount;
|
||||||
AllPlayersEndInfo = allPlayersEndInfo;
|
AllPlayersEndInfo = allPlayersEndInfo;
|
||||||
|
LobbySong = lobbySong;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
BIN
Resources/Audio/Announcements/RoundEnd/apc_destroyed.ogg
Normal file
BIN
Resources/Audio/Announcements/RoundEnd/apc_destroyed.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Announcements/RoundEnd/bangin_donk.ogg
Normal file
BIN
Resources/Audio/Announcements/RoundEnd/bangin_donk.ogg
Normal file
Binary file not shown.
3
Resources/Audio/Announcements/RoundEnd/license.txt
Normal file
3
Resources/Audio/Announcements/RoundEnd/license.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
apc_destroyed.ogg taken from https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a used under CC-BY-SA-3.0
|
||||||
|
bangin_donk.ogg taken from /tg/station at commit https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a used under CC-BY-SA-3.0
|
||||||
|
|
||||||
5
Resources/Prototypes/SoundCollections/announcements.yml
Normal file
5
Resources/Prototypes/SoundCollections/announcements.yml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
- type: soundCollection
|
||||||
|
id: RoundEnd
|
||||||
|
files:
|
||||||
|
- /Audio/Announcements/RoundEnd/apc_destroyed.ogg
|
||||||
|
- /Audio/Announcements/RoundEnd/bangin_donk.ogg
|
||||||
Reference in New Issue
Block a user