diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json
index 6553288..df10eda 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json
@@ -1 +1 @@
-[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":false,"WaveList":[[{"Position":{"X":39,"Y":8},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":-16,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":66,"Y":6},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0009","Weight":100,"Attr":{"CurrAmmon":"1","ResidueAmmo":"25"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":66,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0010","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":47,"Y":-32},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0008","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":23,"Y":37},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0005","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":24,"Y":-30},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0006","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":40,"Y":-10},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0003","Weight":100,"Attr":{"CurrAmmon":"12","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":-37},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0007","Weight":100,"Attr":{"CurrAmmon":"60","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-2,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0002","Weight":100,"Attr":{"CurrAmmon":"7","ResidueAmmo":"70"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":29,"Y":63},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0013","Weight":100,"Attr":{"CurrAmmon":"50","ResidueAmmo":"250"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-30,"Y":39},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-19,"Y":71},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":48,"Y":29},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0004","Weight":100,"Attr":{"CurrAmmon":"180","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":20,"Y":94},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0014","Weight":100,"Attr":{"CurrAmmon":"5","ResidueAmmo":"60"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-14,"Y":97},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0011","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":9,"Y":-7},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0011","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-41,"Y":61},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0016","Weight":100,"Attr":{"CurrAmmon":"5","ResidueAmmo":"60"},"Altitude":8,"VerticalSpeed":0}]}],[{"Position":{"X":46,"Y":112},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Face":"0","Weapon":"weapon0016","CurrAmmon":"10","ResidueAmmo":"10"},"Altitude":0,"VerticalSpeed":0}]}]]}]
\ No newline at end of file
+[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":false,"WaveList":[[{"Position":{"X":39,"Y":8},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":-16,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":66,"Y":6},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0009","Weight":100,"Attr":{"CurrAmmon":"1","ResidueAmmo":"25"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":66,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0010","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":47,"Y":-32},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0008","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":23,"Y":37},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0005","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":24,"Y":-30},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0006","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":40,"Y":-10},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0003","Weight":100,"Attr":{"CurrAmmon":"12","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":-37},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0007","Weight":100,"Attr":{"CurrAmmon":"60","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-2,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0002","Weight":100,"Attr":{"CurrAmmon":"7","ResidueAmmo":"70"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":29,"Y":63},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0013","Weight":100,"Attr":{"CurrAmmon":"50","ResidueAmmo":"250"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-30,"Y":39},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-19,"Y":71},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":48,"Y":29},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0004","Weight":100,"Attr":{"CurrAmmon":"180","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":20,"Y":94},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0014","Weight":100,"Attr":{"CurrAmmon":"5","ResidueAmmo":"60"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-14,"Y":97},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0011","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":9,"Y":-7},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0011","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-41,"Y":61},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0016","Weight":100,"Attr":{"CurrAmmon":"5","ResidueAmmo":"60"},"Altitude":8,"VerticalSpeed":0}]}]]}]
\ No newline at end of file
diff --git a/DungeonShooting_Godot/scene/Hall.tscn b/DungeonShooting_Godot/scene/Hall.tscn
index 1a496c4..c912614 100644
--- a/DungeonShooting_Godot/scene/Hall.tscn
+++ b/DungeonShooting_Godot/scene/Hall.tscn
@@ -1,36 +1,54 @@
-[gd_scene load_steps=4 format=3 uid="uid://c2hynqudkykxl"]
+[gd_scene load_steps=6 format=3 uid="uid://c2hynqudkykxl"]
[ext_resource type="PackedScene" uid="uid://bqf2vks5ggnsp" path="res://scene/World.tscn" id="1_31od0"]
[ext_resource type="Script" path="res://src/game/hall/Hall.cs" id="2_43fdu"]
[ext_resource type="Texture2D" uid="uid://uhhfgdhpk7i4" path="res://icon.png" id="3_3cr4y"]
+[ext_resource type="Script" path="res://src/game/hall/DungeonEntrance.cs" id="3_t3my6"]
-[node name="Hall" instance=ExtResource("1_31od0")]
+[sub_resource type="RectangleShape2D" id="RectangleShape2D_ru8u4"]
+size = Vector2(122, 116)
+
+[node name="Hall" node_paths=PackedStringArray("BirthMark") instance=ExtResource("1_31od0")]
script = ExtResource("2_43fdu")
+BirthMark = NodePath("BirthMark")
-[node name="Icon" type="Sprite2D" parent="." index="1"]
-position = Vector2(110, 85)
+[node name="DungeonEntrance" type="Area2D" parent="." index="1"]
+position = Vector2(174, 117)
+collision_layer = 0
+collision_mask = 8
+monitorable = false
+script = ExtResource("3_t3my6")
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="DungeonEntrance" index="0"]
+shape = SubResource("RectangleShape2D_ru8u4")
+
+[node name="Icon" type="Sprite2D" parent="DungeonEntrance" index="1"]
+modulate = Color(1, 0, 0, 1)
texture = ExtResource("3_3cr4y")
-[node name="Icon2" type="Sprite2D" parent="." index="2"]
+[node name="BirthMark" type="Marker2D" parent="." index="2"]
+position = Vector2(271, -130)
+
+[node name="Icon2" type="Sprite2D" parent="." index="3"]
position = Vector2(156, 248)
texture = ExtResource("3_3cr4y")
-[node name="Icon3" type="Sprite2D" parent="." index="3"]
+[node name="Icon3" type="Sprite2D" parent="." index="4"]
position = Vector2(404, 52)
texture = ExtResource("3_3cr4y")
-[node name="Icon4" type="Sprite2D" parent="." index="4"]
+[node name="Icon4" type="Sprite2D" parent="." index="5"]
position = Vector2(-193, 98)
texture = ExtResource("3_3cr4y")
-[node name="Icon5" type="Sprite2D" parent="." index="5"]
+[node name="Icon5" type="Sprite2D" parent="." index="6"]
position = Vector2(-150, -173)
texture = ExtResource("3_3cr4y")
-[node name="Icon6" type="Sprite2D" parent="." index="6"]
+[node name="Icon6" type="Sprite2D" parent="." index="7"]
position = Vector2(230, -270)
texture = ExtResource("3_3cr4y")
-[node name="Icon7" type="Sprite2D" parent="." index="7"]
+[node name="Icon7" type="Sprite2D" parent="." index="8"]
position = Vector2(269, -134)
texture = ExtResource("3_3cr4y")
diff --git a/DungeonShooting_Godot/src/game/hall/DungeonEntrance.cs b/DungeonShooting_Godot/src/game/hall/DungeonEntrance.cs
new file mode 100644
index 0000000..59b4665
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/hall/DungeonEntrance.cs
@@ -0,0 +1,33 @@
+using Godot;
+
+///
+/// 地牢入口节点
+///
+public partial class DungeonEntrance : Area2D
+{
+ public override void _Ready()
+ {
+ BodyEntered += OnBodyEntered;
+ }
+
+ private void OnBodyEntered(Node2D body)
+ {
+ if (body is Player)
+ {
+ GameApplication.Instance.DungeonManager.ExitHall(() =>
+ {
+ // 验证该组是否满足生成地牢的条件
+ var config = GameApplication.Instance.DungeonConfig;
+ var result = DungeonManager.CheckDungeon(config.GroupName);
+ if (result.HasError)
+ {
+ EditorWindowManager.ShowTips("警告", "当前组'" + config.GroupName + "'" + result.ErrorMessage + ", 不能生成地牢!");
+ }
+ else
+ {
+ GameApplication.Instance.DungeonManager.LoadDungeon(config);
+ }
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/hall/Hall.cs b/DungeonShooting_Godot/src/game/hall/Hall.cs
index 23e4287..836e9db 100644
--- a/DungeonShooting_Godot/src/game/hall/Hall.cs
+++ b/DungeonShooting_Godot/src/game/hall/Hall.cs
@@ -6,6 +6,15 @@
///
public partial class Hall : World
{
+ ///
+ /// 玩家出生标记
+ ///
+ [Export]
+ public Marker2D BirthMark;
+
+ ///
+ /// 房间数据, 该数据时虚拟出来的, 并不是配置文件读取出来的
+ ///
public RoomInfo RoomInfo { get; set; }
public override void _Ready()
diff --git a/DungeonShooting_Godot/src/game/room/DungeonManager.cs b/DungeonShooting_Godot/src/game/room/DungeonManager.cs
index 8a73575..11195d7 100644
--- a/DungeonShooting_Godot/src/game/room/DungeonManager.cs
+++ b/DungeonShooting_Godot/src/game/room/DungeonManager.cs
@@ -1,8 +1,6 @@
using System;
using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
using Godot;
///
@@ -39,11 +37,6 @@
/// 当前使用的配置
///
public DungeonConfig CurrConfig { get; private set; }
-
- ///
- /// 游戏大厅
- ///
- public Hall Hall { get; private set; }
///
/// 当前玩家所在游戏世界对象
@@ -73,30 +66,22 @@
}
///
- /// 初始化游戏大厅
- ///
- public void InitHall(SeedRandom random)
- {
- if (Hall != null)
- {
- return;
- }
- Hall = ResourceManager.LoadAndInstantiate(ResourcePath.scene_Hall_tscn);
- Hall.InitRandomPool(random);
- }
-
- ///
/// 创建新的 World 对象, 相当于清理房间
///
- public World CreateNewWorld(SeedRandom random)
+ public World CreateNewWorld(SeedRandom random, string scenePath = ResourcePath.scene_World_tscn)
{
if (CurrWorld != null)
{
ClearWorld();
CurrWorld.QueueFree();
}
- CurrWorld = ResourceManager.LoadAndInstantiate(ResourcePath.scene_World_tscn);
- CurrWorld.InitLayer();
+ CurrWorld = ResourceManager.LoadAndInstantiate(scenePath);
+ GameApplication.Instance.SceneRoot.AddChild(CurrWorld);
+ if (CurrWorld is not Hall)
+ {
+ CurrWorld.InitLayer();
+ }
+
CurrWorld.InitRandomPool(random);
return CurrWorld;
}
@@ -150,6 +135,11 @@
{
GameApplication.Instance.StartCoroutine(RunLoadHallCoroutine(finish));
}
+
+ public void ExitHall(Action finish = null)
+ {
+ GameApplication.Instance.StartCoroutine(RunExitHallCoroutine(finish));
+ }
///
/// 加载地牢
@@ -275,34 +265,18 @@
private IEnumerator RunLoadHallCoroutine(Action finish)
{
- if (Hall != null && CurrWorld == Hall) //本来就在大厅中
- {
- yield break;
- }
//打开 loading UI
UiManager.Open_Loading();
yield return 0;
- InitHall(Utils.Random);
-
+
+ var hall = (Hall)CreateNewWorld(Utils.Random, ResourcePath.scene_Hall_tscn);
yield return 0;
- if (CurrWorld == null) //从主菜单进入大厅
- {
- GameApplication.Instance.SceneRoot.AddChild(Hall);
- CurrWorld = Hall;
- }
- else //从地牢中进入大厅
- {
- DestroyWorld();
- GameApplication.Instance.SceneRoot.AddChild(Hall);
- CurrWorld = Hall;
- }
- yield return 0;
//创建房间数据
var roomInfo = new RoomInfo(0, DungeonRoomType.None, null);
roomInfo.Size = new Vector2I(50, 50);
roomInfo.Position = Vector2I.Zero;
- Hall.RoomInfo = roomInfo;
+ hall.RoomInfo = roomInfo;
yield return 0;
//创建归属区域
@@ -310,39 +284,86 @@
affiliation.Name = "AffiliationArea_Hall";
affiliation.Init(roomInfo, new Rect2I(roomInfo.Position, roomInfo.Size * GameConfig.TileCellSize));
roomInfo.AffiliationArea = affiliation;
- Hall.AffiliationAreaRoot.AddChild(affiliation);
+ hall.AffiliationAreaRoot.AddChild(affiliation);
yield return 0;
//静态渲染精灵根节点, 用于放置sprite
var spriteRoot = new RoomStaticSprite(roomInfo);
spriteRoot.Name = "SpriteRoot";
roomInfo.StaticSprite = spriteRoot;
- Hall.StaticSpriteRoot.AddChild(spriteRoot);
+ hall.StaticSpriteRoot.AddChild(spriteRoot);
+ yield return 0;
//静态精灵画布
var canvasSprite = new ImageCanvas(roomInfo.Size.X * GameConfig.TileCellSize, roomInfo.Size.Y * GameConfig.TileCellSize);
canvasSprite.Position = roomInfo.Position;
roomInfo.StaticImageCanvas = canvasSprite;
roomInfo.StaticSprite.AddChild(canvasSprite);
+ yield return 0;
//液体画布
var liquidCanvas = new LiquidCanvas(roomInfo, roomInfo.Size.X * GameConfig.TileCellSize, roomInfo.Size.Y * GameConfig.TileCellSize);
liquidCanvas.Position = roomInfo.Position;
roomInfo.LiquidCanvas = liquidCanvas;
roomInfo.StaticSprite.AddChild(liquidCanvas);
-
yield return 0;
//创建玩家
var player = ActivityObject.Create(ActivityObject.Ids.Id_role0001);
player.Name = "Player";
+ player.Position = hall.BirthMark.Position;
player.PutDown(RoomLayerEnum.YSortLayer);
+ affiliation.InsertItem(player);
Player.SetCurrentPlayer(player);
player.WeaponPack.PickupItem(ActivityObject.Create(ActivityObject.Ids.Id_weapon0001));
GameApplication.Instance.Cursor.SetGuiMode(false);
yield return 0;
+
+ //打开游戏中的ui
+ UiManager.Open_RoomUI();
UiManager.Destroy_Loading();
+
+ if (finish != null)
+ {
+ finish();
+ }
}
+
+ private IEnumerator RunExitHallCoroutine(Action finish)
+ {
+ //打开 loading UI
+ UiManager.Open_Loading();
+ yield return 0;
+
+ CurrWorld.Pause = true;
+ yield return 0;
+
+ var hall = (Hall)CurrWorld;
+ hall.RoomInfo.Destroy();
+ yield return 0;
+
+ UiManager.Destroy_RoomUI();
+ yield return 0;
+ Player.SetCurrentPlayer(null);
+ DestroyWorld();
+ yield return 0;
+ FogMaskHandler.ClearRecordRoom();
+ LiquidBrushManager.ClearData();
+ BrushImageData.ClearBrushData();
+ QueueRedraw();
+
+ //鼠标还原
+ GameApplication.Instance.Cursor.SetGuiMode(true);
+ yield return 0;
+
+ //关闭 loading UI
+ UiManager.Destroy_Loading();
+ if (finish != null)
+ {
+ finish();
+ }
+ }
+
//执行加载地牢协程
private IEnumerator RunLoadDungeonCoroutine(Action finish)
@@ -474,7 +495,7 @@
AutoTileConfig = null;
_dungeonGenerator = null;
- UiManager.Hide_RoomUI();
+ UiManager.Destroy_RoomUI();
yield return 0;
Player.SetCurrentPlayer(null);
DestroyWorld();
diff --git a/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs b/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs
index 2468b16..bfabcbc 100644
--- a/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs
@@ -21,19 +21,6 @@
{
GameApplication.Instance.DungeonManager.LoadHall();
HideUi();
-
- //验证该组是否满足生成地牢的条件
- // var config = GameApplication.Instance.DungeonConfig;
- // var result = DungeonManager.CheckDungeon(config.GroupName);
- // if (result.HasError)
- // {
- // EditorWindowManager.ShowTips("警告", "当前组'" + config.GroupName + "'" + result.ErrorMessage + ", 不能生成地牢!");
- // }
- // else
- // {
- // GameApplication.Instance.DungeonManager.LoadDungeon(config);
- // HideUi();
- // }
}
//退出游戏
diff --git a/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs b/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs
index ca80d6c..59aced6 100644
--- a/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs
@@ -229,6 +229,11 @@
private void InitMap()
{
var startRoom = GameApplication.Instance.DungeonManager.StartRoomInfo;
+ if (startRoom == null)
+ {
+ HideUi();
+ return;
+ }
startRoom.EachRoom(roomInfo =>
{
//房间