49 lines
1.8 KiBLFS
C#
Executable File
49 lines
1.8 KiBLFS
C#
Executable File
using Barotrauma.Networking;
|
|
using Barotrauma;
|
|
using MoreLevelContent.Shared;
|
|
|
|
namespace MoreLevelContent.Missions
|
|
{
|
|
// Client
|
|
partial class MissionNPCCollection
|
|
{
|
|
internal void Read(IReadMessage msg)
|
|
{
|
|
bool hasCharacters = msg.ReadBoolean();
|
|
if (!hasCharacters)
|
|
{
|
|
Log.Debug("Mission has no characters");
|
|
return;
|
|
}
|
|
byte characterCount = msg.ReadByte();
|
|
for (int i = 0; i < characterCount; i++)
|
|
{
|
|
Character character = Character.ReadSpawnData(msg);
|
|
bool allowOrdering = msg.ReadBoolean();
|
|
characters.Add(character);
|
|
if (allowOrdering)
|
|
{
|
|
_ = GameMain.GameSession.CrewManager.AddCharacterToCrewList(character);
|
|
Log.InternalDebug($"Added character {character.Name} to crew list");
|
|
}
|
|
ushort itemCount = msg.ReadUInt16();
|
|
for (int j = 0; j < itemCount; j++)
|
|
{
|
|
Item.ReadSpawnData(msg);
|
|
}
|
|
}
|
|
if (characters.Contains(null))
|
|
{
|
|
throw new System.Exception("Error in EscortMission.ClientReadInitial: character list contains null (mission: " + mission.Prefab.Identifier + ")");
|
|
}
|
|
|
|
if (characters.Count != characterCount)
|
|
{
|
|
throw new System.Exception("Error in EscortMission.ClientReadInitial: character count does not match the server count (" + characterCount + " != " + characters.Count + "mission: " + mission.Prefab.Identifier + ")");
|
|
}
|
|
|
|
InitCharacters();
|
|
}
|
|
}
|
|
}
|