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