Пример #1
0
    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);
        }
    }
Пример #2
0
    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();
        }
    }