public override string ToString() { string name = Name; if (name == null || name == "") { name = Context.GetItem(BaseItem, null).Name; } foreach (string mp in MagicProperties) { name = Context.GetMagic(mp, null).GetName(name); } if (Count > 1) { name = name + " (" + Count + (Item != null && Item.Unit != null ? " " + Item.Unit : "") + ")"; } else if (Count == 1 && Item != null && Item.SingleUnit != null) { name = name + " (" + Item.SingleUnit + ")"; } else if (Count == 1 && Item != null && Item.Unit != null) { name = name + "(" + Count + " " + Item.Unit + ")"; } if (Count == 0) { name = name + " (lost)"; } if (Attuned) { name = name + " (attuned)"; } if (string.Equals(Equipped, EquipSlot.Armor, StringComparison.OrdinalIgnoreCase)) { name = name + " (worn)"; } else if (string.Equals(Equipped, EquipSlot.MainHand, StringComparison.OrdinalIgnoreCase)) { name = name + " (main hand)"; } else if (string.Equals(Equipped, EquipSlot.OffHand, StringComparison.OrdinalIgnoreCase)) { name = name + " (off hand)"; } else if (!string.Equals(Equipped, EquipSlot.None, StringComparison.OrdinalIgnoreCase)) { name = name + " (" + Equipped + ")"; } if (ChargesUsed > 0) { name = name + " (" + ChargesUsed + " charges used)"; } return(name); }
public IEnumerable <Feature> CollectOnUse(int level, IChoiceProvider provider, OGLContext context) { Context = context; List <Feature> result = new List <Feature>(); foreach (string mp in MagicProperties) { result.AddRange(context.GetMagic(mp, null).CollectOnUse(level, provider, Attuned, context)); } return(result); }
public IEnumerable <Feature> Collect(int level, IChoiceProvider provider, OGLContext context, bool pretendEquipped = false) { Context = context; List <Feature> result = new List <Feature>(); bool equip = !EquipSlot.None.Equals(Equipped, StringComparison.OrdinalIgnoreCase); foreach (string mp in MagicProperties) { result.AddRange(context.GetMagic(mp, null).Collect(level, equip || pretendEquipped, Attuned, provider, context)); } return(result); }