Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / manager / EditorPlayManager.cs
  1.  
  2. using System.Collections.Generic;
  3.  
  4. public static class EditorPlayManager
  5. {
  6. /// <summary>
  7. /// 是否正在播放
  8. /// </summary>
  9. public static bool IsPlay { get; set; }
  10.  
  11. private static DungeonConfig _config;
  12.  
  13. /// <summary>
  14. /// 地牢编辑器中的播放按钮
  15. /// </summary>
  16. public static void Play(UiBase prevUi)
  17. {
  18. if (IsPlay)
  19. {
  20. return;
  21. }
  22.  
  23. IsPlay = true;
  24. _config = new DungeonConfig();
  25. _config.GroupName = EditorTileMapManager.SelectDungeonGroup.GroupName;
  26. _config.DesignatedType = EditorTileMapManager.SelectRoom.RoomInfo.RoomType;
  27. _config.DesignatedRoom = new List<DungeonRoomSplit>();
  28.  
  29. if (_config.DesignatedType == DungeonRoomType.Inlet) //初始房间
  30. {
  31. var dungeonRoomGroup = GameApplication.Instance.RoomConfig[_config.GroupName];
  32. _config.DesignatedRoom.Add(EditorTileMapManager.SelectRoom);
  33. //随机选择战斗房间
  34. for (var i = 0; i < 5; i++)
  35. {
  36. _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.BattleList));
  37. }
  38. //结束房间
  39. _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.OutletList));
  40. }
  41. else if (_config.DesignatedType == DungeonRoomType.Outlet) //结束房间
  42. {
  43. var dungeonRoomGroup = GameApplication.Instance.RoomConfig[_config.GroupName];
  44. //随机选择初始房间
  45. _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.InletList));
  46. _config.DesignatedRoom.Add(EditorTileMapManager.SelectRoom);
  47. }
  48. else //其他类型房间
  49. {
  50. var dungeonRoomGroup = GameApplication.Instance.RoomConfig[_config.GroupName];
  51. //随机选择初始房间
  52. _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.InletList));
  53. for (var i = 0; i < 5; i++)
  54. {
  55. _config.DesignatedRoom.Add(EditorTileMapManager.SelectRoom);
  56. }
  57. //结束房间
  58. _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.OutletList));
  59. }
  60. UiManager.Open_Loading();
  61. GameApplication.Instance.DungeonManager.EditorPlayDungeon(prevUi, _config, () =>
  62. {
  63. UiManager.Destroy_Loading();
  64. });
  65. }
  66.  
  67. public static void Exit()
  68. {
  69. if (!IsPlay)
  70. {
  71. return;
  72. }
  73.  
  74. IsPlay = false;
  75. UiManager.Open_Loading();
  76. GameApplication.Instance.DungeonManager.EditorExitDungeon(false, () =>
  77. {
  78. UiManager.Destroy_Loading();
  79. });
  80. }
  81.  
  82. public static void Restart()
  83. {
  84. if (!IsPlay)
  85. {
  86. return;
  87. }
  88. UiManager.Open_Loading();
  89. GameApplication.Instance.DungeonManager.ExitDungeon(false, () =>
  90. {
  91. GameApplication.Instance.DungeonManager.EditorPlayDungeon(_config, () =>
  92. {
  93. UiManager.Destroy_Loading();
  94. });
  95. });
  96. }
  97. }