public void OnDrop(PointerEventData eventData)
    {
        if (storage)
        {
            InventorySlot_Helper draged_slotHelper = eventData.pointerDrag.GetComponentInChildren <InventorySlot_Helper>();//being dragged

            if (draged_slotHelper != null)
            {
                _droppedItem = draged_slotHelper.item;
                ammount      = draged_slotHelper.amount;
                Invoke("DropItem", 0.0f);
                return;
            }
        }
    }
示例#2
0
    void Create_InventorySlots(int inventorySize)
    {
        Clear_InventorySlots();

        for (int i = 0; i < inventorySize; i++)
        {
            GameObject go = Instantiate(inventorySlot_Prefab, inventoryLayOut.transform.position, Quaternion.identity) as GameObject;
            go.transform.SetParent(inventoryLayOut, false);

            InventorySlot_Helper helper = go.GetComponentInChildren <InventorySlot_Helper>();

            helper.slotId     = i;
            helper.slotHolder = go;
            helper.inventory  = this;
            //Debug.Log(helper.slotHolder.name);

            helper.holderParent = GameObject.Find("GameCanvas");//inventoryLayOut.transform.parent.gameObject;

            Item blankItem = new Item();
            items.Add(blankItem);//fill with null items.
            helper.item = blankItem;

            //slots[i].name = itemToAdd.Name;
            InventorySlot slot = go.GetComponent <InventorySlot>();
            slot.slotId    = helper.slotId;
            slot.inventory = this;

            inventorySlots.Add(go);
        }

        if (addTestItems)
        {
            Add_Item(data.FindItemBy(data.item_DataBase.items, 1));
            Add_Item(data.FindItemBy(data.item_DataBase.items, 1));
            Add_Item(data.FindItemBy(data.item_DataBase.items, 1));
            Add_Item(data.FindItemBy(data.item_DataBase.items, 1));
            Add_Item(data.FindItemBy(data.item_DataBase.items, 2));
            Add_Item(data.FindItemBy(data.item_DataBase.items, 2));
            Add_Item(data.FindItemBy(data.item_DataBase.items, "Sword"));
            Add_Item(data.FindItemBy(data.item_DataBase.items, "Bow"));
            Add_Item(data.FindItemBy(data.item_DataBase.items, "Armour"));
            Add_Item(data.FindItemBy(data.item_DataBase.items, "Medal"));
            Add_Item(data.FindItemBy(data.item_DataBase.items, "Helm"));
        }
        //Load Saved invetory Data
        //inventoryPanel.SetActive(true);
    }
    void DragDropFromInventory(InventorySlot_Helper draged_slotHelper)
    {
        if (inventory.items[slotId].ID == -1)
        {
            InventorySlot_Helper this_slotHelper = this.gameObject.GetComponentInChildren <InventorySlot_Helper>();//being droped on

            draged_slotHelper.transform.SetParent(this.gameObject.transform);
            draged_slotHelper.transform.position = this.gameObject.transform.position;//this_slotHelper.slotHolder.transform.position;
            draged_slotHelper.slotHolder         = transform.gameObject;

            inventory.items[draged_slotHelper.slotId] = new Item();//move items
            inventory.items[slotId] = draged_slotHelper.item;

            int temp__SlotId = draged_slotHelper.slotId;
            draged_slotHelper.slotId = slotId;
            this_slotHelper.slotId   = temp__SlotId;

            this_slotHelper.gameObject.transform.SetParent(inventory.inventorySlots[this_slotHelper.slotId].transform);//draged_slotHelper.slotHolder.transform);
            this_slotHelper.gameObject.transform.position = inventory.inventorySlots[this_slotHelper.slotId].transform.position;
            this_slotHelper.slotHolder = inventory.inventorySlots[this_slotHelper.slotId].transform.gameObject;
        }
        else
        {
            InventorySlot_Helper this_slotHelper = this.gameObject.GetComponentInChildren <InventorySlot_Helper>();//being droped on

            draged_slotHelper.transform.SetParent(this.gameObject.transform);
            draged_slotHelper.transform.position = this.gameObject.transform.position;//this_slotHelper.slotHolder.transform.position;
            draged_slotHelper.slotHolder         = transform.gameObject;

            if (draged_slotHelper && this_slotHelper)
            {
                inventory.items[draged_slotHelper.slotId] = this_slotHelper.item;//move items
                inventory.items[slotId] = draged_slotHelper.item;

                int temp__SlotId = draged_slotHelper.slotId;
                draged_slotHelper.slotId = slotId;
                this_slotHelper.slotId   = temp__SlotId;

                this_slotHelper.gameObject.transform.SetParent(inventory.inventorySlots[this_slotHelper.slotId].transform);//draged_slotHelper.slotHolder.transform);
                this_slotHelper.gameObject.transform.position = inventory.inventorySlots[this_slotHelper.slotId].transform.position;
                this_slotHelper.slotHolder = inventory.inventorySlots[this_slotHelper.slotId].transform.gameObject;
            }
        }
    }
    public void OnDrop(PointerEventData eventData)
    {
        InventorySlot_Helper draged_slotHelper = eventData.pointerDrag.GetComponentInChildren <InventorySlot_Helper>();//being dragged

        if (draged_slotHelper != null)
        {
            DragDropFromInventory(draged_slotHelper);
            return;
        }

        EquipmentSlot_Helper draged_equipHelper = eventData.pointerDrag.GetComponentInChildren <EquipmentSlot_Helper>();

        if (draged_equipHelper != null)
        {
            InventorySlot_Helper this_slotHelper = GetComponentInChildren <InventorySlot_Helper>();
            draged_equipHelper.DragDropFromEquiped(this_slotHelper);
            return;
        }
    }
    public void DragDropFromEquiped(InventorySlot_Helper helper)
    {
        //Debug.Log(helper.item.Name);
        //

        if (!equipment.inventory.inventoryFull)// && helper.item.ItemType != eSlot.equipedItem.ItemType)
        {
            if (helper.item.ItemType == eSlot.equipedItem.ItemType)
            {
                eSlot.EquipItem(helper.item);
                equipment.inventory.toolTip.Deactivate();
                equipment.inventory.toolTip.Activate(eSlot.equipedItem);
            }
            else
            {
                equipment.inventory.toolTip.Deactivate();
                eSlot.SetEquiped(false);
            }
        }
    }
示例#6
0
    public void Add_Item(Item itemToAdd)
    {
        if (numOfSlotUsed >= numOfSlots)
        {
            Debug.LogWarning("Inventory Full");
            inventoryFull = true;
            return;
        }

        if (itemToAdd.Stackable && CheckForItemStacks(itemToAdd))
        {
            for (int i = 0; i < items.Count; i++)
            {
                if (items[i].ID == itemToAdd.ID)
                {
                    InventorySlot_Helper helper = inventorySlots[i].GetComponentInChildren <InventorySlot_Helper>();
                    helper.amount++;
                    helper.itemAmmountText.text = helper.amount.ToString();
                    helper.itemAmmountText.gameObject.SetActive(true);
                    //Debug.Log("Stacked " + items[i].Name);
                    break;
                }
            }
        }
        else
        {
            //Debug.Log("NonStacking- " + itemToAdd.Name);

            for (int i = 0; i < items.Count; i++)
            {
                if (items[i].Name == "")
                {
                    items[i] = itemToAdd;
                    InventorySlot_Helper helper = inventorySlots[i].GetComponentInChildren <InventorySlot_Helper>();
                    helper.item                    = items[i];
                    helper.amount                  = 1;
                    helper.slotId                  = i;
                    helper.slotHolder              = helper.gameObject;
                    helper.holderParent            = GameObject.Find("GameCanvas");//inventoryLayOut.transform.parent.gameObject;
                    helper.inventory               = this;
                    helper.itemSpriteImage.sprite  = itemToAdd.Icon;
                    helper.itemSpriteImage.enabled = true;
                    helper.itemSpriteImage.gameObject.SetActive(true);

                    //slots[i].name = itemToAdd.Name;
                    InventorySlot slot = inventorySlots[i].GetComponent <InventorySlot>();
                    slot.slotId    = helper.slotId;
                    slot.inventory = this;

                    helper.gameObject.name = itemToAdd.Name;
                    helper.slotHolder      = slot.gameObject;
                    //Debug.Log("New " + items[i].Name);

                    numOfSlotUsed++;

                    break;
                }
            }
        }

        if (numOfSlotUsed >= numOfSlots)
        {
            Debug.LogWarning("Inventory Full");
            inventoryFull = true;
            return;
        }
        else if (numOfSlotUsed <= numOfSlots)
        {
            //Debug.Log("Inventory has " + (numOfSlots - numOfSlotUsed).ToString() + " slots available");
        }
    }
示例#7
0
    public void RemoveItem(List <Item> itemList, Item itemToRemove)
    {
        //Debug.LogWarning("Try RemoveItem " + itemToRemove.Name);

        if (itemList.Contains(itemToRemove))
        {
            Debug.LogWarning("Inventory contains " + itemToRemove.Name);

            if (itemToRemove.Stackable && CheckForItemStacks(itemToRemove))//Stackable items
            {
                int i = itemList.IndexOf(itemToRemove);

                InventorySlot_Helper helper = inventorySlots[i].GetComponentInChildren <InventorySlot_Helper>();

                if (helper == null)
                {
                    Debug.LogError("WTF?");
                }

                if (helper.amount >= 2)//reduce Stack of items
                {
                    //Debug.Log("Removed one " + itemToRemove.Name + " from a Stack");
                    helper.amount--;
                    helper.itemAmmountText.text = helper.amount.ToString();

                    if (helper.amount == 1)
                    {
                        helper.itemAmmountText.gameObject.SetActive(false);
                    }
                }
                else//last item in Stack (1 item)
                {
                    //Debug.Log(itemToRemove.Name + " Stack finished");
                    int s = itemList.IndexOf(itemToRemove);
                    itemList[s] = new Item();
                    InventorySlot_Helper lastInStack_helper = inventorySlots[s].GetComponentInChildren <InventorySlot_Helper>();
                    lastInStack_helper.item = itemList[s];
                    lastInStack_helper.itemSpriteImage.enabled = false;
                    lastInStack_helper.gameObject.name         = "InventoryItem";
                    numOfSlotUsed--;
                    //Debug.LogWarning(items[s].Name);
                }
            }
            else//non Stackable items
            {
                //Debug.Log(itemToRemove.Name + " is not Stackable");
                int i = itemList.IndexOf(itemToRemove);
                itemList[i] = new Item();
                InventorySlot_Helper helper = inventorySlots[i].GetComponentInChildren <InventorySlot_Helper>();
                helper.item = itemList[i];
                helper.itemSpriteImage.enabled = false;
                helper.gameObject.name         = "InventoryItem";
                numOfSlotUsed--;
                //Debug.LogWarning(items[i].Name);
            }
        }

        if (numOfSlotUsed < numOfSlots)
        {
            //Debug.Log("Inventory has " + (numOfSlots - numOfSlotUsed).ToString() + " slots available");
            inventoryFull = false;
        }
    }