using System; using System.Collections.Generic; using System.Linq; using cfg.GfgCfg; using ET; using UnityEngine; namespace GFGGame { public class MainControllerr : SingletonBase { public static bool GotoStoryChapter(bool isOpen = false) { LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.CHUN_ZHONG_LOU, 1); if (isOpen) return isOpen; isOpen = true; List _chapterCfgs = CommonDataManager.Tables.TblStoryChapterCfg.GetGroup1BySubType(0); for (int i = 0; i < _chapterCfgs.Count; i++) { StoryChapterCfg chapterCfg = _chapterCfgs[i]; if (i == _chapterCfgs.Count - 1 && MainStoryDataManager.CheckChapterUnlock(chapterCfg.Id)) { if (StoryController.CheckSuitGot(_chapterCfgs[i - 1].SuitId)) { MainStoryDataManager.currentChapterCfgId = chapterCfg.Id; ViewManager.Show(new object[] { chapterCfg.Id, 0 }); isOpen = false; return isOpen; } else { ViewManager.Show(new object[] { 0, Mathf.Max(0, chapterCfg.Order - 1) }); isOpen = false; return isOpen; } } else if (!MainStoryDataManager.CheckChapterUnlock(chapterCfg.Id)) { StoryChapterCfg chapterTowCfg = _chapterCfgs[Mathf.Max(0, i - 1)]; StoryChapterCfg chaptersuitCfg = _chapterCfgs[Mathf.Max(0, i - 2)]; var list = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a => a.Type == chapterTowCfg.Type && a.SubType == chapterTowCfg.SubType && a.ChapterId == chapterTowCfg.Id).ToList(); StoryLevelCfg lastLevelCfg = list[list.Count - 1]; //这里是当下一章没解锁,但是上一章的最后一关已经通过了 if (lastLevelCfg != null && InstanceZonesDataManager.CheckLevelPass(lastLevelCfg.Id)) { ViewManager.Show(new object[] { 0, Mathf.Max(0, chapterCfg.Order - 1) }); isOpen = false; return isOpen; } if (StoryController.CheckSuitGot(chaptersuitCfg.SuitId)) { MainStoryDataManager.currentChapterCfgId = chapterCfg.Id - 1; ViewManager.Show(new object[] { chapterCfg.Id - 1, 0 }); isOpen = false; return isOpen; } else { ViewManager.Show(new object[] { 0, Mathf.Max(0, chapterCfg.Order - 1) }); isOpen = false; return isOpen; } } } return isOpen; } } }