Example #1
0
        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);
        }