-
- using System.Collections.Generic;
-
- public static class EditorPlayManager
- {
- /// <summary>
- /// 是否正在播放
- /// </summary>
- public static bool IsPlay { get; set; }
-
- private static DungeonConfig _config;
-
- /// <summary>
- /// 地牢编辑器中的播放按钮
- /// </summary>
- public static void Play(UiBase prevUi)
- {
- if (IsPlay)
- {
- return;
- }
-
- IsPlay = true;
- _config = new DungeonConfig();
- _config.GroupName = EditorTileMapManager.SelectDungeonGroup.GroupName;
- _config.DesignatedType = EditorTileMapManager.SelectRoom.RoomInfo.RoomType;
- _config.DesignatedRoom = new List<DungeonRoomSplit>();
-
- if (_config.DesignatedType == DungeonRoomType.Inlet) //初始房间
- {
- var dungeonRoomGroup = GameApplication.Instance.RoomConfig[_config.GroupName];
- _config.DesignatedRoom.Add(EditorTileMapManager.SelectRoom);
- //随机选择战斗房间
- for (var i = 0; i < 5; i++)
- {
- _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.BattleList));
- }
- //结束房间
- _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.OutletList));
- }
- else if (_config.DesignatedType == DungeonRoomType.Outlet) //结束房间
- {
- var dungeonRoomGroup = GameApplication.Instance.RoomConfig[_config.GroupName];
- //随机选择初始房间
- _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.InletList));
- _config.DesignatedRoom.Add(EditorTileMapManager.SelectRoom);
- }
- else //其他类型房间
- {
- var dungeonRoomGroup = GameApplication.Instance.RoomConfig[_config.GroupName];
- //随机选择初始房间
- _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.InletList));
- for (var i = 0; i < 5; i++)
- {
- _config.DesignatedRoom.Add(EditorTileMapManager.SelectRoom);
- }
- //结束房间
- _config.DesignatedRoom.Add(Utils.Random.RandomChoose(dungeonRoomGroup.OutletList));
- }
-
- UiManager.Open_Loading();
- GameApplication.Instance.DungeonManager.EditorPlayDungeon(prevUi, _config, () =>
- {
- UiManager.Destroy_Loading();
- });
- }
-
- public static void Exit()
- {
- if (!IsPlay)
- {
- return;
- }
-
- IsPlay = false;
- UiManager.Open_Loading();
- GameApplication.Instance.DungeonManager.EditorExitDungeon(false, () =>
- {
- UiManager.Destroy_Loading();
- });
- }
-
- public static void Restart()
- {
- if (!IsPlay)
- {
- return;
- }
- UiManager.Open_Loading();
- GameApplication.Instance.DungeonManager.ExitDungeon(false, () =>
- {
- GameApplication.Instance.DungeonManager.EditorPlayDungeon(_config, () =>
- {
- UiManager.Destroy_Loading();
- });
- });
- }
- }