/// <summary> 스테이지 이동 </summary>
    void OnClickMoveState(int dir)
    {
        if (CurrentData == null)
        {
            return;
        }

        ChapterPanel.DataStage stage = Chapter.GetDataStage((uint)(CurrentData.TableID + dir));
        if (stage != null)
        {
            SetStagePopup(stage, false);
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// 스테이지 셋팅
    /// </summary>
    /// <param name="list">스테이지 정보 리스트</param>
    /// <param name="callBack">클릭시 호출될 콜백함수</param>
    void SetStage(List <ChapterPanel.DataStage> list, System.Action <ChapterPanel.DataStage> callBack)
    {
        IsLevelHard = list[0]._StageLowData.StageId >= 10000 ? true : false;

        for (int i = 0; i < StageObjs.Count; i++)
        {
            if (i >= list.Count)
            {
                continue;
            }

            Transform tf = StageObjs[i].transform;
            ChapterPanel.DataStage data = list[i];

            TweenAlpha tween;
            if (tf.FindChild("iconeff").gameObject.GetComponent <TweenAlpha>() == null)
            {
                tf.FindChild("iconeff").gameObject.AddComponent <TweenAlpha>();
            }
            tween = tf.FindChild("iconeff").gameObject.GetComponent <TweenAlpha>();

            tween.transform.gameObject.SetActive(false);

            //하드모드는 최초보상과 기본보상이존재..
            if (IsLevelHard)
            {
                GatchaReward.FixedRewardInfo basicInfo = _LowDataMgr.instance.GetFixedRewardItem(list[i]._StageLowData.FixedReward);
                GatchaReward.FixedRewardInfo firstInfo = _LowDataMgr.instance.GetFixedRewardItem(list[i]._StageLowData.FirstReward);

                if (basicInfo != null)
                {
                    BasickRewardSlot[i].SetLowDataItemSlot(basicInfo.ItemId, basicInfo.ItemCount);
                }
                if (firstInfo != null)
                {
                    FirstRewardSlot[i].SetLowDataItemSlot(firstInfo.ItemId, firstInfo.ItemCount);
                }

                GameObject fisrtRewardRecieve = tf.FindChild("FirstReward/Receive").gameObject;
                fisrtRewardRecieve.SetActive(list[i].State == 1);
            }



            Quest.QuestInfo quest = QuestManager.instance.GetCurrentQuest();
            if (quest != null) //현재 퀘스트가 모험입장쿠ㅔ인가?
            {
                if (quest.type == 1 || quest.type == 2)
                {
                    if (list[i].TableID == quest.ParamId)
                    {
                        tween.style = UITweener.Style.PingPong;
                        tween.from  = 0.2f;
                        tween.to    = 1f;
                        tween.transform.gameObject.SetActive(true);
                    }
                }
            }
            //클리어 등급 셋팅
            int childCount = tf.FindChild("ClearGrade").childCount;
            for (int j = 0; j < childCount; j++)
            {
                Transform gradeTf = tf.FindChild(string.Format("ClearGrade/{0}", j)).GetChild(0);
                if (gradeTf == null)
                {
                    break;
                }

                if (j < data.TotalClearGrade)
                {
                    gradeTf.gameObject.SetActive(true);
                }
                else
                {
                    gradeTf.gameObject.SetActive(false);
                }
            }

            ////스테이지 버튼 처리. 난이도 체크 확인하면 지우고 밑에걸로..
            bool isEnable = data.State != -1 ? true : false;

            tf.FindChild("icon_on").gameObject.SetActive(isEnable);
            tf.FindChild("icon_off").gameObject.SetActive(!isEnable);

            string  namePath = (isEnable ? "icon_on" : "icon_off") + "/name_d4";
            UILabel nameLbl  = tf.FindChild(namePath).GetComponent <UILabel>();
            nameLbl.text = VerticalText(data.StageName);

            UIEventTrigger uiTri = tf.GetComponent <UIEventTrigger>();
            if (uiTri == null)
            {
                continue;
            }

            EventDelegate.Set(uiTri.onClick, delegate() { callBack(data); });
        }
    }
    /// <summary>
    /// 이 함수가 시작점임 스테이지 정보 팝업에서 ReadyInfo로 넘어갈 수 있다.
    /// </summary>
    /// <param name="dataStage"></param>
    public void SetStagePopup(ChapterPanel.DataStage dataStage, bool isAction)
    {
        gameObject.SetActive(true);
        SetTypeEnablePopup(POPUP_TYPE.STAGE_INFO);
        CurrentData = dataStage;

        bool isNext = true, isPrev = true;

        ChapterPanel.DataStage prev = Chapter.GetDataStage(CurrentData.TableID - 1);
        ChapterPanel.DataStage next = Chapter.GetDataStage(CurrentData.TableID + 1);
        if (prev == null)
        {
            isPrev = false;
        }
        if (next == null)
        {
            isNext = false;
        }

        MoveStage[0].SetActive(isPrev);
        MoveStage[1].SetActive(isNext);

        //스트링 셋팅
        StageLabels[(uint)STAGE_LABEL_TYPE.STAGE_NAME].text = string.Format("{0}", dataStage.StageName); //_LowDataMgr.instance.GetString
        StageLabels[(uint)STAGE_LABEL_TYPE.STORY].text      = dataStage.Story;                           //("스토리던전")

        //bool isTuto = UIMgr.instance.CurTutorial == TutorialType.CHAPTER;
        BasicReward.SetActive(false);
        FirstReward.SetActive(false);
        for (int i = 0; i < 4; i++)
        {
            if (i == 0)// 최초
            {
                FirstReward.SetActive(true);

                GameObject fisrtRewardRecieve = FirstReward.transform.FindChild("getMark").gameObject;
                FirstReward.transform.FindChild("getMark").gameObject.SetActive(CurrentData.State == 1);
            }
            if (i == 1 && CurrentData._StageLowData.type == 2)// 기본
            {
                BasicReward.SetActive(true);
            }


            uint dropItemId = CurrentData.GetDropItemID(i);
            if (dropItemId <= 0)
            {
                InvenSlot[i].gameObject.SetActive(false);
            }
            else
            {
                int arr = i;
                InvenSlot[i].gameObject.SetActive(true);
                InvenSlot[i].SetLowDataItemSlot(dropItemId, 0, delegate(ulong key)
                {
                    UIMgr.OpenDetailPopup(Chapter, (uint)key);
                });
            }

            string appearMon = CurrentData.GetMonsterIcon(i);
            if (string.IsNullOrEmpty(appearMon))
            {
                StageSprites[(uint)StageSpType.Monster_0 + i].gameObject.SetActive(false);
            }
            else
            {
                StageSprites[(uint)StageSpType.Monster_0 + i].gameObject.SetActive(true);
                StageSprites[(uint)StageSpType.Monster_0 + i].spriteName = appearMon;
            }
        }

        StageLabels[(uint)STAGE_LABEL_TYPE.CLEAR_CONDITION_0].text = dataStage.QuestList[0].GetTypeString();
        StageLabels[(uint)STAGE_LABEL_TYPE.CLEAR_CONDITION_1].text = dataStage.QuestList[1].GetTypeString();
        StageLabels[(uint)STAGE_LABEL_TYPE.CLEAR_CONDITION_2].text = dataStage.QuestList[2].GetTypeString();

        Color colA = new Color(1, 1, 1, 0.3f);

        StageLabels[(uint)STAGE_LABEL_TYPE.CLEAR_CONDITION_0].transform.GetChild(0).GetComponent <UISprite>().color = CurrentData.ClearInfo[0] != 0 ? Color.white : colA;
        StageLabels[(uint)STAGE_LABEL_TYPE.CLEAR_CONDITION_1].transform.GetChild(0).GetComponent <UISprite>().color = CurrentData.ClearInfo[1] != 0 ? Color.white : colA;
        StageLabels[(uint)STAGE_LABEL_TYPE.CLEAR_CONDITION_2].transform.GetChild(0).GetComponent <UISprite>().color = CurrentData.ClearInfo[2] != 0 ? Color.white : colA;

        int clearCount = CurrentData.ClearInfo.Length;

        for (int i = 0; i < clearCount; i++)
        {
            MissionClearStar[i].spriteName = CurrentData.ClearInfo[i] == 0 ? "Img_Star01" : "Img_Star02";
        }

        ///당장은 꺼놓는다.
        //소탕권 셋팅
        if (3 <= dataStage.TotalClearGrade)//조건을 만족했다면 소탕권 오픈
        {
            BtnSweep.SetActive(true);
        }
        else//진행해야할 스테이지면 소탕 못함.
        {
            BtnSweep.SetActive(false);
        }

        SweepSlotList.Clear();
        SweepPaging.NowCreate(SweepSlotList.Count);

        IsPopAction = isAction;
        if (IsPopAction)
        {
            StageActions[0].ResetToBeginning();
            StageActions[0].PlayForward();
            TempCoroutine.instance.FrameDelay(StageActions[0].delay + StageActions[0].duration, () => {
                IsPopAction = false;
                Chapter.OnSubTutorial();

                StageActions[1].ResetToBeginning();
                StageActions[1].PlayForward();
            });
        }

        if (CurrentData._StageLowData.DailyEntercount == 0)//남은횟수 : 무제한
        {
            transform.FindChild("StageInfoView/Right/daily_count").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(302), _LowDataMgr.instance.GetStringCommon(305));
        }
        else//남은횟수 : n
        {
            string str = string.Format("{0} / {1}", CurrentData._StageLowData.DailyEntercount - CurrentData.DailyClearCount, CurrentData._StageLowData.DailyEntercount);
            transform.FindChild("StageInfoView/Right/daily_count").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(302), str);
        }
    }