using System.Xml.Linq;

public class ItemInInventory : RequirementBase
{
    private string itemName;
    private ItemValue itemValueCache = null;

    public override bool IsValid(MinEventParams _params)
    {
        return base.IsValid(_params) && compareValues(_params.Self.GetItemCount(itemValueCache), operation, value) ^ invert;
    }

    public override bool ParamsValid(MinEventParams _params)
    {
        if (itemValueCache == null)
            itemValueCache = ItemClass.GetItem(itemName);
        return base.ParamsValid(_params) && itemValueCache != null;
    }

    public override bool ParseXAttribute(XAttribute _attribute)
    {
        if (base.ParseXAttribute(_attribute))
            return true;

        string name = _attribute.Name.LocalName;
        if (name == "item")
        {
            itemName = _attribute.Value;
            return true;
        }
        return false;
    }
}
