public List <ObjectEffect> GetRuneEffects()
 {
     return(UsedRune.GetEffects());
 }
        public override void AddItemToPanel(CharacterItemRecord obj, uint quantity)
        {
            #region BackgroundCheck
            ItemRecord template = ItemRecord.GetItem(obj.GID);
            if (obj.IsNull())
            {
                return;
            }
            #endregion

            if (template.Type == ItemTypeEnum.SMITHMAGIC_RUNE)
            {
                #region Ajout de Rune
                if (UsedRune != null) // bizzare de devoir faire ça, le client devrait s'en charger
                {
                    if (obj.Quantity - UsedRune.Quantity <= 0)
                    {
                        return;
                    }
                }
                if (quantity == obj.Quantity)
                {
                    var addedItem = obj.CloneWithUID();
                    Client.Send(new ExchangeObjectAddedMessage(false, addedItem.GetObjectItem()));
                    UsedRune = addedItem;
                    return;
                }
                else
                {
                    if (UsedRune != null)
                    {
                        UsedRune.Quantity += (uint)quantity;
                        Client.Send(new ExchangeObjectModifiedMessage(false, UsedRune.GetObjectItem()));
                        return;
                    }
                    else
                    {
                        var addedItem = obj.CloneWithUID();
                        addedItem.Quantity = (uint)quantity;
                        Client.Send(new ExchangeObjectAddedMessage(false, addedItem.GetObjectItem()));
                        UsedRune = addedItem;
                        return;
                    }
                }
                #endregion
            }
            else
            {
                if (quantity == obj.Quantity)
                {
                    var addedItem = obj.CloneWithUID();
                    Client.Send(new ExchangeObjectAddedMessage(false, addedItem.GetObjectItem()));
                    UsedItem = addedItem;
                    return;
                }
                else
                {
                    if (UsedItem == null)
                    {
                        var addedItem = obj.CloneWithUID();
                        addedItem.Quantity = (uint)quantity;
                        Client.Send(new ExchangeObjectAddedMessage(false, addedItem.GetObjectItem()));
                        UsedItem = addedItem;
                        return;
                    }
                    else
                    {
                        Client.Send(new ExchangeObjectRemovedMessage(false, UsedItem.UID));
                        UsedItem = null;
                        AddItemToPanel(obj, quantity);
                    }
                }
            }
        }