StoryController.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using ET;
  2. using log4net.Core;
  3. using System.Collections.Generic;
  4. using static GFGGame.StoryController;
  5. namespace GFGGame
  6. {
  7. //主线剧情专用类
  8. public class StoryController
  9. {
  10. public static void ShowLevelView(int levelCfgId)
  11. {
  12. InstanceZonesController.ShowLevelView(levelCfgId, OnFinishStoryLevel);
  13. }
  14. public static void ShowCardStoryDialog(CardStoryCfg cardStoryCfg, CardData cardData)
  15. {
  16. ViewManager.Show(ViewName.STORY_DIALOG_VIEW, new object[] { cardStoryCfg.storyStartID, true, new OnCompleteStoryDialogCall(OnCompleteCardStoryDialog), cardData }, null, true);
  17. }
  18. public static void ShowPriorStoryDialog()
  19. {
  20. InstanceZonesDataManager.currentLevelCfgId = 100001001;
  21. ViewManager.Show(ViewName.STORY_DIALOG_VIEW, new object[] { MainStoryDataManager.priorId, false, new OnCompleteStoryDialogCall(OnCompletePriorStoryDialog) }, null, true);
  22. }
  23. public static void OnFinishStoryLevel(int levelCfgId, bool firstPass, bool success)
  24. {
  25. if (success)
  26. {
  27. //判断是否是首次打通最后一关
  28. int nextLevelID = levelCfgId + 1;
  29. StoryLevelCfg nextLevelCfg = StoryLevelCfgArray.Instance.GetCfg(nextLevelID);
  30. var fistPassLastLvl = (nextLevelCfg == null) && firstPass;
  31. if (fistPassLastLvl)
  32. {
  33. StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelCfgId);
  34. StoryChapterCfg nextStoryChapterCfg = StoryChapterCfgArray.Instance.GetCfg(levelCfg.chapterId + 1);
  35. if (nextStoryChapterCfg != null)
  36. {
  37. StoryLevelCfg nextChapterLevelCfg = StoryLevelCfgArray.Instance.GetCfgs(nextStoryChapterCfg.type, nextStoryChapterCfg.subType, nextStoryChapterCfg.id)[0];
  38. int LevelID = nextChapterLevelCfg.id;
  39. MainStoryDataManager.currentLevelCfgId = LevelID;
  40. }
  41. else
  42. {
  43. MainStoryDataManager.currentLevelCfgId = 0;
  44. }
  45. ViewManager.Show(ViewName.STORY_CHAPTER_LIST_VIEW, null, null, true);
  46. }
  47. else
  48. {
  49. ViewManager.Show(ViewName.STORY_CHAPTER_VIEW, MainStoryDataManager.currentChapterCfgId, ViewManager.GetGoBackDatas(ViewName.STORY_CHAPTER_VIEW), true);
  50. }
  51. }
  52. else
  53. {
  54. //异常返回到关卡列表界面
  55. ViewManager.Show(ViewName.STORY_CHAPTER_VIEW, MainStoryDataManager.currentChapterCfgId, ViewManager.GetGoBackDatas(ViewName.STORY_CHAPTER_VIEW), true);
  56. }
  57. }
  58. private static void OnCompleteCardStoryDialog(bool isSkip, object param)
  59. {
  60. CardData cardData = param as CardData;
  61. ViewManager.Show(ViewName.CARD_FOSTER_VIEW, cardData, new object[] { ViewName.CARD_DETAIL_VIEW }, true);
  62. ViewManager.Show(ViewName.CARD_STORY_VIEW, cardData);
  63. }
  64. private static void OnCompletePriorStoryDialog(bool isSkip, object param)
  65. {
  66. ViewManager.Show(ViewName.STORY_CHAPTER_VIEW, MainStoryDataManager.currentChapterCfgId, ViewManager.GetGoBackDatas(ViewName.STORY_CHAPTER_VIEW), true);
  67. }
  68. }
  69. }