private void SwapItems(BaseItemSlot tranferItemSlot) { ItemPickUp dragItem = dragItemSlot.ITEM as ItemPickUp; int dragIndex = dragItemSlot.INDEX; ItemPickUp tranferItem = tranferItemSlot.ITEM as ItemPickUp; int tranferIndex = tranferItemSlot.INDEX; //swap between Equipment and Inventory if (dragItemSlot is BaseEquipmentSlot || tranferItemSlot is BaseEquipmentSlot) { //swap from inventory to equipment if (tranferItemSlot is BaseEquipmentSlot) { if (dragItem != null) { dragItem.Equip(); } if (tranferItem != null) { tranferItem.Unequip(); } Equip(dragItemSlot); } //swap from equipment to inventory if (dragItemSlot is BaseEquipmentSlot && tranferItemSlot.ITEM != null) //inventory is not null { if (dragItem != null) { dragItem.Unequip(); } if (tranferItem != null) { tranferItem.Equip(); } Equip(tranferItemSlot); } else if (dragItemSlot is BaseEquipmentSlot && tranferItemSlot.ITEM == null) //inventory is null { if (dragItem != null) { dragItem.Unequip(); } inv_container.StoreItem(dragItem, tranferIndex); equip_container.RemoveItem(dragIndex); } } else //swap in inventory { inv_container.Swap(dragIndex, tranferIndex); } }
private void Unequip(BaseItemSlot itemSlot) { ItemPickUp copy_item_pickup = itemSlot.ITEM; // copy item if (inv_container.CanStore() && equip_container.RemoveItem(itemSlot.INDEX)) { inv_container.StoreItem(copy_item_pickup); copy_item_pickup.Unequip(); } }