override protected void checkItemDrop() { if (Utils.hit != null && Utils.hit.name.Equals("Cell")) { InventoryCell cell = Utils.hit.GetComponent <InventoryCell>(); Inventory targetInv = cell.inventory; if (draggedItem.cell == null) { switch (draggedItem.kind) { case ItemKind.SHIP_EQUIPMENT: shipData.updateHullInfo(); break; case ItemKind.EQUIPMENT: playerData.updatePlayerInfo(); break; } } targetInv.addItemToCell(draggedItem, cell); } else if (Utils.hit != null && Utils.hit.name.StartsWith("HullSlot")) { HullSlot slot = Utils.hit.GetComponent <HullSlot> (); if (slot.slotType != getItemToHullSlotType(draggedItem.type)) { if (draggedItem.cell == null && draggedItem.slot == null) { if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(draggedItem, draggedItem.cell); } shipData.updateHullInfo(); } else { draggedItem.returnToParent(); } } else if (slot.item == null) { setItemToSlot(slot); } else if (slot.item != null) { Item currItem = slot.takeItem(); if (draggedItem.slot != null && draggedItem.slot.slotType == slot.slotType) { draggedItem.slot.setItem(currItem); } else if (draggedItem.slot != null) { draggedItem.returnToParent(); } else if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(currItem, draggedItem.cell); } shipData.updateHullInfo(); setItemToSlot(slot); } } else if (Utils.hit != null && Utils.hit.name.StartsWith("EquipmentSlot")) { EquipmentSlot slot = Utils.hit.GetComponent <EquipmentSlot> (); if (slot.slotType != getItemToEquipmentSlotType(draggedItem.type)) { if (draggedItem.cell == null && draggedItem.slot == null) { if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(draggedItem, draggedItem.cell); } playerData.updatePlayerInfo(); } else { draggedItem.returnToParent(); } } else if (slot.item == null) { setItemToSlot(slot); } else if (slot.item != null) { Item currItem = slot.takeItem(); if (draggedItem.slot != null && draggedItem.slot.slotType == slot.slotType) { draggedItem.slot.setItem(currItem); } else if (draggedItem.slot != null) { draggedItem.returnToParent(); } else if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(currItem, draggedItem.cell); } setItemToSlot(slot); playerData.updatePlayerInfo(); } } else if (Utils.hit != null && Utils.hit.name.StartsWith("Supply")) { SupplySlot slot = Utils.hit.GetComponent <SupplySlot>(); if (slot.item == null) { setItemToSlot(slot); } else { Item currItem = slot.takeItem(); if (draggedItem.slot != null) { draggedItem.slot.setItem(currItem); } else if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(currItem, draggedItem.cell); } setItemToSlot(slot); } } else if (draggedItem.cell == null && draggedItem.slot == null) { if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(draggedItem, null); } switch (draggedItem.kind) { case ItemKind.SHIP_EQUIPMENT: shipData.updateHullInfo(); break; case ItemKind.EQUIPMENT: playerData.updatePlayerInfo(); break; } } else { draggedItem.returnToParent(); } }