public void equipWeapon(int inventoryIndex) { if (inventory.stored[inventoryIndex].item != null) { string[] name = inventory.stored[inventoryIndex].item.Name.ToString().Split(); if ((inventory.stored[inventoryIndex].item.ItemType == ITypes.Weapon || inventory.stored[inventoryIndex].item.ItemType == ITypes.Offhand) || (name.Length == 3 && (name[2] == "Shield" || name[2] == "Avenger"))) { Item newlyEquippedItem = inventory.stored[inventoryIndex].item; if (currentlyEquippedItems.isWeaponEquipable((Gear)newlyEquippedItem, heroRole, level)) { inventory.removeItem(inventoryIndex); Gear item = (Gear)newlyEquippedItem; if (item.EquipableIn.Contains(Slots.Hand_Both)) { inventory.addItem(currentlyEquippedItems.removeWeapon(null, true, 0)); inventory.addItem(currentlyEquippedItems.removeWeapon(null, true, 1)); } else { inventory.addItem(currentlyEquippedItems.removeWeapon((Gear)newlyEquippedItem, canDuelWield)); } currentlyEquippedItems.equipWeapon((Gear)newlyEquippedItem, this, canDuelWield); } } } }