62 lines
1.7 KiB
C#
62 lines
1.7 KiB
C#
using UnityEngine.Scripting;
|
|
|
|
[Preserve]
|
|
public class NetPackageAddCompanion : NetPackage
|
|
{
|
|
public NetPackageAddCompanion Setup(int _npcEntityID, int _ownerID)
|
|
{
|
|
this.npcEntityID = _npcEntityID;
|
|
this.ownerID = _ownerID;
|
|
|
|
return this;
|
|
}
|
|
|
|
public override void read(PooledBinaryReader _reader)
|
|
{
|
|
this.npcEntityID = _reader.ReadInt32();
|
|
this.ownerID = _reader.ReadInt32();
|
|
}
|
|
|
|
public override void write(PooledBinaryWriter _writer)
|
|
{
|
|
base.write(_writer);
|
|
_writer.Write(this.npcEntityID);
|
|
_writer.Write(this.ownerID);
|
|
}
|
|
|
|
public override void ProcessPackage(World _world, GameManager _callbacks)
|
|
{
|
|
//Log.Out("NetPackageAddCompanion-ProcessPackage 1");
|
|
if (_world == null || !_world.IsRemote())
|
|
{
|
|
//Log.Out("NetPackageAddCompanion-ProcessPackage 2");
|
|
return;
|
|
}
|
|
|
|
EntityNPCRebirth npc = _world.GetEntity(this.npcEntityID) as EntityNPCRebirth;
|
|
|
|
if (npc != null)
|
|
{
|
|
//Log.Out("NetPackageAddCompanion-ProcessPackage 3, ownerID: " + ownerID);
|
|
EntityPlayerLocal primaryPlayer = GameManager.Instance.World.GetPrimaryPlayer();
|
|
|
|
if (primaryPlayer != null && ownerID == primaryPlayer.entityId)
|
|
{
|
|
//Log.Out("NetPackageAddCompanion-ProcessPackage 4");
|
|
npc.Buffs.SetCustomVar("$Leader", primaryPlayer.entityId);
|
|
npc.Buffs.SetCustomVar("$delayedPickup", 1f);
|
|
|
|
npc.LeaderUtils.AddCompanion();
|
|
}
|
|
}
|
|
}
|
|
|
|
public override int GetLength()
|
|
{
|
|
return 2;
|
|
}
|
|
|
|
private int npcEntityID;
|
|
private int ownerID;
|
|
}
|