void Init() { Grid.ClearChild(); MyItemList.Clear(); SelectItemList.Clear(); List <ItemFielInfo> packItemList = ContainerInfomanager.Instance.GetPackItemList().Where(p => (!p.GetIfBesetJewel(1)) && (!p.GetIfBesetJewel(2)) && (p.LocalItemData._TradeFlag == 1)).ToList(); // 所有已装备的装备本地信息 List <EquipmentData> equipedDataList = new List <EquipmentData>(); ContainerInfomanager.Instance.GetEquiptItemList().ApplyAllItem(P => equipedDataList.Add(P.LocalItemData as EquipmentData)); packItemList.Sort((left, right) => { bool leftCanSelectFast = IsCanFastSelect(left.LocalItemData, equipedDataList); bool rightCanSelectFast = IsCanFastSelect(right.LocalItemData, equipedDataList); if (leftCanSelectFast && !rightCanSelectFast) { return(-1); } else if (!leftCanSelectFast && rightCanSelectFast) { return(1); } else { if (left.sSyncContainerGoods_SC.nPlace < right.sSyncContainerGoods_SC.nPlace) { return(-1); } else if (left.sSyncContainerGoods_SC.nPlace == right.sSyncContainerGoods_SC.nPlace) { return(0); } else { return(1); } } }); for (int i = 0; i < ContainerInfomanager.Instance.GetAllPackMaxNum(); i++) { int indexX = i % 4; int indexY = i / 4; GameObject newObj = CreatObjectToNGUI.InstantiateObj(SinglePackItemPrefab, Grid); newObj.transform.localScale = new Vector3(0.85f, 0.85f, 1); newObj.transform.localPosition = new Vector3(-136 + 90 * indexX, 140 - 94 * indexY, 0); SinglePackItemSlot newItemSlot = newObj.GetComponent <SinglePackItemSlot>(); ItemFielInfo newItemFielInfo = packItemList.Count > i?packItemList[i]:null; newItemSlot.Init(newItemFielInfo, false, SinglePackItemSlot.ItemStatus.Sell, OnItemCLick); MyItemList.Add(newItemSlot); //引导注入 if (newItemFielInfo != null) { newObj.RegisterBtnMappingId(newItemFielInfo.LocalItemData._goodID, UIType.Package, BtnMapId_Sub.Package_Cell); } } //UpdateSellBtnStatus(); }
// void UpdateSellBtnStatus() // { // bool isEnabel = SelectItemList.Count>0; // SellButton.SetImageButtonComponentActive(isEnabel?true:false); // SellButton.SetButtonBackground(isEnabel?1:2); // SellButton.gameObject.collider.enabled = isEnabel; // } void OnItemCLick(object obj) { ItemFielInfo clickItemInfo = obj as ItemFielInfo; SinglePackItemSlot clickItem = MyItemList.First(P => P.MyItemFileInfo == clickItemInfo); bool selectStatus = !clickItem.IsSelect; clickItem.SetSelectStatus(selectStatus); if (selectStatus && !SelectItemList.Contains(clickItem)) { SelectItemList.Add(clickItem); } else if (!selectStatus && SelectItemList.Contains(clickItem)) { SelectItemList.Remove(clickItem); } //UpdateSellBtnStatus(); }
void UpdateStatus() { if (IsLock) { PackLockCallBack = CreatObjectToNGUI.InstantiateObj(PackLockPrefab, transform).GetComponent <SingleButtonCallBack>(); PackLockCallBack.transform.localScale = new Vector3(1.05f, 0.85f, 1); PackLockCallBack.transform.localPosition = Vector3.zero; PackLockCallBack.SetCallBackFuntion(OnLockBtnClick); // 计算解锁的格数 int UnlockBox = (ContainerInfomanager.Instance.GetContainerClientContsext(2).wMaxSize / 4) - 4; int tackGold = GetActiveEnergyHaveGold(UnlockBox); PackLockCallBack.SetButtonText(tackGold.ToString()); // 引导注入代码 PackLockCallBack.gameObject.RegisterBtnMappingId(UIType.Package, BtnMapId_Sub.Package_PackUnLock); } else { List <ItemFielInfo> allPackItemList = MyParent.MyPackItemList; for (int i = MyIndex * 4, iMax = (MyIndex + 1) * 4; i < iMax; i++) { //ItemFielInfo currentItemFile = allPackItemList.FirstOrDefault(P=>P.sSyncContainerGoods_SC.nPlace == i);//按后台位置排序 ItemFielInfo currentItemFile = allPackItemList.Count > i? allPackItemList[i]: null; ItemFielInfo bestItem = null; EquiptSlotType myItemType = EquiptSlotType.Null; if (currentItemFile != null) { myItemType = getEquiptType(currentItemFile); } MyParent.BestItemList.TryGetValue(myItemType, out bestItem); bool isBestItem = bestItem != null && bestItem == currentItemFile; SinglePackItemSlot newItemSlot = CreatObjectToNGUI.InstantiateObj(SinglePackItemPrefab, transform).GetComponent <SinglePackItemSlot>(); newItemSlot.gameObject.transform.localScale = new Vector3(0.85f, 0.85f, 1); newItemSlot.transform.localPosition = new Vector3(-136 + 90 * (i - MyIndex * 4), 0, 0); newItemSlot.Init(currentItemFile, isBestItem, SinglePackItemSlot.ItemStatus.PackItem, MyParent.MyParent.OnItemClick); m_SingleItemList.Add(newItemSlot); //引导注入 if (currentItemFile != null) { newItemSlot.gameObject.RegisterBtnMappingId(currentItemFile.LocalItemData._goodID, UIType.Package, BtnMapId_Sub.Package_Cell , m_dragAmountSlerpAct, m_dragAmount); } } } }