Esempio n. 1
0
    /// <summary>
    /// 创建实例
    /// </summary>
    public static FuncMoveItemRequest create(int funcID, int fromIndex, int toIndex)
    {
        FuncMoveItemRequest re = (FuncMoveItemRequest)BytesControl.createRequest(dataID);

        re.funcID    = funcID;
        re.fromIndex = fromIndex;
        re.toIndex   = toIndex;
        return(re);
    }
Esempio n. 2
0
    /** 移动/交换物品 */
    public void moveItem(int fromIndex, int toIndex)
    {
        ItemData item = getItem(fromIndex);

        if (item == null)
        {
            warnLog("移动物品时,找不到from物品", fromIndex);
            return;
        }

        if (!isIndexEnable(toIndex))
        {
            warnLog("移动物品时,toIndex不可用", toIndex);
            return;
        }

        if (fromIndex == toIndex)
        {
            warnLog("移动物品时,序号相等", fromIndex);
            return;
        }

        if (CommonSetting.isClientDriveLogic)
        {
            ItemData toItem = getItem(toIndex);

            if (toItem != null)
            {
                int plusLast;
                //可叠加
                if (canPlus(toItem, item) && (plusLast = toItem.getPlusLast()) != 0)
                {
                    int dNum;
                    //全部合并
                    if (plusLast == -1 || item.num <= plusLast)
                    {
                        dNum = item.num;
                    }
                    else
                    {
                        dNum = plusLast;
                    }

                    removeItemByIndex(fromIndex, dNum, CallWayType.MoveItem);

                    //操作记录
                    _operateRecordList.add2(toIndex, dNum);
                    toItem.num += dNum;
                    doAddItemPartial(toIndex, dNum, toItem);
                    flushAdd(CallWayType.MoveItem);

                    return;
                }
            }

            //走交换逻辑
            toSwapItem(fromIndex, toIndex, item, toItem);
        }
        else
        {
            me.send(FuncMoveItemRequest.create(_funcID, fromIndex, toIndex));
        }
    }