예제 #1
0
 /// <summary>
 /// multiMode used only
 /// </summary>
 public void SetItemUI(ItemObject itemObj)
 {
     m_Grid.SetItem(itemObj);
     if (itemObj != null)
     {
         energyItem = itemObj.GetCmpt <Energy>();
     }
     else
     {
         energyItem = null;
     }
 }
예제 #2
0
 void OnDeleteItem()
 {
     if (GameConfig.IsMultiMode)
     {
         if (m_storage == null)
         {
             PlayerNetwork.mainPlayer.RequestPersonalStorageDelete(m_OpGird.ItemObj.instanceId);
         }
         else
         {
             m_storage._ColonyObj._Network.Delete(m_OpGird.ItemObj.instanceId);
             return;
         }
         m_OpGird = null;
     }
     else
     {
         if (OpStatusEvent != null)
         {
             OpStatusEvent(EEventType.DeleteItem, m_OpGird.Item.protoData.GetName(), CSUtils.GetEntityName(CSConst.etStorage));
         }
         m_CurPack[m_OpGird.ItemIndex] = null;
         m_OpGird.SetItem(null);
     }
 }
예제 #3
0
 public void InitItem(ItemSample itemGrid)
 {
     if (itemGrid == null)
     {
         return;
     }
     mItem.SetItem(itemGrid);
     if (itemGrid.protoData.maxStackNum > 1)
     {
         mItemName.text = itemGrid.protoData.GetName() + "+" + itemGrid.GetCount();
     }
     else
     {
         mItemName.text = itemGrid.protoData.GetName();
     }
     mPos = transform.localPosition;
 }
    void OnSetRewardItemContent(Grid_N grid)
    {
        int item_id    = _rewardItemIds[grid.ItemIndex];
        int item_count = _rewardItemCount[grid.ItemIndex];

        //ItemAsset.ItemProto item_proto = ItemAsset.ItemProto.GetItemData(item_id);
        ItemAsset.ItemSample sample = new ItemAsset.ItemSample(item_id, item_count);
        grid.SetItem(sample);
    }
    public void OnDropItem_InterPackage2(Grid_N grid)
    {
        if (null == servant)
        {
            return;
        }

        if (grid.ItemObj != null)
        {
            return;
        }

        if (PeGameMgr.IsMulti)
        {
            switch (SelectItem_N.Instance.Place)
            {
            case ItemPlaceType.IPT_ServantEqu:
                //lz-2016.11.09 检测是否可以脱装备
                if (SelectItem_N.Instance.RemoveOriginItem())
                {
                    PlayerNetwork.mainPlayer.RequestGiveItem2Npc((int)grid.ItemPlace, servant.Id, SelectItem_N.Instance.ItemObj.instanceId, SelectItem_N.Instance.Place);
                }
                break;

            case ItemPlaceType.IPT_ServantInteraction:
            case ItemPlaceType.IPT_Bag:
                PlayerNetwork.mainPlayer.RequestGiveItem2Npc((int)grid.ItemPlace, servant.Id, SelectItem_N.Instance.ItemObj.instanceId, SelectItem_N.Instance.Place);
                break;
            }

            SelectItem_N.Instance.SetItem(null);
        }
        else
        {
            switch (SelectItem_N.Instance.Place)
            {
            case ItemPlaceType.IPT_ServantEqu:
            case ItemPlaceType.IPT_ServantInteraction:
            case ItemPlaceType.IPT_ServantInteraction2:
            case ItemPlaceType.IPT_Bag:
                //lz-2016.11.09 检测是否可以脱装备
                if (SelectItem_N.Instance.RemoveOriginItem())
                {
                    SetItemWithIndexWithPackage2(SelectItem_N.Instance.ItemObj, grid.ItemIndex);
                    grid.SetItem(SelectItem_N.Instance.ItemObj);
                    SelectItem_N.Instance.SetItem(null);
                }
                break;

            default:
                SelectItem_N.Instance.SetItem(null);
                break;
            }
        }
    }
예제 #6
0
    void AddRewards(ItemSample itemGrid)
    {
        Grid_N AddItem = Instantiate(mPrefabGrid_N) as Grid_N;

        AddItem.transform.parent        = mRewardsGrid.transform;
        AddItem.transform.localPosition = new Vector3(0, 0, -1);
        AddItem.transform.localRotation = Quaternion.identity;
        AddItem.transform.localScale    = Vector3.one;
        AddItem.SetItem(itemGrid);
        mRewardsList.Add(AddItem);
    }
예제 #7
0
    void OnRemoveOriginItem(Grid_N grid)
    {
        ItemObject oldItem = grid.ItemObj;

        grid.SetItem(null);

        if (OnItemChanged != null)
        {
            OnItemChanged(null, oldItem, m_Index);
        }
    }
예제 #8
0
 public void SetItemByNet(MapObjNetwork net, int itemId)
 {
     if (_net != null && _net == net)
     {
         if (itemId != -1)
         {
             ItemObject obj = ItemMgr.Instance.Get(itemId);
             if (null != obj)
             {
                 mRepairMachine.m_Repair.m_Item = obj.GetCmpt <Repair>();
             }
         }
         else
         {
             mRepairMachine.m_Repair.m_Item = null;
             mRepairItem.SetItem(null);
         }
         UpdateItemForNet(_net);
     }
 }
예제 #9
0
    void OnGridsExchangeItem(Grid_N grid, ItemObject item)
    {
        //--to do: wait npcpackage
        //if (grid.ItemObj != null)
        //    RefNpc.m_Npc.RemoveFromBag(grid.ItemObj);

        //if (item != null)
        //    RefNpc.m_Npc.AddToBag(item);

        grid.SetItem(item);
    }
예제 #10
0
 public void SetItem(ItemSample itemSample, int index)
 {
     mGrid.SetItem(itemSample);
     mGrid.SetItemPlace(ItemPlaceType.IPT_ItemGet, index);
     if (itemSample != null)
     {
         mName.text = itemSample.protoData.GetName() + "[30FF30] x " + itemSample.stackCount + "[-]";
     }
     else
     {
         mName.text = "";
     }
 }
예제 #11
0
    public void OnDropItem_Equip(Grid_N grid)
    {
        if (null == equipmentCmpt)
        {
            SelectItem_N.Instance.SetItem(null);
            return;
        }

        if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_HotKeyBar ||
            !UIToolFuncs.CanEquip(SelectItem_N.Instance.ItemObj, commonCmpt.sex) ||
            ((int)grid.ItemMask & SelectItem_N.Instance.ItemObj.protoData.equipPos) == 0)
        {
            SelectItem_N.Instance.SetItem(null);
            return;
        }

        if (PeGameMgr.IsMulti)
        {
            if (equipmentCmpt.NetTryPutOnEquipment(SelectItem_N.Instance.ItemObj))
            {
                PlayerNetwork.mainPlayer.RequestNpcPutOnEquip(servant.Id, SelectItem_N.Instance.ItemObj.instanceId, SelectItem_N.Instance.Place);
                SelectItem_N.Instance.SetItem(null);
                //lz-2016.08.31 装备成功播放音效
                GameUI.Instance.PlayPutOnEquipAudio();
            }
        }
        else
        {
            switch (SelectItem_N.Instance.Place)
            {
            case ItemPlaceType.IPT_ServantInteraction:
            case ItemPlaceType.IPT_ServantInteraction2:
            case ItemPlaceType.IPT_Bag:
                if (equipmentCmpt.PutOnEquipment(SelectItem_N.Instance.ItemObj, true))
                {
                    SelectItem_N.Instance.RemoveOriginItem();
                    grid.SetItem(SelectItem_N.Instance.ItemObj);
                    SelectItem_N.Instance.SetItem(null);
                    //lz-2016.08.31 装备成功播放音效
                    GameUI.Instance.PlayPutOnEquipAudio();
                }
                break;

            default:
                SelectItem_N.Instance.SetItem(null);
                break;
            }
        }
    }
예제 #12
0
    private void UpdateOpPanelInfo()
    {
        if (null == m_CurOpItem)
        {
            return;
        }

        ShowOpPanel(true);
        m_CurOpGrid.SetItem(m_CurOpItem);
        m_CurrentNum = 1;
        if (m_CurPackTab == 0 && m_IsBuy)
        {
            //lz-2016.10.24 贸易站收取一定比例的服务费
            m_CurPrice = Mathf.RoundToInt(m_CurOpItem.GetBuyPrice() * (1 + ColonyConst.TRADE_POST_CHARGE_RATE));
        }
        else
        {
            m_CurPrice = m_CurOpItem.GetSellPrice(); //赎回的价格等于卖出的价格
        }
        m_InputOpNum.text = m_CurrentNum.ToString();
        m_LbTotal.text    = m_CurPrice.ToString();
        m_LbPrice.text    = m_CurPrice.ToString();
        m_BtnOp.text      = PELocalization.GetString(m_IsBuy ? 8000556 : 8000555);
    }
예제 #13
0
    Grid_N GetNewGrid()
    {
        Grid_N newItem = Instantiate(mGridPrefab) as Grid_N;

        GameObject.Destroy(newItem.transform.GetComponent <UIPanel>());
        newItem.transform.parent        = mDropItemGrid.transform;
        newItem.transform.localPosition = Vector3.zero;
        newItem.transform.localScale    = Vector3.one;
        newItem.SetItem(null);
        newItem.SetItemPlace(ItemPlaceType.IPT_DropItem, mDropItemGrids.Count);
        newItem.onLeftMouseClicked  = OnMouseLeftClick;
        newItem.onRightMouseClicked = RemoveFromDropList;
        newItem.onDropItem          = OnDropItem;
        return(newItem);
    }
예제 #14
0
    public void RemoveFromDropList(Grid_N grid)
    {
        if (null == grid.ItemObj)
        {
            return;
        }

        int index = mDropInfoList.FindIndex(itr => itr.mDropItemObj == grid.ItemObj);

        if (index != -1)
        {
            mDropInfoList.RemoveAt(index);
            grid.SetItem(null);
            mItemPackage.ResetItem();
        }
    }
예제 #15
0
    void RemoveOriginItem(Grid_N grid)
    {
        if (grid == null || grid.ItemIndex < -1 || m_CurPack.Count <= grid.ItemIndex)
        {
            Debug.LogWarning("The giving grid is error.");
            return;
        }

        if (OpStatusEvent != null)
        {
            OpStatusEvent(EEventType.TakeAwayItem, grid.Item.protoData.GetName(), CSUtils.GetEntityName(CSConst.etStorage));
        }

        m_CurPack[grid.ItemIndex] = null;
        grid.SetItem(null);
    }
예제 #16
0
    public void AddToDropList(int packTab, int Index, Grid_N grid, Grid_N curDropItem = null)
    {
        if (curDropItem == null)
        {
            curDropItem = GetEmptyGrid();
            if (null == curDropItem)
            {
                PeTipMsg.Register(PELocalization.GetString(82209001), PeTipMsg.EMsgLevel.Warning);
                return;
            }
        }
        RemoveFromDropList(curDropItem);
        curDropItem.SetItem(grid.Item);
        DropItemInfo info = new DropItemInfo();

        info.SetInfo(packTab, Index, grid, grid.ItemObj);
        mDropInfoList.Add(info);
        ResetPackageWnd(packTab, Index);
    }
예제 #17
0
    public void OnDropItemToEquipment(Grid_N grid)
    {
        if (SelectItem_N.Instance.Place != ItemPlaceType.IPT_Bag ||
            !UIToolFuncs.CanEquip(SelectItem_N.Instance.ItemObj, commonCmpt.sex) ||
            ((int)grid.ItemMask & SelectItem_N.Instance.ItemObj.protoData.equipPos) == 0)
        {
            SelectItem_N.Instance.SetItem(null);
            return;
        }

        if (GameConfig.IsMultiMode)
        {
            if (equipmentCmpt.NetTryPutOnEquipment(SelectItem_N.Instance.ItemObj))
            {
                PlayerNetwork.mainPlayer.RequestPutOnEquipment(SelectItem_N.Instance.ItemObj, SelectItem_N.Instance.Index);
                //lz-2016.08.31 装备成功播放音效
                GameUI.Instance.PlayPutOnEquipAudio();
            }
            SelectItem_N.Instance.SetItem(null);
        }
        else
        {
            switch (SelectItem_N.Instance.Place)
            {
            case ItemPlaceType.IPT_Bag:
                if (equipmentCmpt.PutOnEquipment(SelectItem_N.Instance.ItemObj))
                {
                    SelectItem_N.Instance.RemoveOriginItem();
                    grid.SetItem(SelectItem_N.Instance.ItemObj);
                    SelectItem_N.Instance.SetItem(null);
                    //lz-2016.08.31 装备成功播放音效
                    GameUI.Instance.PlayPutOnEquipAudio();
                }
                break;

            default:
                SelectItem_N.Instance.SetItem(null);
                break;
            }
        }
    }
예제 #18
0
    void OnPlayerPackageRightClicked(Grid_N grid)
    {
        if (!CSUI_MainWndCtrl.IsWorking(false))
        {
            return;
        }

        if (!m_IsWorking)
        {
            return;
        }

        if (GameConfig.IsMultiMode)
        {
            if (m_storage == null)
            {
                PlayerNetwork.mainPlayer.RequestPersonalStorageStore(grid.ItemObj.instanceId, -1);
            }
            else
            {
                m_storage._ColonyObj._Network.STO_Store(-1, grid.ItemObj);
            }
        }
        else
        {
            if (SetItemWithEmptyGrid(grid.ItemObj))
            {
                //			CSUI_Main.ShowStatusBar("You put the " + grid.Item.mItemData.m_Englishname + " into the storage.");
                if (OpStatusEvent != null)
                {
                    OpStatusEvent(EEventType.PutItemInto, grid.Item.protoData.GetName(), CSUtils.GetEntityName(CSConst.etStorage));
                }
                //			CSUI_Main.ShowStatusBar(CSUtils.GetNoFormatString(UIMsgBoxInfo.mPutIntoMachine.GetString(), grid.Item.mItemData.GetName(), CSUtils.GetEntityName(CSConst.etStorage)));
                PeCreature.Instance.mainPlayer.GetCmpt <PackageCmpt>().Remove(grid.ItemObj);
                //GetItemPackage().RemoveItem(grid.ItemObj);
                grid.SetItem(null);
            }
        }
    }
예제 #19
0
    void OnRightMouseClicked(Grid_N grid)
    {
        if (grid.Item == null)
        {
            return;
        }

        if (onCheckItem != null && !onCheckItem(null, ECheckItemType.RightMounseClick))
        {
            return;
        }

        if (GameConfig.IsMultiMode)
        {
            OnRightMouseClickedMulti(grid, m_Index);
            return;
        }

        ItemObject oldItem = grid.ItemObj;

        Pathea.PlayerPackageCmpt package = Pathea.PeCreature.Instance.mainPlayer.GetCmpt <Pathea.PlayerPackageCmpt>();

        if (package.package.CanAdd(grid.ItemObj))
        {
            package.Add(grid.ItemObj);
            GameUI.Instance.mItemPackageCtrl.ResetItem();
            grid.SetItem(null);

            if (OnItemChanged != null)
            {
                OnItemChanged(null, oldItem, m_Index);
            }
        }
        else
        {
            CSUI_MainWndCtrl.ShowStatusBar(UIMsgBoxInfo.mNotEnoughGrid.GetString(), Color.red);
        }
    }
예제 #20
0
    void ClearUIInfo()
    {
        mTitleLineName.text = "";

        mLineName.text       = "";
        mLbStationCount.text = "";
        mLbNodeCount.text    = "";
        mLbRangeAblity.text  = "";
        mLbOneWaytime.text   = "";

        mTitleStationName.text = "";
        mStationName.text      = "";
        mArriveTime.text       = "";
        mRedestanceTime.text   = "";

        mBtnStop.SetActive(false);
        mRailIcon.SetItem(null);
    }
예제 #21
0
    void OnDropItem(Grid_N grid)
    {
        if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_HotKeyBar)
        {
            return;
        }
        ActiveWnd();
        if (PeGameMgr.IsMulti)
        {
            //lz-2017.02.27 错误 #8998  多人storage只支持从背包放入,不支持storage内部交换
            if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_Bag)
            {
                //lz-2016.11.16 多人是所有类型的一个总列表,index需要通过类型和页数处理一下
                if (_wareObj != null)
                {
                    _wareObj._objNet.InsertItemList(SelectItem_N.Instance.ItemObj.instanceId, grid.ItemIndex + (mCurrentPickTab * mPageCount));
                }
            }
            return;
        }
        if (grid.ItemObj == null)
        {
            switch (SelectItem_N.Instance.Place)
            {
            case ItemPlaceType.IPT_HotKeyBar:
                SelectItem_N.Instance.SetItem(null);
                break;

            default:
                if (SelectItem_N.Instance.GridMask != GridMask.GM_Mission)
                {
                    SelectItem_N.Instance.RemoveOriginItem();
                    grid.SetItem(SelectItem_N.Instance.ItemObj);
                    m_CurrentPack[grid.ItemIndex] = SelectItem_N.Instance.ItemObj;
                }
                SelectItem_N.Instance.SetItem(null);
                break;
            }
        }
        else
        {
            //lz-2016.11.16 添加仓库内交换和背包交换功能
            switch (SelectItem_N.Instance.Place)
            {
            case ItemPlaceType.IPT_Warehouse:
                ItemObject temp = SelectItem_N.Instance.ItemObj;
                m_CurrentPack[SelectItem_N.Instance.Index] = grid.ItemObj;
                m_CurrentPack[grid.ItemIndex] = temp;
                SelectItem_N.Instance.SetItem(null);
                ResetItem();
                break;

            case ItemPlaceType.IPT_Bag:
                if (SelectItem_N.Instance.RemoveOriginItem())
                {
                    GameUI.Instance.mItemPackageCtrl.SetItemWithIndex(grid.ItemObj, SelectItem_N.Instance.Index);
                    m_CurrentPack[grid.ItemIndex] = SelectItem_N.Instance.ItemObj;
                    SelectItem_N.Instance.SetItem(null);
                    ResetItem();
                }
                break;

            default:
                SelectItem_N.Instance.SetItem(null);
                break;
            }
        }
    }
예제 #22
0
 void Start()
 {
     item = new ItemSample(mRevivePrtroId);
     mGrid.SetItem(item);
     mGrid_2.SetItem(item);
 }
예제 #23
0
 void onRemoveOriginItem(Grid_N grid)
 {
     //ItemObject oldItem = grid.ItemObj;
     grid.SetItem(null);
     //MedicineDragOutEvent(grid);
 }
예제 #24
0
    public void Sell(Grid_N grid, int num)
    {
        //lz-2016.08.10 执行Sell的时候重置包裹当前的操作Item
        GameUI.Instance.mItemPackageCtrl.ResetCurOpItem();

        if (null == grid || null == grid.ItemObj)
        {
            Debug.LogError("Sell item is null");
            return;
        }

        int proid         = grid.ItemObj.protoId;
        int instanceid    = grid.ItemObj.instanceId;
        int maxStackCount = grid.ItemObj.GetStackMax();
        int cost          = grid.ItemObj.GetSellPrice();//(int)(grid.ItemObj.prototypeData.m_CurrencyValue * num * (0.8f * grid.ItemObj.Durability / grid.ItemObj.DurabilityMax + 0.2f));

        //        string itemname = grid.ItemObj.protoData.GetName();


        if (npc == null)
        {
            return;
        }

        NpcPackageCmpt npcpc = npc.GetCmpt <NpcPackageCmpt>();

        if (npcpc == null)
        {
            return;
        }

        cost *= num;

        if (cost > npcpc.money.current)
        {
            string         errInfo = "";
            EntityInfoCmpt cmpt    = npc.GetCmpt <EntityInfoCmpt>();
            if (cmpt != null)
            {
                string _name = "";
//                if (npc.entityProto.proto == EEntityProto.RandomNpc)
//                {
//                    _name = cmpt.characterName.fullName;
//                }
//                else if (npc.entityProto.proto == EEntityProto.Npc)
//                {
//                    _name = cmpt.characterName.givenName;
//                }
                _name = cmpt.characterName.fullName;
                //lz-2016.10.31 have no money to pay for you!
                errInfo = _name + " " + PELocalization.GetString(8000853);
            }
            else
            {
                //lz-2016.10.31 have no money to pay for you!
                errInfo = npc.name + " " + PELocalization.GetString(8000853);
            }
            new PeTipMsg(errInfo, PeTipMsg.EMsgLevel.Error);
            return;
        }

        //Add money to player
        if (PeGameMgr.IsMulti)
        {
            PlayerNetwork.mainPlayer.RequestSell(npc.Id, instanceid, num);
        }
        else
        {
            npcpc.money.current -= cost;


            ItemObject SellItemObj;
            if (maxStackCount == 1)
            {
                SellItemObj = grid.ItemObj;
            }
            else
            {
                SellItemObj = ItemMgr.Instance.CreateItem(proid);
            }
            PlayerPackageCmpt pkg = PeCreature.Instance.mainPlayer.GetCmpt <PlayerPackageCmpt>();
            if (null == pkg)
            {
                return;
            }
            if (maxStackCount == 1)
            {
                pkg.Remove(SellItemObj);
            }
            else
            {
                pkg.DestroyItem(instanceid, num);
            }
            //if (grid.ItemObj.GetCount() > num)
            //{
            //    SellItemObj = ItemMgr.Instance.CreateItem(grid.ItemObj.protoId); // single
            //    SellItemObj.IncreaseStackCount(num);
            //    grid.ItemObj.DecreaseStackCount(num);
            //}
            //else
            //{
            //    SellItemObj = grid.ItemObj;
            //    PlayerFactory.mMainPlayer.GetItemPackage().RemoveItem(grid.ItemObj);
            //    GameUI.Instance.mUIItemPackageCtrl.ResetItem();
            //}
            //SellItemObj.SetProperty(ItemProperty.SellItemMark, 1f);
            AddRepurchase(SellItemObj, num);

            //            if (cost != 0 && !PeCreature.Instance.mainPlayer.AddToPkg(StroyManager.PRICE_ID, cost))
            //            {
            //                return;
            //            }

            pkg.money.current += cost;
            ResetItem();
        }


        //GameGui_N.Instance.mChatGUI.AddChat(PromptData.PromptType.PromptType_14, itemname, num, cost);

        mOpItem.SetItem(null);
        mOpGrid = null;
        mSellOpLayer.gameObject.SetActive(false);

        return;
    }
예제 #25
0
 public void SetItem(ItemSample itemsp, int cosPerItem)
 {
     mGrid.SetItem(itemsp);
     mCosPerItem = cosPerItem;
 }
예제 #26
0
 void OnGridsExchangeItem(Grid_N grid, ItemObject item)
 {
     grid.SetItem(item);
 }
예제 #27
0
    void OnDropItem(Grid_N grid)
    {
        //1.check
        if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_HotKeyBar && SelectItem_N.Instance.Place == ItemPlaceType.IPT_Null)
        {
            SelectItem_N.Instance.SetItem(null);
            return;
        }

        if (onCheckItem != null && !onCheckItem(SelectItem_N.Instance.ItemObj, ECheckItemType.OnDrop))
        {
            return;
        }

        //2.send 3.do
        if (GameConfig.IsMultiMode)
        {
            OnDropItemMulti(grid, m_Index);
            return;
        }

        ItemObject dragitem = SelectItem_N.Instance.ItemObj;

        if (dragitem == null)
        {
            return;
        }

        ItemObject dropItem = grid.ItemObj;
        ItemObject oldItem  = grid.ItemObj;

        if (dropItem == null)
        {
            grid.SetItem(dragitem);
            if (OnItemChanged != null)
            {
                OnItemChanged(dragitem, oldItem, m_Index);
            }

            SelectItem_N.Instance.RemoveOriginItem();
            SelectItem_N.Instance.SetItem(null);
        }
        else
        {
            Pathea.PlayerPackageCmpt pkg      = Pathea.PeCreature.Instance.mainPlayer.GetCmpt <Pathea.PlayerPackageCmpt>();
            ItemPackage.ESlotType    dropType = ItemPackage.GetSlotType(dropItem.protoId);
            ItemPackage.ESlotType    dragType = ItemPackage.GetSlotType(dragitem.protoId);

            //lz-2016.10.18 如果拖动的Item和放置的Item是同一类型,就直接交换ItemObj数据
            if (dropType == dragType && null != SelectItem_N.Instance.Grid)
            {
                if (SelectItem_N.Instance.Grid.onGridsExchangeItem != null)
                {
                    SelectItem_N.Instance.Grid.onGridsExchangeItem(SelectItem_N.Instance.Grid, dropItem);
                    grid.SetItem(dragitem);
                    SelectItem_N.Instance.SetItem(null);
                    if (OnItemChanged != null)
                    {
                        OnItemChanged(dragitem, oldItem, m_Index);
                    }
                }
            }
            //lz-2016.10.18 如果不是同一类型,或者没有Grid,就先添加,后移除
            else if (pkg.package.CanAdd(dropItem))
            {
                pkg.package.AddItem(dropItem);
                grid.SetItem(dragitem);
                SelectItem_N.Instance.RemoveOriginItem();
                SelectItem_N.Instance.SetItem(null);
            }
            if (OnItemChanged != null)
            {
                OnItemChanged(dragitem, oldItem, m_Index);
            }
        }
    }
예제 #28
0
    void OnDropItem(Grid_N grid)
    {
        //lz-2016.11.16 当前包裹数据为空的时候直接返回
        if (CSUI_MainWndCtrl.Instance == null || grid == null || null == m_CurPack)
        {
            return;
        }

        if (!CSUI_MainWndCtrl.IsWorking())
        {
            return;
        }


        if (!m_IsWorking)
        {
            if (OpStatusEvent != null)
            {
                OpStatusEvent(EEventType.CantWork, CSUtils.GetEntityName(CSConst.etStorage), null);
            }
            return;
        }

        if (null == SelectItem_N.Instance.ItemObj || SelectItem_N.Instance.Place == ItemPlaceType.IPT_HotKeyBar)
        {
            SelectItem_N.Instance.SetItem(null);
            return;
        }

        if (grid.ItemObj == null)
        {
            switch (SelectItem_N.Instance.Place)
            {
            default:

                if (GameConfig.IsMultiMode)
                {
                    if (SelectItem_N.Instance.GridMask != GridMask.GM_Mission)
                    {
                        if (m_storage == null)
                        {
                            if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_Bag)
                            {
                                PlayerNetwork.mainPlayer.RequestPersonalStorageStore(SelectItem_N.Instance.ItemObj.instanceId, grid.ItemIndex);
                            }
                            else if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_NPCStorage)
                            {
                                PlayerNetwork.mainPlayer.RequestPersonalStorageExchange(SelectItem_N.Instance.ItemObj.instanceId, SelectItem_N.Instance.Index, grid.ItemIndex);
                            }
                        }
                        else
                        {
                            if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_Bag)
                            {
                                m_storage._ColonyObj._Network.STO_Store(grid.ItemIndex, SelectItem_N.Instance.ItemObj);
                            }
                            else if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_CSStorage)
                            {
                                m_storage._ColonyObj._Network.STO_Exchange(SelectItem_N.Instance.ItemObj.instanceId, SelectItem_N.Instance.Index, grid.ItemIndex);
                            }

                            return;
                        }
                        if (OpStatusEvent != null)
                        {
                            OpStatusEvent(EEventType.PutItemInto, SelectItem_N.Instance.ItemObj.protoData.GetName(), CSUtils.GetEntityName(CSConst.etStorage));
                        }
                    }
                }
                else
                {
                    if (SelectItem_N.Instance.GridMask != GridMask.GM_Mission)
                    {
                        SelectItem_N.Instance.RemoveOriginItem();
                        grid.SetItem(SelectItem_N.Instance.ItemObj);
                        m_CurPack[grid.ItemIndex] = SelectItem_N.Instance.ItemObj;
                        if (OpStatusEvent != null)
                        {
                            OpStatusEvent(EEventType.PutItemInto, SelectItem_N.Instance.ItemObj.protoData.GetName(), CSUtils.GetEntityName(CSConst.etStorage));
                        }
                    }
                }


                SelectItem_N.Instance.SetItem(null);
                break;
            }
        }
        else
        {
            if (GameConfig.IsMultiMode)
            {
                if (m_storage == null)
                {
                    if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_NPCStorage)
                    {
                        PlayerNetwork.mainPlayer.RequestPersonalStorageExchange(SelectItem_N.Instance.ItemObj.instanceId, SelectItem_N.Instance.Index, grid.ItemIndex);
                    }
                }
                else
                {
                    if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_CSStorage)
                    {
                        m_storage._ColonyObj._Network.STO_Exchange(SelectItem_N.Instance.ItemObj.instanceId, SelectItem_N.Instance.Index, grid.ItemIndex);
                    }

                    return;
                }
            }
            else
            {
                Pathea.PlayerPackageCmpt pkg = Pathea.PeCreature.Instance.mainPlayer.GetCmpt <Pathea.PlayerPackageCmpt>();

                ItemObject dragItem = SelectItem_N.Instance.ItemObj;
                ItemObject dropItem = grid.ItemObj;

                ItemPackage.ESlotType dropType = ItemPackage.GetSlotType(dropItem.protoId);
                ItemPackage.ESlotType dragType = ItemPackage.GetSlotType(dragItem.protoId);

                //lz-2016.10.18 如果拖动的Item和放置的Item是同一类型,就直接交换ItemObj数据
                if (dropType == dragType && null != SelectItem_N.Instance.Grid)
                {
                    if (SelectItem_N.Instance.Grid.onGridsExchangeItem != null)
                    {
                        SelectItem_N.Instance.Grid.onGridsExchangeItem(SelectItem_N.Instance.Grid, dropItem);
                        grid.SetItem(dragItem);
                        m_CurPack[grid.ItemIndex] = grid.ItemObj;
                        SelectItem_N.Instance.SetItem(null);
                    }
                }
                //lz-2016.10.18 如果不是同一类型,或者没有Grid,就先添加,后移除
                else if (pkg.package.CanAdd(dropItem))
                {
                    pkg.package.AddItem(dropItem);
                    grid.SetItem(dragItem);
                    SelectItem_N.Instance.RemoveOriginItem();
                    SelectItem_N.Instance.SetItem(null);
                }
            }
        }
    }
예제 #29
0
 void UpdateGrid(Grid_N grid, ItemObject item, int index)
 {
     grid.SetItem(item);
     grid.SetItemPlace(ItemPlaceType.IPT_ColonyTradingPost, index);
     grid.SetGridMask(GridMask.GM_Any);
 }
예제 #30
0
 void OnGridsExchangeItems(Grid_N grid, ItemObject item)
 {
     grid.SetItem(item);
     m_CurPack[grid.ItemIndex] = grid.ItemObj;
 }