public static EM_STAGE_STAGETYPE GetStageStageType(StageTemplate stageT) { EM_STAGE_STAGETYPE type = EM_STAGE_STAGETYPE.MAIN; switch (GetStageType(stageT)) { case EM_STAGE_TYPE.LIMIT_TEST: return(EM_STAGE_STAGETYPE.LITMIT_TIMES); case EM_STAGE_TYPE.MAIN_QUEST1: case EM_STAGE_TYPE.MAIN_QUEST2: case EM_STAGE_TYPE.MAIN_QUEST3: return(EM_STAGE_STAGETYPE.MAIN); case EM_STAGE_TYPE.SIDE_QUEST: return(EM_STAGE_STAGETYPE.SIDE); case EM_STAGE_TYPE.SPEC_QUEST: return(EM_STAGE_STAGETYPE.SPECIAL); case EM_STAGE_TYPE.ACTIVE_QUEST_DIJING: case EM_STAGE_TYPE.ACTIVE_QUEST_YANLONG: return(EM_STAGE_STAGETYPE.ACTIVE); case EM_STAGE_TYPE.BOSS_SHOUWANGZHE: case EM_STAGE_TYPE.BOSS_CHUANSHUO: return(EM_STAGE_STAGETYPE.BOSS); default: return(EM_STAGE_STAGETYPE.NONE); } }
/// <summary> /// 获得当前章节中指定难度第一个关卡; /// </summary> /// <param name="chapterT"></param> /// <param name="difficultType"></param> /// <returns></returns> public static int GetFirstStageIdInTheChapter(ChapterinfoTemplate chapterT, EM_STAGE_DIFFICULTTYPE difficultType) { if (chapterT == null) { throw new Exception("Null Refrence Exception"); } int[] stageIds = chapterT.getStageID(); if (stageIds == null || stageIds.Length <= 0) { return(-1); } int temp = -1; for (int i = 0, j = stageIds.Length; i < j; i++) { temp = stageIds[i]; StageTemplate stageT = GetStageTemplateById(temp); if (stageT == null) { continue; } //只选主线; EM_STAGE_STAGETYPE stageType = GetStageStageType(stageT); if (stageType != EM_STAGE_STAGETYPE.MAIN) { continue; } EM_STAGE_DIFFICULTTYPE type = GetStageDifficultType(stageT); if (type == difficultType) { return(temp); } } return(-1); }
/// <summary> /// 获得玩家当前章节可以进入的最后(按id排序)一个关卡信息; /// </summary> /// <param name="chapterId"></param> /// <returns></returns> public static int GetLastStageIdInTheChapter(ChapterinfoTemplate chapterT, EM_STAGE_DIFFICULTTYPE difficultType) { List <StageData> bs = ObjectSelf.GetInstance().BattleStageData.GetStageDataListByChapterId(chapterT.getId()); if (bs == null || bs.Count <= 0) { return(-1); } int lastStageId = -1; int temp = -1; for (int i = 0; i < bs.Count; i++) { temp = bs[i].m_StageID; StageTemplate stageT = GetStageTemplateById(temp); if (stageT == null) { continue; } //只选主线; EM_STAGE_STAGETYPE stageType = GetStageStageType(stageT); if (stageType != EM_STAGE_STAGETYPE.MAIN) { continue; } EM_STAGE_DIFFICULTTYPE type = GetStageDifficultType(stageT); if (type == difficultType) { lastStageId = temp; } } return(lastStageId); }
/// <summary> /// 根据难度+关卡类型 = 表格中的关卡类型; /// </summary> /// <param name="difficultType"></param> /// <param name="stageType"></param> /// <returns></returns> public static EM_STAGE_TYPE GetStageType(EM_STAGE_DIFFICULTTYPE difficultType, EM_STAGE_STAGETYPE stageType) { switch (stageType) { case EM_STAGE_STAGETYPE.MAIN: { switch (difficultType) { case EM_STAGE_DIFFICULTTYPE.NONE: break; case EM_STAGE_DIFFICULTTYPE.NORMAL: return(EM_STAGE_TYPE.MAIN_QUEST1); case EM_STAGE_DIFFICULTTYPE.HARD: return(EM_STAGE_TYPE.MAIN_QUEST2); case EM_STAGE_DIFFICULTTYPE.HARDEST: return(EM_STAGE_TYPE.MAIN_QUEST3); default: break; } } break; case EM_STAGE_STAGETYPE.SIDE: return(EM_STAGE_TYPE.SIDE_QUEST); case EM_STAGE_STAGETYPE.SPECIAL: return(EM_STAGE_TYPE.SPEC_QUEST); default: break; } return(EM_STAGE_TYPE.NONE); }
public void SetTemplateData(StageTemplate data, EM_STAGE_STAGETYPE flag = EM_STAGE_STAGETYPE.NONE) { mStageT = data; if (data == null) { mGo.SetActive(false); return; } //如果是神秘商店特殊处理; if (flag == EM_STAGE_STAGETYPE.MYSTERIOUS) { m_TitleTxt.text = ""; mStarsImg[0].gameObject.SetActive(false); mStarsImg[1].gameObject.SetActive(false); mStarsImg[2].gameObject.SetActive(false); mIsNewImg.gameObject.SetActive(false); //这里data.m_stageid存的是场景id; ChapterinfoTemplate chapterT = StageModule.GetChapterinfoTemplateById(data.m_stageid); float[] val = chapterT.getShopposition(); Vector2 pos1 = new Vector2(val[0], val[1]); mGo.transform.localPosition = pos1; return; } //不是神秘商店另外处理; int chapterId = DataTemplate.GetInstance().GetChapterIdByStageT(data); EM_STAGE_TYPE type = StageModule.GetStageType(data); switch (type) { case EM_STAGE_TYPE.MAIN_QUEST1: case EM_STAGE_TYPE.MAIN_QUEST2: case EM_STAGE_TYPE.MAIN_QUEST3: //m_TitleTxt.text = string.Format("{0}-{1}", chapterId, StageModule.GetStageNumInChapter(data)); m_TitleTxt.text = StageModule.GetStageNumInChapter(data).ToString(); break; case EM_STAGE_TYPE.SIDE_QUEST: m_TitleTxt.text = GameUtils.getString("stage_type_branch"); break; //case EM_STAGE_TYPE.SPEC_QUEST: // break; //case EM_STAGE_TYPE.ACTIVE_QUEST_DIJING: // break; //case EM_STAGE_TYPE.ACTIVE_QUEST_YANLONG: // break; //case EM_STAGE_TYPE.LIMIT_TEST: // break; //case EM_STAGE_TYPE.BOSS_SHOUWANGZHE: // break; //case EM_STAGE_TYPE.BOSS_CHUANSHUO: // break; default: m_TitleTxt.text = ""; break; } //位置; Vector2 pos = new Vector2(data.getStageiconposition()[0], data.getStageiconposition()[1]); mGo.transform.localPosition = pos; m_Icon.sprite = UIResourceMgr.LoadSprite(common.defaultPath + data.m_stageicon); m_Icon.SetNativeSize(); float delta = (float)(data.getStageIconScale()) / 100f; m_Icon.transform.localScale = Vector3.one * delta; //是否已开启; if (ObjectSelf.GetInstance().BattleStageData.IsStageOpen(data.m_stageid)) { GameUtils.SetBtnSpriteGrayState(m_IconBtn, false); //星星; int starNum = 0; if (ObjectSelf.GetInstance().BattleStageData.IsCopyScenePass(data.m_stageid, out starNum)) { for (int i = 0; i < MaxStars; i++) { mStarsImg[i].gameObject.SetActive(false); } //switch (starNum) //{ // case 0: // mStarsImg[0].gameObject.SetActive(false); // mStarsImg[1].gameObject.SetActive(false); // mStarsImg[2].gameObject.SetActive(false); // break; // case 1: // mStarsImg[0].gameObject.SetActive(true); // mStarsImg[1].gameObject.SetActive(false); // mStarsImg[2].gameObject.SetActive(false); // break; // case 2: // mStarsImg[0].gameObject.SetActive(false); // mStarsImg[1].gameObject.SetActive(true); // mStarsImg[2].gameObject.SetActive(true); // break; // case 3: // mStarsImg[0].gameObject.SetActive(true); // mStarsImg[1].gameObject.SetActive(true); // mStarsImg[2].gameObject.SetActive(true); // break; // default: // mStarsImg[0].gameObject.SetActive(false); // mStarsImg[1].gameObject.SetActive(false); // mStarsImg[2].gameObject.SetActive(false); // break; //} if (starNum > 0 && starNum <= 3) { mStarsImg[starNum - 1].gameObject.SetActive(true); } } else { mStarsImg[0].gameObject.SetActive(false); mStarsImg[1].gameObject.SetActive(false); mStarsImg[2].gameObject.SetActive(false); } } else { GameUtils.SetBtnSpriteGrayState(m_IconBtn, true); mStarsImg[0].gameObject.SetActive(false); mStarsImg[1].gameObject.SetActive(false); mStarsImg[2].gameObject.SetActive(false); } //是否限制次数关卡; if (data.m_limittime > 0) { StageData sd = ObjectSelf.GetInstance().BattleStageData.GetStageDataByStageId(data.m_stageid); int useTimes = sd == null ? 0 : sd.m_FightSum; mRemindTimes.text = (data.m_limittime - useTimes).ToString(); mRemindTitle.gameObject.SetActive(true); } else { mRemindTitle.gameObject.SetActive(false); } //是否是新开启的关卡; UpdateIsNew(); }