Example #1
0
        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();
        }
Example #2
0
//		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();
        }
Example #3
0
        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);
                    }
                }
            }
        }