public virtual void UseItem(ISkillArgs args, ItemInventory inventory, ItemPosition ip) { string cat = ((FreeGameItem)ip.GetKey()).GetCat(); foreach (ItemPosition i in inventory.GetItems()) { if (((FreeGameItem)i.GetKey()).GetCat().Equals(cat)) { i.SetUsed(false); UpdateItem(args, inventory, i); } } ip.SetUsed(true); UpdateItem(args, inventory, ip); }