Ejemplo n.º 1
0
    // 点击关卡项目
    private void OnStageItemClicked(GameObject target)
    {
        StageListItemUI        item  = null;
        List <StageListItemUI> items = mModule.GetStageUIList();

        foreach (StageListItemUI sli in items)
        {
            if (sli == null)
            {
                continue;
            }
            if (GameObject.ReferenceEquals(target, sli.gameObject))
            {
                item = sli;
                break;
            }
        }
        if (item == null)
        {
            return;
        }

        OnStageUIClicked(item);

        UpdateSelectedItem();
    }
Ejemplo n.º 2
0
 // 清空
 public void ClearStageListItem()
 {
     mSelectedUI        = null;
     mSelectedLevel     = 0;
     mSelectedStageItem = null;
     mStageItemList     = new List <StageListItemUI>();
 }
Ejemplo n.º 3
0
    // 添加
    public void AddStageListItem(StageListItemUI ui)
    {
        if (mStageItemList == null)
        {
            mStageItemList = new List <StageListItemUI>();
        }

        mStageItemList.Add(ui);
    }
Ejemplo n.º 4
0
    // 点击关卡项目
    private void OnStageUIClicked(StageListItemUI ui)
    {
        if (ui == null)
        {
            return;
        }

        foreach (StageListItemUI uiitem in mModule.GetStageUIList())
        {
            uiitem.SetSelected(false);
        }

        ui.SetSelected(true);

        mModule.SelectedUI = ui;
    }
Ejemplo n.º 5
0
    // 更新关卡列表
    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;
    }
Ejemplo n.º 6
0
    // 更新选中的关卡
    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;
    }