60 lines
1.7 KiB
C#
60 lines
1.7 KiB
C#
using System.Xml.Linq;
|
|
|
|
public class MinEventActionNPCGiveItemRebirth : MinEventActionTargetedBase
|
|
{
|
|
private int numItems = 1;
|
|
private string itemName = "";
|
|
|
|
public override void Execute(MinEventParams _params)
|
|
{
|
|
var myEntity = _params.Self as EntityAlive;
|
|
if (myEntity == null)
|
|
return;
|
|
|
|
if (myEntity.Buffs.HasBuff("FuriousRamsayNPCSilencer"))
|
|
{
|
|
EntityPlayerLocal player = myEntity.world.GetPrimaryPlayer();
|
|
|
|
var uiforPlayer = LocalPlayerUI.GetUIForPlayer(player as EntityPlayerLocal);
|
|
var playerInventory = uiforPlayer.xui.PlayerInventory;
|
|
if (playerInventory == null) return;
|
|
|
|
var item = ItemClass.GetItem(itemName);
|
|
if (item == null)
|
|
{
|
|
//Log.Out("MinEventActionNPCGiveItemRebirth: Item Not Found: " + ID);
|
|
return;
|
|
}
|
|
var itemStack = new ItemStack(item, numItems);
|
|
if (!playerInventory.AddItem(itemStack, true))
|
|
player.world.gameManager.ItemDropServer(itemStack, player.GetPosition(), Vector3.zero);
|
|
|
|
}
|
|
}
|
|
|
|
public override bool ParseXmlAttribute(XAttribute _attribute)
|
|
{
|
|
var flag = base.ParseXmlAttribute(_attribute);
|
|
if (flag) return true;
|
|
var name = _attribute.Name;
|
|
|
|
if (name == null)
|
|
{
|
|
return flag;
|
|
}
|
|
else if (name == "numItems")
|
|
{
|
|
numItems = Int32.Parse(_attribute.Value);
|
|
return true;
|
|
}
|
|
else if (name == "itemName")
|
|
{
|
|
itemName = _attribute.Value;
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
} |