| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using cfg.GfgCfg;
- using ET;
- using UnityEngine;
- namespace GFGGame
- {
- public class MainControllerr : SingletonBase<MainControllerr>
- {
- public static bool GotoStoryChapter(bool isOpen = false)
- {
- LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.CHUN_ZHONG_LOU, 1);
- if (isOpen) return isOpen;
- isOpen = true;
- List<StoryChapterCfg> _chapterCfgs = CommonDataManager.Tables.TblStoryChapterCfg.DataList
- .Where(a => a.SubType == 0).ToList();
- 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<StoryChapterView>(new object[] { chapterCfg.Id, 0 });
- isOpen = false;
- return isOpen;
- }
- else
- {
- ViewManager.Show<StoryChapterListView>(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<StoryChapterListView>(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<StoryChapterView>(new object[] { chapterCfg.Id - 1, 0 });
- isOpen = false;
- return isOpen;
- }
- else
- {
- ViewManager.Show<StoryChapterListView>(new object[] { 0, Mathf.Max(0, chapterCfg.Order - 1) });
- isOpen = false;
- return isOpen;
- }
- }
- }
- return isOpen;
- }
- }
- }
|