Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/CharacterCampaignData.cs
2021-08-13 17:52:45 +09:00

62 lines
1.8 KiB
C#

using Barotrauma.Networking;
namespace Barotrauma
{
partial class CharacterCampaignData
{
public bool HasSpawned;
public bool HasItemData
{
get { return itemData != null; }
}
partial void InitProjSpecific(Client client)
{
ClientEndPoint = client.Connection.EndPointString;
SteamID = client.SteamID;
CharacterInfo = client.CharacterInfo;
}
public bool MatchesClient(Client client)
{
if (SteamID > 0)
{
return SteamID == client.SteamID;
}
else
{
return ClientEndPoint == client.Connection.EndPointString;
}
}
public bool IsDuplicate(CharacterCampaignData other)
{
return other.SteamID == SteamID && other.ClientEndPoint == ClientEndPoint;
}
public void SpawnInventoryItems(Character character, Inventory inventory)
{
if (character == null)
{
throw new System.InvalidOperationException($"Failed to spawn inventory items. Character was null.");
}
if (itemData == null)
{
throw new System.InvalidOperationException($"Failed to spawn inventory items for the character \"{character.Name}\". No saved inventory data.");
}
character.SpawnInventoryItems(inventory, itemData);
}
public void ApplyHealthData(Character character)
{
CharacterInfo.ApplyHealthData(character, healthData);
}
public void ApplyOrderData(Character character)
{
CharacterInfo.ApplyOrderData(character, OrderData);
}
}
}