예제 #1
0
    public void MouseDrop()     // スロットの上にアイテムがドロップされた時に実行
    {
        if (FindObjectOfType <DragSlot>() == null || panelParam)
        {
            return;
        }

        foreach (Transform child in itemslot_c)
        {
            child.gameObject.transform.GetComponent <PocketItem>().BatsuEnd();
        }

        AudioManager.Instance.PlaySE("closing-wooden-door-1");
        dragSlot   = FindObjectOfType <DragSlot>();    // DragItemUIに設定しているDragItemDataスクリプトからアイテムデータを取得
        myItemData = dragSlot.GetItem();
        id         = myItemData.GetItemId();

        dataName = dragSlot.GetSlotData();             //ドラッグしてきた持ち物パネルを取得

        switch (panelParam)
        {
        case false:
            if (myItemData.GetItemSet() == PocketStatus.Pocket.none)
            {
                switch (id)
                {
                default:
                case 0:
                    plusPower = myItemData.GetItemPower();
                    break;

                case 1:
                    plusPower = myItemData.GetItemSpeed();
                    break;

                case 2:
                    plusPower = myItemData.GetItemDefence();
                    break;
                }

                wm.AttachParts(plusPower, id);

                ShowInformation();

                panelParam = true;
            }

            break;

        default:

            dataName = null;

            break;
        }

        if (myItemData.GetItemSet() != PocketStatus.Pocket.none)
        {
            return;
        }

        switch (dragSlot.GetDeleteNum())
        {
        case 1:
            myItemStatus.SetItemCount(id, -1);
            var processingSlot = dataName.GetComponent <ProcessingSlot>();
            processingSlot.StartCoroutine("displayCount");

            if (myItemStatus.GetItemCount(id) <= 0)
            {
                myItemStatus.SetItemFlag(id, false);
                processingSlot.PanelDelete();
            }

            break;

        case 2:
            dataName.GetComponent <CustomSlot>().PanelDelete();
            break;

        case 3:
            break;

        default:
            break;
        }
        dragSlot.DeleteDragItem();                          // ドラッグしているアイテムデータの削除
    }