Beispiel #1
0
        void ShowEctypePanel(params object[] value)        //object obj)
        {
            //TraceUtil.Log("收到打开副本界面请求");
            //LoadingUI.Instance.Close();

            //SMSGEctypeSelect_SC sMSGEctypeSelect_SC = (SMSGEctypeSelect_SC)obj;
//            if (PlayerManager.Instance.FindHeroDataModel().SMsg_Header.uidEntity != sMSGEctypeSelect_SC.uidEntity)
//                return;
            int ectypeID = -1;

            if (value != null && value.Length > 0)
            {
                ectypeID = (int)value[0];
            }
            if (ectypePanelScript == null)
            {
                ectypePanelScript = CreatObjectToNGUI.InstantiateObj(EctypePrefab, transform).GetComponent <EctypePanel_V5>();
                //ectypePanelScript.Init(this);
            }
            ectypePanelScript.Show(EctypeModel.Instance.sMSGEctypeSelect_SC, this, ectypeID);
        }
Beispiel #2
0
        public IEnumerator Init(SMSGEctypeSelect_SC unlockEctypeData, EctypePanel_V5 myParent, int ectypeID)
        {
            Init();
            MyParent = myParent;
            ResetItemListPosition();
            MyEctypeDiffItemList.ApplyAllItem(C => Destroy(C.gameObject));
            float startMarkDragpanelPosY = m_UIDraggablePanel.transform.localPosition.y;

            m_UIDraggablePanel.transform.localPosition = new Vector3(m_UIDraggablePanel.transform.localPosition.x, startPosY, m_UIDraggablePanel.transform.localPosition.z);
            MyEctypeDiffItemList.Clear();
            //指定跳转区域副本ID
            int singleItemIndex = 0;
            int areaEctypeID    = -1;

            if (ectypeID != -1)
            {
                areaEctypeID = EctypeConfigManager.Instance.GetSelectContainerID(ectypeID);
            }
            yield return(null);

            //UnlockEctypeData = unlockEctypeData;
            List <int>           ectypeDiffID  = new List <int>();
            SingleEctypeDiffItem tweenDiffItem = null;

            foreach (var child in unlockEctypeData.sMSGEctypeData_SCs)
            {
                //获取区域副本ID
                int diffID = myParent.GetEctypeDiffID((int)child.dwEctypeContaienrID);
                if (!ectypeDiffID.Contains(diffID))
                {
                    ectypeDiffID.Add(diffID);
                }
            }
            ectypeDiffID.Sort((left, right) =>
            {
                if (left > right)
                {
                    return(1);
                }
                else if (left == right)
                {
                    return(0);
                }
                else
                {
                    return(-1);
                }
            });
            for (int i = 0; i <= ectypeDiffID.Count; i++)
            {
                if (i < ectypeDiffID.Count)              //显示解锁的副本
                {
                    if (areaEctypeID != -1 && areaEctypeID == ectypeDiffID[i])
                    {
                        singleItemIndex = i;
                    }
                    SingleEctypeDiffItem newItem = CreatObjectToNGUI.InstantiateObj(SingleEctypeDiffItemPrefab, Grid).GetComponent <SingleEctypeDiffItem>();
                    newItem.Init(EctypeConfigManager.Instance.EctypeSelectConfigList[ectypeDiffID[i]], this);
                    newItem.transform.localPosition = new Vector3(0, 200 - 126 * i, 0);

                    MyEctypeDiffItemList.Add(newItem);
                }
                else if (i < EctypeConfigManager.Instance.EctypeSelectConfigList.Count)              //显示未解锁的副本,选中最后一个解锁副本
                {
                    SingleEctypeDiffItem newItem = CreatObjectToNGUI.InstantiateObj(SingleEctypeDiffItemPrefab, Grid).GetComponent <SingleEctypeDiffItem>();
                    newItem.Init(null, this);
                    newItem.transform.localPosition = new Vector3(0, 200 - 126 * i, 0);
                    MyEctypeDiffItemList.Add(newItem);
                    //tweenDiffItem = MyEctypeDiffItemList[i-1];//SelectAndMoveToEctypeDiffItem(MyEctypeDiffItemList[i-1]);
                    if (areaEctypeID == -1)
                    {
                        singleItemIndex = i - 1;
                    }
                    tweenDiffItem = MyEctypeDiffItemList[singleItemIndex];
                }
            }
            DragBackground.transform.localScale = new Vector3(40, 126 * (ectypeDiffID.Count), 0);
            yield return(null);

            for (int i = 0; i < MyEctypeDiffItemList.Count; i++)
            {
                var newItem = MyEctypeDiffItemList[i];
                if (newItem.MyConfigData != null)
                {
                    newItem.DragAmount = (i + 1) / (float)MyEctypeDiffItemList.Count;
                    newItem.gameObject.RegisterBtnMappingId(newItem.MyConfigData._lEctypeID, UIType.Battle, BtnMapId_Sub.Battle_EctypeTab
                                                            , NoticeToDragSlerp, newItem.DragAmount);
                }
            }
            if (m_noticeToDragAmount != 0)
            {
                m_UIDraggablePanel.transform.localPosition = new Vector3(m_UIDraggablePanel.transform.localPosition.x, startMarkDragpanelPosY, m_UIDraggablePanel.transform.localPosition.z);
                StartCoroutine(DragAmountSlerp(m_noticeToDragAmount));
                m_noticeToDragAmount = 0;
                if (tweenDiffItem != null)
                {
                    OnMyChildItemClick(tweenDiffItem);
                }
            }
            else if (tweenDiffItem != null)
            {
                SelectAndMoveToEctypeDiffItem(tweenDiffItem, singleItemIndex);
            }
        }
Beispiel #3
0
        public void Show(EctypeSelectConfigData selectData, EctypePanel_V5 myParent)
        {
            Init();
            m_TreasureChestsPanel.Init(this);
            EctypeSelectData = selectData;
            MyParent         = myParent;
            //查找当前页面最大解锁副本id
            MaxEctypeContaienrID = 0;
            myEctypeContainerIDList.Clear();
            selectData._vectContainer.ApplyAllItem(c => myEctypeContainerIDList.Add(c));
            selectData.Difficult2Container.ApplyAllItem(c => myEctypeContainerIDList.Add(c));
            foreach (var child in EctypeModel.Instance.sMSGEctypeSelect_SC.sMSGEctypeData_SCs)           //myParent.UnlockEctypeData.sMSGEctypeData_SCs)
            {
                if (myEctypeContainerIDList.Contains((int)child.dwEctypeContaienrID) && (int)child.dwEctypeContaienrID > MaxEctypeContaienrID)
                {
                    MaxEctypeContaienrID = (int)child.dwEctypeContaienrID;
                }
            }
            bool islock = false;

            MyContainerItemSlotList.ApplyAllItem(c => c.SetMyselfActive(false));
            int i = 0;

            for (; i < MyContainerItemSlotList.Count; i++)
            {
                if (selectData._vectContainer.Length > i)
                {
                    MyContainerItemSlotList[i].SetMyselfActive(true);
                    islock = EctypeIDIsLock(GetContainerID(i, true));
                    MyContainerItemSlotList[i].Init(GetContainerID(i, true), GetContainerID(i, false), this, MyParent.jumpPointEctypeID);
                    if (islock)
                    {
                        if (i < MyContainerItemSlotList.Count - 1)
                        {
                            m_SingleTreasureChestsItem.transform.localPosition = MyContainerItemSlotList[i + 1].transform.localPosition;
                        }
                        else
                        {
                            m_SingleTreasureChestsItem.transform.localPosition = originalPos;
                        }
                        break;
                    }
                }
                else
                {
                    break;
                }
            }
            if (!islock)
            {
                if (i >= MyContainerItemSlotList.Count)
                {
                    i = MyContainerItemSlotList.Count;
                    m_SingleTreasureChestsItem.transform.localPosition = originalPos;
                }
                else
                {
                    m_SingleTreasureChestsItem.transform.localPosition = MyContainerItemSlotList[i].transform.localPosition;
                }
            }
            m_SingleTreasureChestsItem.UpdateStatus(this);
        }