public bool isHasZoneId(int Zone) { IDictionaryEnumerator itr = DataManager.Scene_StageListTable.GetEnumerator(); while (itr.MoveNext()) { Scene_StageListTableItem item = itr.Value as Scene_StageListTableItem; if (null == item) { return(false); } if (item.mZoneId == Zone) { return(true); } } // foreach (DictionaryEntry de in DataManager.Scene_StageListTable) // { // Scene_StageListTableItem item = de.Value as Scene_StageListTableItem; // if (null == item) // return false; // // if (item.mZoneId == Zone) // return true; // } return(false); }
// 关联数据 public void SetData(Scene_StageListTableItem item) { mListItem = item; if (DataManager.Scene_StageSceneTable.ContainsKey(item.mNromalStageId)) { SetStageRes(DataManager.Scene_StageSceneTable[item.mNromalStageId] as Scene_StageSceneTableItem); } }
// 是否有英雄难度 public bool HasSeriousLevel(Scene_StageListTableItem res) { if (res == null) { return(false); } return(DataManager.Scene_StageSceneTable.ContainsKey(res.mSeriousStageId)); }
// 是否有普通难度; public bool HasNormalLevel(Scene_StageListTableItem res) { if (res == null) { return(false); } return(DataManager.Scene_StageSceneTable.ContainsKey(res.mNromalStageId) && Convert.ToBoolean(res.mIsShowStar)); }
public bool isLock(Scene_CitySceneTableItem Item) { PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>(); if (module == null || null == Item) { return(true); } if (-1 == Item.mZoneid) { return(false); } if (!isHasZoneId(Item.mZoneid)) { GameDebug.LogError("scene_city.txt:" + Item.name + "场景在 scene_stagelist.txt 没有对应战区Id"); return(true); } if (0 >= DataManager.Scene_StageListTable.Count) { return(true); } IDictionaryEnumerator itr = DataManager.Scene_StageListTable.GetEnumerator(); while (itr.MoveNext()) { Scene_StageListTableItem item = itr.Value as Scene_StageListTableItem; if (null == item) { return(true); } if (Item.mZoneid != item.mZoneId) { continue; } if (0 == module.GetStagePassTimes(item.mNromalStageId)) { return(true); } } // foreach (DictionaryEntry de in DataManager.Scene_StageListTable) // { // Scene_StageListTableItem item = de.Value as Scene_StageListTableItem; // if (null == item) // return true; // // if (Item.mZoneid != item.mZoneId) // continue; // // if (0 == module.GetStagePassTimes(item.mNromalStageId)) // { // return true; // } // } return(false); }
// 更新关卡列表 private void UpdateItemList() { SortedList <int, Scene_StageListTableItem> sortedlist = new SortedList <int, Scene_StageListTableItem>(); IDictionaryEnumerator itr = DataManager.Scene_StageListTable.GetEnumerator(); while (itr.MoveNext()) { Scene_StageListTableItem list = itr.Value as Scene_StageListTableItem; sortedlist.Add(list.mId, list); } // foreach(Scene_StageListTableItem list in DataManager.Scene_StageListTable.Values) // { // sortedlist.Add(list.mId, list); // } PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>(); if (module == null) { return; } int itemidx = 0; foreach (Scene_StageListTableItem list in sortedlist.Values) { if (list.mZoneId != mModule.ZoneId) { continue; } GameObject obj = WindowManager.Instance.CloneGameObject(stagelistItemPrefab); if (obj == null) { continue; } obj.SetActive(true); obj.name = "StageListItemUI" + list.mId.ToString(); obj.transform.parent = mGrid.transform; obj.transform.localScale = Vector3.one; StageListItemUI itemui = new StageListItemUI(obj); if (itemui == null) { continue; } itemui.Idx = itemidx++; itemui.AddListener(); mModule.AddStageListItem(itemui); itemui.SetData(list); UIEventListener.Get(obj).onClick = OnStageItemClicked; StageData data = module.GetStageData(list.mNromalStageId); itemui.SetEnterTimes((int)module.GetStageDailyTimes(list.mNromalStageId)); //if (mModule.GetStageListCount() > 1 && data == null) //{ // itemui.SetLocked(true); // itemui.UpdateUI(); // break; //} ///活动本儿只显示一个可进入的关卡; if (mModule.IsActiveStage()) { if (data == null) { itemui.SetLocked(true); itemui.UpdateUI(); break; } if (mModule.GetStageListCount() > 1) { mModule.RemoveStageListFirstItem(); } itemui.SetLocked(false); itemui.UpdateUI(); } else { if (mModule.GetStageListCount() > 1 && data == null) { itemui.SetLocked(true); itemui.UpdateUI(); break; } itemui.SetLocked(false); itemui.UpdateUI(); } } mGrid.repositionNow = true; }
// 更新选中的关卡 private void UpdateSelectedItem() { if (mModule.SelectedUI == null) { StageListItemUI ui = null; int selectedLevel = 0; if (mModule.SelectedStageRes != null) { List <StageListItemUI> list = mModule.GetStageUIList(); if (list == null) { return; } foreach (StageListItemUI item in list) { Scene_StageListTableItem listres = item.GetData(); if (!item.GetLocked()) { if (listres.mNromalStageId == mModule.SelectedStageRes.resID && mPlayerModule.IsStageUnlock(listres.mNromalStageId)) { ui = item; selectedLevel = 0; break; } else if (listres.mHardStageId == mModule.SelectedStageRes.resID && mPlayerModule.IsStageUnlock(listres.mHardStageId)) { ui = item; selectedLevel = 1; break; } else if (listres.mSeriousStageId == mModule.SelectedStageRes.resID && mPlayerModule.IsStageUnlock(listres.mSeriousStageId)) { ui = item; selectedLevel = 2; break; } } } } if (ui == null) { ui = mModule.GetHeadStageUI(); mStagePanel.transform.localPosition = new Vector3(mStagePanel.transform.localPosition.x, 92.0f, mStagePanel.transform.localPosition.z); mStagePanel.clipOffset = new Vector2(mStagePanel.clipOffset.x, 19.0f); } else { int curline = ui.Idx / 3; mStagePanel.transform.localPosition = new Vector3(mStagePanel.transform.localPosition.x, 92.0f + (curline * 182.0f), mStagePanel.transform.localPosition.z); mStagePanel.clipOffset = new Vector2(mStagePanel.clipOffset.x, 19.0f - (curline * 182.0f)); } OnStageUIClicked(ui); mModule.SelectedLevel = selectedLevel; } Dirty = true; }