public int GetVacancySlotIndex(ItemPackage.ESlotType slotType, bool isMissionPkg = false) { if (isMissionPkg) { _missionPak.GetVacancySlotIndex(slotType); } return(_playerPak.GetVacancySlotIndex(slotType)); }
public SlotList GetSlotList(ItemPackage.ESlotType type, bool isMissionPkg = false) { if (isMissionPkg) { return(_missionPak.GetSlotList(type)); } return(_playerPak.GetSlotList(type)); }
public ItemObject GetItem(ItemPackage.ESlotType slotType, int index, bool isMissionPkg = false) { if (isMissionPkg) { return(_missionPak.GetItem(slotType, index)); } return(_playerPak.GetItem(slotType, index)); }
public int PutItem(ItemObject item, int slotIndex, ItemPackage.ESlotType slotType) { if (item.protoData.category == quest_item) { return(_missionPak.PutItem(item, slotIndex, slotType)); } else { return(_playerPak.PutItem(item, slotIndex, slotType)); } }
public void Clear(ItemPackage.ESlotType type = ItemPackage.ESlotType.Max, bool isMissionPkg = false) { if (type == ItemPackage.ESlotType.Max) { GetSlotList(ItemPackage.ESlotType.Item).Clear(); GetSlotList(ItemPackage.ESlotType.Equipment).Clear(); GetSlotList(ItemPackage.ESlotType.Resource).Clear(); GetSlotList(ItemPackage.ESlotType.Armor).Clear(); GetSlotList(ItemPackage.ESlotType.Item, true).Clear(); } else { if (isMissionPkg) { _missionPak.GetSlotList(type).Clear(); } else { _playerPak.GetSlotList(type).Clear(); } } if (isMissionPkg) { _missionPak.changeEventor.Dispatch(new ItemPackage.EventArg() { op = ItemPackage.EventArg.Op.Clear, itemObj = null }); } else { _playerPak.changeEventor.Dispatch(new ItemPackage.EventArg() { op = ItemPackage.EventArg.Op.Clear, itemObj = null }); } }
public void OnDropItem(Grid_N grid) { if (this.mRepairMachine.m_Repair != null && this.mRepairMachine.m_Repair.IsRepairingM) { return; } if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_HotKeyBar || SelectItem_N.Instance.Place == ItemPlaceType.IPT_Repair) { return; } //lz-2016.09.19 如果是ISO就返回,营地修理机不支持修ISO if (WhiteCat.CreationHelper.GetCreationItemClass(SelectItem_N.Instance.ItemObj) != WhiteCat.CreationItemClass.None) { //lz-2016.10.23 增加只能在基地修理的提示 PeTipMsg.Register(PELocalization.GetString(8000843), PeTipMsg.EMsgLevel.Warning); return; } ActiveWnd(); Repair dragRepairItem = SelectItem_N.Instance.ItemObj.GetCmpt <Repair>(); if (dragRepairItem == null) { return; } if (dragRepairItem.protoData.repairMaterialList == null || dragRepairItem.protoData.repairMaterialList.Count == 0) { return; } //多人模式 if (Pathea.PeGameMgr.IsMulti) { int[] itemlist = new int[1]; itemlist[0] = SelectItem_N.Instance.ItemObj.instanceId; _net.InsertItemList(itemlist); return; } else { //lz-2016.07.29 在修理机拖入物品的时候,如果里面有东西就先尝试取出里面的物品到背包,执行成功的时候再放进新的物品 if (null == mRepairItem.ItemObj) { UpdateItem(dragRepairItem); SelectItem_N.Instance.RemoveOriginItem(); SelectItem_N.Instance.SetItem(null); } else { //lz-2016.10.19 如果拖动的Item和放置的Item是同一类型,就直接交换ItemObj数据 ItemPackage.ESlotType dropType = ItemPackage.GetSlotType(mRepairItem.ItemObj.protoId); ItemPackage.ESlotType dragType = ItemPackage.GetSlotType(dragRepairItem.itemObj.protoId); if (dropType == dragType && null != SelectItem_N.Instance.Grid) { if (SelectItem_N.Instance.Grid.onGridsExchangeItem != null) { SelectItem_N.Instance.Grid.onGridsExchangeItem(SelectItem_N.Instance.Grid, mRepairItem.ItemObj); UpdateItem(dragRepairItem); SelectItem_N.Instance.SetItem(null); } } //lz-2016.10.19 如果不是同一类型,或者没有Grid,就先添加,后移除 else { if (TryAddCurRepairItemToPlayerPackage()) { UpdateItem(dragRepairItem); SelectItem_N.Instance.RemoveOriginItem(); SelectItem_N.Instance.SetItem(null); } } } } }
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); } } }
public static SlotList GetSlotList(ItemPackage.ESlotType type) { return(_itemPackage.GetSlotList(type)); }
public void Sort(ItemPackage.ESlotType type) { _playerPak.Sort(type); _missionPak.Sort(type); }
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); } } } }