154 lines
8.1 KiB
C#
154 lines
8.1 KiB
C#
public class NetPackageForceTeleportRebirth : NetPackage
|
|
{
|
|
private int entityToUpdate;
|
|
|
|
public NetPackageForceTeleportRebirth Setup(int _entityToUpdate)
|
|
{
|
|
this.entityToUpdate = _entityToUpdate;
|
|
return this;
|
|
}
|
|
|
|
public override void read(PooledBinaryReader _br)
|
|
{
|
|
this.entityToUpdate = _br.ReadInt32();
|
|
}
|
|
|
|
public override void write(PooledBinaryWriter _bw)
|
|
{
|
|
base.write(_bw);
|
|
_bw.Write(this.entityToUpdate);
|
|
}
|
|
|
|
public override int GetLength()
|
|
{
|
|
return 4;
|
|
}
|
|
|
|
public override void ProcessPackage(World _world, GameManager _callbacks)
|
|
{
|
|
//Log.Out("NetPackageForceTeleportRebirth-ProcessPackage START");
|
|
if (_world == null)
|
|
{
|
|
//Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 1");
|
|
return;
|
|
}
|
|
|
|
/*if (!_world.IsRemote())
|
|
{
|
|
//Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 2");
|
|
return;
|
|
}*/
|
|
|
|
Entity myEntity = _world.GetEntity(this.entityToUpdate);
|
|
if (myEntity != null)
|
|
{
|
|
//Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 3");
|
|
if (myEntity is EntityNPCRebirth)
|
|
{
|
|
//Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 4");
|
|
EntityNPCRebirth follower = (EntityNPCRebirth)myEntity;
|
|
|
|
if (follower.LeaderUtils.Owner)
|
|
{
|
|
//Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 5");
|
|
|
|
//Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 6");
|
|
|
|
bool hasFireBuff = follower.Buffs.HasBuff("buffBurningFlamingArrow") ||
|
|
follower.Buffs.HasBuff("buffBurningMolotov") ||
|
|
follower.Buffs.HasBuff("buffBurningEnvironmentHack") ||
|
|
follower.Buffs.HasBuff("buffBurningEnvironment") ||
|
|
follower.Buffs.HasBuff("buffBurningElement") ||
|
|
follower.Buffs.HasBuff("buffIsOnFire") ||
|
|
follower.Buffs.HasBuff("FuriousRamsayFireZombieAoEDamage") ||
|
|
follower.Buffs.HasBuff("FuriousRamsayFireZombieAoEDamageDisplay") ||
|
|
follower.Buffs.HasBuff("FuriousRamsayAddBurningEnemyBoss") ||
|
|
follower.Buffs.HasBuff("FuriousRamsayBurningTrapDamage");
|
|
// On Fire
|
|
if (hasFireBuff && follower.Buffs.GetCustomVar("CurrentOrder") == (int)EntityUtilities.Orders.Follow)
|
|
{
|
|
ItemValue itemBoiledWater = ItemClass.GetItem("drinkJarBoiledWater", false);
|
|
ItemClass itemClassBoiledWater = itemBoiledWater.ItemClass;
|
|
int itemCountBoiledWater = follower.LeaderUtils.Owner.bag.GetItemCount(itemBoiledWater, -1, -1, false);
|
|
int itemCount2BoiledWater = follower.LeaderUtils.Owner.inventory.GetItemCount(itemBoiledWater, false, -1, -1);
|
|
if (itemClassBoiledWater != null)
|
|
{
|
|
itemCountBoiledWater = follower.LeaderUtils.Owner.bag.GetItemCount(itemBoiledWater, -1, -1, false);
|
|
itemCount2BoiledWater = follower.LeaderUtils.Owner.inventory.GetItemCount(itemBoiledWater, false, -1, -1);
|
|
}
|
|
|
|
ItemValue itemDistilledWater = ItemClass.GetItem("drinkJarPureMineralWater", false);
|
|
ItemClass itemClassDistilledWater = itemDistilledWater.ItemClass;
|
|
int itemCountDistilledWater = follower.LeaderUtils.Owner.bag.GetItemCount(itemDistilledWater, -1, -1, false);
|
|
int itemCount2DistilledWater = follower.LeaderUtils.Owner.inventory.GetItemCount(itemDistilledWater, false, -1, -1);
|
|
if (itemClassDistilledWater != null)
|
|
{
|
|
itemCountDistilledWater = follower.LeaderUtils.Owner.bag.GetItemCount(itemDistilledWater, -1, -1, false);
|
|
itemCount2DistilledWater = follower.LeaderUtils.Owner.inventory.GetItemCount(itemDistilledWater, false, -1, -1);
|
|
}
|
|
|
|
if ((itemCountDistilledWater + itemCount2DistilledWater) > 0)
|
|
{
|
|
if (itemCount2DistilledWater > 0)
|
|
{
|
|
follower.LeaderUtils.Owner.inventory.DecItem(itemDistilledWater, 1, false);
|
|
}
|
|
else
|
|
{
|
|
follower.LeaderUtils.Owner.bag.DecItem(itemDistilledWater, 1, false);
|
|
}
|
|
//LocalPlayerUI.GetUIForPlayer(entityPlayer).xui.CollectedItemList.RemoveItemStack(new ItemStack(itemDistilledWater, 1));
|
|
follower.Buffs.AddBuff("buffExtinguishFire");
|
|
follower.Buffs.RemoveBuff("buffBurningFlamingArrow");
|
|
follower.Buffs.RemoveBuff("buffBurningMolotov");
|
|
follower.Buffs.RemoveBuff("buffBurningEnvironmentHack");
|
|
follower.Buffs.RemoveBuff("buffBurningEnvironment");
|
|
follower.Buffs.RemoveBuff("buffBurningElement");
|
|
follower.Buffs.RemoveBuff("buffIsOnFire");
|
|
follower.Buffs.RemoveBuff("FuriousRamsayFireZombieAoEDamage");
|
|
follower.Buffs.RemoveBuff("FuriousRamsayFireZombieAoEDamageDisplay");
|
|
follower.Buffs.RemoveBuff("FuriousRamsayAddBurningEnemyBoss");
|
|
follower.Buffs.RemoveBuff("FuriousRamsayBurningTrapDamage");
|
|
}
|
|
else
|
|
{
|
|
if ((itemCountBoiledWater + itemCount2BoiledWater) > 0)
|
|
{
|
|
if (itemCount2BoiledWater > 0)
|
|
{
|
|
follower.LeaderUtils.Owner.inventory.DecItem(itemBoiledWater, 1, false);
|
|
}
|
|
else
|
|
{
|
|
follower.LeaderUtils.Owner.bag.DecItem(itemBoiledWater, 1, false);
|
|
}
|
|
//LocalPlayerUI.GetUIForPlayer(entityPlayer).xui.CollectedItemList.RemoveItemStack(new ItemStack(itemBoiledWater, 1));
|
|
follower.Buffs.AddBuff("buffExtinguishFire");
|
|
follower.Buffs.RemoveBuff("buffBurningFlamingArrow");
|
|
follower.Buffs.RemoveBuff("buffBurningMolotov");
|
|
follower.Buffs.RemoveBuff("buffBurningEnvironmentHack");
|
|
follower.Buffs.RemoveBuff("buffBurningEnvironment");
|
|
follower.Buffs.RemoveBuff("buffBurningElement");
|
|
follower.Buffs.RemoveBuff("buffIsOnFire");
|
|
follower.Buffs.RemoveBuff("FuriousRamsayFireZombieAoEDamage");
|
|
follower.Buffs.RemoveBuff("FuriousRamsayFireZombieAoEDamageDisplay");
|
|
follower.Buffs.RemoveBuff("FuriousRamsayAddBurningEnemyBoss");
|
|
follower.Buffs.RemoveBuff("FuriousRamsayBurningTrapDamage");
|
|
}
|
|
}
|
|
}
|
|
|
|
follower.Buffs.SetCustomVar("$FR_NPC_ForceTeleport", 1f);
|
|
follower.Buffs.AddBuff("FuriousRamsayStandStill");
|
|
follower.TeleportToPlayer(follower.LeaderUtils.Owner, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Log.Out("NetPackageForceTeleportRebirth-ProcessPackage CAN'T FIND THE ENTITY");
|
|
}
|
|
}
|
|
}
|
|
|