Zepheus.Zone.Game.ZoneCharacter.UnequipItem C# (CSharp) Method

UnequipItem() public method

public UnequipItem ( ItemSlot source, sbyte destination ) : void
source ItemSlot
destination sbyte
return void
        public void UnequipItem(ItemSlot source, sbyte destination)
        {
            Equip equip;
            if (!EquippedItems.TryGetValue(source, out equip))
            {
                Log.WriteLine(LogLevel.Warn, "{0} unequipped non-existing item.", character.Name);
                Handler12.FailedUnequip(this);
                return;
            }

            if (InventoryItems.ContainsKey(destination))
            {
                if (!GetFreeInventorySlot(out destination))
                {
                    Handler12.FailedUnequip(this);
                    return;
                }
            }

            if (EquippedItems.Remove(source))
            {
                equip.Slot = destination;
                InventoryItems.Add(destination, equip);

                Handler12.ModifyEquipSlot(this, (byte)source, (byte)destination, null); //unequip
                Handler12.ModifyInventorySlot(this, 0x20, (byte)destination, (byte)source, equip);
                Save();

                using (var broad = Handler7.Unequip(this, equip))
                {
                    Broadcast(broad);
                }
            }
            else return;
        }