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); }
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); } }
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); }