Add a Color parameter to dispatching announcements, change the color of certain common messages (#6840)

This commit is contained in:
Chris V
2022-03-01 05:21:28 -08:00
committed by GitHub
parent 85736bfd6b
commit 3a31a33075
7 changed files with 21 additions and 14 deletions

View File

@@ -109,19 +109,19 @@ namespace Content.Server.Chat.Managers
DispatchServerAnnouncement(Loc.GetString(val ? "chat-manager-admin-ooc-chat-enabled-message" : "chat-manager-admin-ooc-chat-disabled-message"));
}
public void DispatchServerAnnouncement(string message)
public void DispatchServerAnnouncement(string message, Color? colorOverride = null)
{
var messageWrap = Loc.GetString("chat-manager-server-wrap-message");
NetMessageToAll(ChatChannel.Server, message, messageWrap);
NetMessageToAll(ChatChannel.Server, message, messageWrap, colorOverride);
Logger.InfoS("SERVER", message);
_logs.Add(LogType.Chat, LogImpact.Low, $"Server announcement: {message}");
}
public void DispatchStationAnnouncement(string message, string sender = "Central Command", bool playDefaultSound = true)
public void DispatchStationAnnouncement(string message, string sender = "Central Command", bool playDefaultSound = true, Color? colorOverride = null)
{
var messageWrap = Loc.GetString("chat-manager-sender-announcement-wrap-message", ("sender", sender));
NetMessageToAll(ChatChannel.Radio, message, messageWrap);
NetMessageToAll(ChatChannel.Radio, message, messageWrap, colorOverride);
if (playDefaultSound)
{
SoundSystem.Play(Filter.Broadcast(), "/Audio/Announcements/announce.ogg", AudioParams.Default.WithVolume(-2f));
@@ -596,12 +596,16 @@ namespace Content.Server.Chat.Managers
_netManager.ServerSendMessage(msg, client);
}
public void NetMessageToAll(ChatChannel channel, string message, string messageWrap)
public void NetMessageToAll(ChatChannel channel, string message, string messageWrap, Color? colorOverride = null)
{
var msg = _netManager.CreateNetMessage<MsgChatMessage>();
msg.Channel = channel;
msg.Message = message;
msg.MessageWrap = messageWrap;
if (colorOverride != null)
{
msg.MessageColorOverride = colorOverride.Value;
}
_netManager.ServerSendToAll(msg);
}

View File

@@ -12,7 +12,9 @@ namespace Content.Server.Chat.Managers
/// <summary>
/// Dispatch a server announcement to every connected player.
/// </summary>
void DispatchServerAnnouncement(string message);
/// <param name="message"></param>
/// <param name="colorOverride">Override the color of the message being sent.</param>
void DispatchServerAnnouncement(string message, Color? colorOverride = null);
/// <summary>
/// Station announcement to every player
@@ -20,7 +22,8 @@ namespace Content.Server.Chat.Managers
/// <param name="message"></param>
/// <param name="sender"></param>
/// <param name="playDefaultSound">If the default 'PA' sound should be played.</param>
void DispatchStationAnnouncement(string message, string sender = "CentComm", bool playDefaultSound = true);
/// <param name="colorOverride">Override the color of the message being sent.</param>
void DispatchStationAnnouncement(string message, string sender = "CentComm", bool playDefaultSound = true, Color? colorOverride = null);
void DispatchServerMessage(IPlayerSession player, string message);

View File

@@ -109,7 +109,7 @@ namespace Content.Server.Communications
}
message += $"\nSent by {author}";
_chatManager.DispatchStationAnnouncement(message, "Communications Console");
_chatManager.DispatchStationAnnouncement(message, "Communications Console", colorOverride: Color.Gold);
break;
}
}

View File

@@ -335,7 +335,7 @@ namespace Content.Server.Nuke
var announcement = Loc.GetString("nuke-component-announcement-armed",
("time", (int) component.RemainingTime));
var sender = Loc.GetString("nuke-component-announcement-sender");
_chat.DispatchStationAnnouncement(announcement, sender, false);
_chat.DispatchStationAnnouncement(announcement, sender, false, Color.Red);
// todo: move it to announcements system
SoundSystem.Play(Filter.Broadcast(), component.ArmSound.GetSound());

View File

@@ -84,7 +84,7 @@ namespace Content.Server.RoundEnd
_adminLog.Add(LogType.ShuttleCalled, LogImpact.High, $"Shuttle called");
}
_chatManager.DispatchStationAnnouncement(Loc.GetString("round-end-system-shuttle-called-announcement",("minutes", countdownTime.Minutes)), Loc.GetString("Station"), false);
_chatManager.DispatchStationAnnouncement(Loc.GetString("round-end-system-shuttle-called-announcement",("minutes", countdownTime.Minutes)), Loc.GetString("Station"), false, Color.Gold);
SoundSystem.Play(Filter.Broadcast(), "/Audio/Announcements/shuttlecalled.ogg");

View File

@@ -294,9 +294,9 @@ namespace Content.Server.Salvage
return true;
}
private void Report(string messageKey) =>
_chatManager.DispatchStationAnnouncement(Loc.GetString(messageKey), Loc.GetString("salvage-system-announcement-source"));
_chatManager.DispatchStationAnnouncement(Loc.GetString(messageKey), Loc.GetString("salvage-system-announcement-source"), colorOverride: Color.Orange);
private void Report(string messageKey, params (string, object)[] args) =>
_chatManager.DispatchStationAnnouncement(Loc.GetString(messageKey, args), Loc.GetString("salvage-system-announcement-source"));
_chatManager.DispatchStationAnnouncement(Loc.GetString(messageKey, args), Loc.GetString("salvage-system-announcement-source"), colorOverride: Color.Orange);
private void Transition(SalvageMagnetComponent magnet, TimeSpan currentTime)
{

View File

@@ -132,7 +132,7 @@ namespace Content.Server.StationEvents.Events
if (StartAnnouncement != null)
{
var chatManager = IoCManager.Resolve<IChatManager>();
chatManager.DispatchStationAnnouncement(StartAnnouncement, playDefaultSound: false);
chatManager.DispatchStationAnnouncement(StartAnnouncement, playDefaultSound: false, colorOverride: Color.Gold);
}
if (StartAudio != null)
@@ -155,7 +155,7 @@ namespace Content.Server.StationEvents.Events
if (EndAnnouncement != null)
{
var chatManager = IoCManager.Resolve<IChatManager>();
chatManager.DispatchStationAnnouncement(EndAnnouncement, playDefaultSound: false);
chatManager.DispatchStationAnnouncement(EndAnnouncement, playDefaultSound: false, colorOverride: Color.Gold);
}
if (EndAudio != null)