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

EquipItem() public method

public EquipItem ( Equip equip ) : void
equip Equip
return void
        public void EquipItem(Equip equip)
        {
            if (equip.IsEquipped || Level < equip.Info.Level) return;

            sbyte oldslot = equip.Slot;

            Equip oldequip;
            EquippedItems.TryGetValue(equip.Info.Slot, out oldequip);

            if (oldequip != null)
            {
                oldequip.Slot = oldslot;
                EquippedItems.Remove(equip.Info.Slot);
            }

            InventoryItems.Remove(oldslot);
            Handler12.ModifyInventorySlot(this, 0x20,  (byte)oldslot, (byte)equip.Info.Slot, oldequip);
            if (oldequip != null)
            {
                InventoryItems.Add(oldequip.Slot, oldequip);
            }

            equip.Slot = (sbyte)equip.Info.Slot;
            equip.IsEquipped = true;
            EquippedItems.Add(equip.Info.Slot, equip);
            Handler12.ModifyEquipSlot(this, (byte)equip.Info.Slot, (byte)oldslot, equip);
            Save();

            using (var broad = Handler7.Equip(this, equip))
            {
                Broadcast(broad);
            }
        }