Ejemplo n.º 1
0
    public void OnDropItem(Grid_N grid)
    {
        //lz-2016.11.14 Crush bug
        if (null == SelectItem_N.Instance || null == SelectItem_N.Instance.ItemSample || null == GameUI.Instance || null == mCutSlotList || null == grid)
        {
            return;
        }

        //lz-2016.08.10 不允许快捷栏操作当前包裹正在操作的Item
        if (null != GameUI.Instance.mItemPackageCtrl && GameUI.Instance.mItemPackageCtrl.EqualUsingItem(SelectItem_N.Instance.ItemSample))
        {
            return;
        }

        if (e_OnDropItemTask != null && SelectItem_N.Instance.ItemSample.protoId == 916)
        {
            e_OnDropItemTask();
        }

        if (GameConfig.IsMultiMode)
        {
            int selectIndex = SelectItem_N.Instance.Index + GetCurPageIndex();
            int gridIndex   = grid.ItemIndex + GetCurPageIndex();

            int srcIndex = -1;
            int objId    = -1;
            if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_HotKeyBar)
            {
                ShortCutItem item = mCutSlotList.GetItem(selectIndex);
                if (null != item)
                {
                    srcIndex = selectIndex;
                    objId    = item.itemInstanceId;
                }
            }
            else
            {
                if (SelectItem_N.Instance.ItemObj == null)
                {
                    Debug.Log("UIMainMidCtrl.OnDropItem SelectItem_N.Instance.ItemObj == null");
                    return;
                }
                srcIndex = -1;
                objId    = SelectItem_N.Instance.ItemObj.instanceId;
            }

            if (null != PlayerNetwork.mainPlayer)
            {
                PlayerNetwork.mainPlayer.RequestSetShortcuts(objId, srcIndex, gridIndex, SelectItem_N.Instance.Place);
            }

            SelectItem_N.Instance.SetItem(null);
        }
        else
        {
            switch (SelectItem_N.Instance.Place)
            {
            case ItemPlaceType.IPT_HotKeyBar:
                if (grid.Item == null)
                {
                    int selectIndex = SelectItem_N.Instance.Index + GetCurPageIndex();
                    int gridIndex   = grid.ItemIndex + GetCurPageIndex();
                    mCutSlotList.PutItem(mCutSlotList.GetItem(selectIndex), gridIndex);
                    mCutSlotList.PutItem(null, selectIndex);
                }
                else
                {
                    int          selectIndex = SelectItem_N.Instance.Index + GetCurPageIndex();
                    ShortCutItem selectedCut = mCutSlotList.GetItem(selectIndex);
                    int          gridIndex   = grid.ItemIndex + GetCurPageIndex();
                    ShortCutItem gridCut     = mCutSlotList.GetItem(gridIndex);

                    if (selectedCut != null)
                    {
                        mCutSlotList.PutItem(selectedCut, gridIndex);
                    }

                    mCutSlotList.PutItem(gridCut, selectIndex);
                }
                SelectItem_N.Instance.SetItem(null);
                break;

            case ItemPlaceType.IPT_Equipment:
                break;

            case ItemPlaceType.IPT_Bag:
            {
                int  pakageIndex = 0;
                bool isMission   = false;
                if (null != GameUI.Instance.mItemPackageCtrl)
                {
                    if (!GameUI.Instance.mItemPackageCtrl.isMission)
                    {
                        pakageIndex = ItemPackage.CodeIndex((ItemPackage.ESlotType)GameUI.Instance.mItemPackageCtrl.CurrentPickTab, SelectItem_N.Instance.Index);
                    }
                    else
                    {
                        pakageIndex = ItemPackage.CodeIndex(ItemPackage.ESlotType.Item, SelectItem_N.Instance.Index);
                        isMission   = true;
                    }
                    if (null != mPackageCmpt)
                    {
                        mPackageCmpt.PutItemToShortCutList(pakageIndex, grid.ItemIndex + GetCurPageIndex(), isMission);
                    }
                }
                SelectItem_N.Instance.SetItem(null);
            }
            break;
            }
        }
    }