Beispiel #1
0
    //destoy item
    void DestroyItem(SlotManager draggedSlot)
    {
        //check item Disenchantable
        if (!draggedSlot.slotItem.isItemDisenchantable)
        {
            return;
        }

        //if item dragged from inventory,  destroy and create dust item
        if (draggedSlot.slotType == SlotManager.SlotType.inventory)
        {
            ItemdDisenchantedEvent(draggedSlot.slotItem);
            draggedSlot.CreateItemOnSlot(draggedSlot.slotItem.disenchantItem);
            return;
        }

        //if item dragged from character slots , check empty slot in inventory for dust item
        if (!IsThereEmptyPlace())
        {
            return;
        }

        //if we have , destroy and create dust item
        ItemdDisenchantedEvent(draggedSlot.slotItem);
        SlotManager dustSlot = inventorySlots.Find(s => s.isSlotEmpty);

        dustSlot.CreateItemOnSlot(draggedSlot.slotItem.disenchantItem);
        draggedSlot.CreateItemOnSlot(null);
        OnCharacterStatsUpdate();
    }
Beispiel #2
0
    //trade item
    void TradeItem(SlotManager draggedSlot, SlotManager closestSlot)
    {
        Item temporaryDragedItem  = draggedSlot.slotItem;
        Item temporaryClosestItem = closestSlot.isSlotEmpty ? null : closestSlot.slotItem;

        //check item draggable to closest slot?
        if (draggedSlot.IsItemTradable(temporaryClosestItem))
        {
            closestSlot.CreateItemOnSlot(temporaryDragedItem);
            draggedSlot.CreateItemOnSlot(temporaryClosestItem);
            OnCharacterStatsUpdate();
            return;
        }

        //if not , create dragged item on a empty inventory slot
        draggedSlot.CreateItemOnSlot(null);
        CreateInventoryItem(temporaryDragedItem);
        OnCharacterStatsUpdate();
    }
Beispiel #3
0
    //upgrade item
    IEnumerator UpgradeItem(SlotManager draggedSlot, SlotManager upgradeSlot)
    {
        if (!upgradeSlot.isSlotEmpty || !draggedSlot.slotItem.isItemUpgradable)
        {
            yield break;
        }

        Item temporaryDragedItem = draggedSlot.slotItem;

        //crete item on upgrade slot
        draggedSlot.CreateItemOnSlot(null);
        upgradeSlot.CreateItemOnSlot(temporaryDragedItem);

        //wait for upgrade
        yield return(new WaitForSeconds(1f));

        //get back item to initial position
        temporaryDragedItem.UpgradeItem();
        draggedSlot.CreateItemOnSlot(temporaryDragedItem);
        upgradeSlot.CreateItemOnSlot(null);
        OnCharacterStatsUpdate();
    }
Beispiel #4
0
    //create a item on inventory
    void CreateInventoryItem(Item newItem)
    {
        SlotManager emptySlot = inventorySlots.Find(s => s.isSlotEmpty);

        emptySlot.CreateItemOnSlot(newItem);
    }