示例#1
0
    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();
        }
    }