Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaClient/ClientSource/GameSession/UpgradeManager.cs
2021-05-20 16:12:54 +03:00

43 lines
1.2 KiB
C#

#nullable enable
using System;
using System.Linq;
using Barotrauma.Networking;
namespace Barotrauma
{
partial class UpgradeManager
{
partial void UpgradeNPCSpeak(string text, bool isSinglePlayer, Character? character)
{
if (Level.Loaded?.StartOutpost?.Info?.OutpostNPCs == null) { return; }
if (character != null)
{
Speak(character);
return;
}
foreach (Character npc in Level.Loaded.StartOutpost.Info.OutpostNPCs.SelectMany(kpv => kpv.Value))
{
if (npc.CampaignInteractionType == CampaignMode.InteractionType.Upgrade)
{
Speak(npc);
break;
}
}
void Speak(Character npc)
{
ChatMessage message = ChatMessage.Create(npc.Name, text, ChatMessageType.Default, npc);
if (!isSinglePlayer)
{
GameMain.Client?.AddChatMessage(message);
}
else
{
GameMain.GameSession?.CrewManager?.AddSinglePlayerChatMessage(message);
}
}
}
}
}