Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaServer/ServerSource/GameSession/CrewManager.cs
Juan Pablo Arce 0002ad2c50 v0.10.5.1
2020-09-22 11:31:56 -03:00

48 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using Barotrauma.Networking;
namespace Barotrauma
{
partial class CrewManager
{
partial void CreateRandomConversation()
{
List<Character> availableSpeakers = Character.CharacterList.FindAll(c =>
c.AIController is HumanAIController &&
!c.IsDead &&
c.SpeechImpediment <= 100.0f);
foreach (Client client in GameMain.Server.ConnectedClients)
{
if (client.Character != null) availableSpeakers.Remove(client.Character);
}
pendingConversationLines.AddRange(NPCConversation.CreateRandom(availableSpeakers));
}
/// <summary>
/// Saves bots in multiplayer
/// </summary>
/// <param name="root"></param>
public void SaveMultiplayer(XElement root)
{
XElement saveElement = new XElement("bots", new XAttribute("hasbots", HasBots));
foreach (CharacterInfo info in characterInfos)
{
if (Level.Loaded != null)
{
if (!info.IsNewHire && (info.Character == null || info.Character.IsDead)) { continue; }
}
XElement characterElement = info.Save(saveElement);
if (info.InventoryData != null) { characterElement.Add(info.InventoryData); }
if (info.HealthData != null) { characterElement.Add(info.HealthData); }
}
root.Add(saveElement);
}
}
}