MainController.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. using UnityEngine;
  5. namespace GFGGame
  6. {
  7. public class MainControllerr : SingletonBase<MainControllerr>
  8. {
  9. public static bool GotoStoryChapter(bool isOpen = false)
  10. {
  11. LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.CHUN_ZHONG_LOU, 1);
  12. if (isOpen) return isOpen;
  13. isOpen = true;
  14. List<StoryChapterCfg> _chapterCfgs = StoryChapterCfgArray.Instance.GetCfgsBysubType(0);
  15. for (int i = 0; i < _chapterCfgs.Count; i++)
  16. {
  17. StoryChapterCfg chapterCfg = _chapterCfgs[i];
  18. if (i == _chapterCfgs.Count - 1 && MainStoryDataManager.CheckChapterUnlock(chapterCfg.id))
  19. {
  20. if (StoryController.CheckSuitGot(_chapterCfgs[i-1].suitId))
  21. {
  22. MainStoryDataManager.currentChapterCfgId = chapterCfg.id;
  23. ViewManager.Show<StoryChapterView>(new object[] { chapterCfg.id, 0 });
  24. isOpen = false;
  25. return isOpen;
  26. }
  27. else
  28. {
  29. ViewManager.Show<StoryChapterListView>(new object[] { 0, Mathf.Max(0, chapterCfg.order - 1) });
  30. isOpen = false;
  31. return isOpen;
  32. }
  33. }
  34. else if (!MainStoryDataManager.CheckChapterUnlock(chapterCfg.id))
  35. {
  36. StoryChapterCfg chapterTowCfg = _chapterCfgs[Mathf.Max(0, i - 1)];
  37. StoryChapterCfg chaptersuitCfg = _chapterCfgs[Mathf.Max(0, i - 2)];
  38. var list = StoryLevelCfgArray.Instance.GetCfgsBytypeAndsubTypeAndchapterId(chapterTowCfg.type, chapterTowCfg.subType, chapterTowCfg.id);
  39. StoryLevelCfg lastLevelCfg = list[list.Count - 1];
  40. //这里是当下一章没解锁,但是上一章的最后一关已经通过了
  41. if (lastLevelCfg != null && InstanceZonesDataManager.CheckLevelPass(lastLevelCfg.id))
  42. {
  43. ViewManager.Show<StoryChapterListView>(new object[] { 0, Mathf.Max(0, chapterCfg.order - 1) });
  44. isOpen = false;
  45. return isOpen;
  46. }
  47. if (StoryController.CheckSuitGot(chaptersuitCfg.suitId))
  48. {
  49. MainStoryDataManager.currentChapterCfgId = chapterCfg.id - 1;
  50. ViewManager.Show<StoryChapterView>(new object[] { chapterCfg.id - 1, 0 });
  51. isOpen = false;
  52. return isOpen;
  53. }
  54. else
  55. {
  56. ViewManager.Show<StoryChapterListView>(new object[] { 0, Mathf.Max(0, chapterCfg.order - 1) });
  57. isOpen = false;
  58. return isOpen;
  59. }
  60. }
  61. }
  62. return isOpen;
  63. }
  64. }
  65. }