diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/Preinstall.json index a9f951a..cc0f6ed 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/Preinstall.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/Preinstall.json @@ -1 +1 @@ -[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[]]}] \ No newline at end of file +[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[{"Position":{"X":8,"Y":-8},"Size":{"X":14,"Y":14},"SpecialMarkType":2,"DelayTime":0,"MarkList":[]}]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/Preview.png index 569099e..fcbb563 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/Preview.png +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/Preview.png Binary files differ diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/TileInfo.json index bee29f2..3880d49 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/TileInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/TileInfo.json @@ -1 +1 @@ -{"NavigationVertices":[{"X":22,"Y":22},{"X":58,"Y":50},{"X":-42,"Y":50},{"X":-6,"Y":22},{"X":58,"Y":-58},{"X":22,"Y":-30},{"X":-26,"Y":-58},{"X":-6,"Y":-30},{"X":-26,"Y":-42},{"X":-42,"Y":-42}],"NavigationPolygon":[[0,1,2,3],[4,1,0,5],[6,4,5,7,8],[7,3,2,9,8]],"Floor":[-2,-1,0,3,-2,-2,0,3,-1,-2,0,3,1,-2,0,3,1,-1,0,3,2,-1,0,3,-1,-1,0,3,-2,0,0,3,-2,1,0,3,-1,1,0,3,0,1,0,3,1,1,0,3,2,1,0,3,2,0,0,3,1,0,0,3,-1,0,0,3,2,-2,0,3,2,-3,0,3,1,-3,0,3,0,-3,0,3,-1,-3,0,3,-2,-3,0,3,-2,2,0,3,-1,2,0,3,0,2,0,3,1,2,0,3,2,2,0,3,3,2,0,3,3,1,0,3,3,0,0,3,3,-1,0,3,3,-2,0,3,3,-3,0,3,3,-4,0,3,2,-4,0,3,1,-4,0,3,0,-4,0,3,-1,-4,0,3,-2,-4,0,3,-3,-3,0,3,-3,-2,0,3,-3,-1,0,3,-3,0,0,3,-3,1,0,3,-3,2,0,3],"Middle":[-3,-6,27,1,-3,-5,3,2,-3,-4,7,2,-2,-7,63,1,-2,-6,2,2,-2,-5,6,2,-1,-7,63,1,-1,-6,2,2,-1,-5,6,2,0,-7,63,1,0,-6,2,2,0,-5,6,2,0,-2,16,1,0,-1,0,2,0,0,4,2,1,-7,63,1,1,-6,2,2,1,-5,6,2,2,-7,63,1,2,-6,2,2,2,-5,6,2,3,-7,63,1,3,-6,2,2,3,-5,6,2],"Top":[-5,-7,511,1,-5,-6,511,1,-5,-5,511,1,-5,-4,511,1,-5,-3,511,1,-5,-2,511,1,-5,-1,511,1,-5,0,511,1,-5,1,511,1,-5,2,511,1,-5,3,511,1,-5,4,511,1,-4,-8,511,1,-4,-7,511,1,-4,-6,255,1,-4,-5,219,1,-4,-4,219,1,-4,-3,219,1,-4,-2,219,1,-4,-1,219,1,-4,0,219,1,-4,1,219,1,-4,2,219,1,-4,3,507,1,-4,4,511,1,-3,-8,511,1,-3,-7,255,1,-3,3,504,1,-3,4,511,1,-2,-8,511,1,-2,3,504,1,-2,4,511,1,-1,-8,511,1,-1,3,504,1,-1,4,511,1,0,-8,511,1,0,3,504,1,0,4,511,1,1,-8,511,1,1,3,504,1,1,4,511,1,2,-8,511,1,2,3,504,1,2,4,511,1,3,-8,511,1,3,3,504,1,3,4,511,1,4,-8,511,1,4,-7,447,1,4,-6,438,1,4,-5,438,1,4,-4,438,1,4,-3,438,1,4,-2,438,1,4,-1,438,1,4,0,438,1,4,1,438,1,4,2,438,1,4,3,510,1,4,4,511,1,5,-8,511,1,5,-7,511,1,5,-6,511,1,5,-5,511,1,5,-4,511,1,5,-3,511,1,5,-2,511,1,5,-1,511,1,5,0,511,1,5,1,511,1,5,2,511,1,5,3,511,1,5,4,511,1],"CustomFloor1":[],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]} \ No newline at end of file +{"NavigationVertices":[{"X":58,"Y":-58},{"X":58,"Y":58},{"X":-42,"Y":58},{"X":-26,"Y":-42},{"X":-42,"Y":-42},{"X":-26,"Y":-58}],"NavigationPolygon":[[0,1,2,3],[2,4,3],[0,3,5]],"Floor":[-2,-1,0,3,-2,-2,0,3,-1,-2,0,3,1,-2,0,3,1,-1,0,3,2,-1,0,3,-1,-1,0,3,-2,0,0,3,-2,1,0,3,-1,1,0,3,0,1,0,3,1,1,0,3,2,1,0,3,2,0,0,3,1,0,0,3,-1,0,0,3,2,-2,0,3,2,-3,0,3,1,-3,0,3,0,-3,0,3,-1,-3,0,3,-2,-3,0,3,-2,2,0,3,-1,2,0,3,0,2,0,3,1,2,0,3,2,2,0,3,3,2,0,3,3,1,0,3,3,0,0,3,3,-1,0,3,3,-2,0,3,3,-3,0,3,3,-4,0,3,2,-4,0,3,1,-4,0,3,0,-4,0,3,-1,-4,0,3,-2,-4,0,3,-3,-3,0,3,-3,-2,0,3,-3,-1,0,3,-3,0,0,3,-3,1,0,3,-3,2,0,3,0,0,0,3,0,-2,0,3,0,-1,0,3],"CustomFloor1":[],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/preinstall/PreinstallMarkManager.cs b/DungeonShooting_Godot/src/framework/map/preinstall/PreinstallMarkManager.cs index f292bd4..45501bf 100644 --- a/DungeonShooting_Godot/src/framework/map/preinstall/PreinstallMarkManager.cs +++ b/DungeonShooting_Godot/src/framework/map/preinstall/PreinstallMarkManager.cs @@ -102,6 +102,10 @@ { return "出生标记"; } + else if (type == SpecialMarkType.OutPoint) + { + return "出口标记"; + } return string.Empty; } diff --git a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs index 47a70cc..827259a 100644 --- a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs +++ b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs @@ -170,6 +170,10 @@ { } + else if (markInfo.SpecialMarkType == SpecialMarkType.OutPoint) //出口标记 + { + + } else { Debug.LogError("暂未支持的类型: " + markInfo.SpecialMarkType); diff --git a/DungeonShooting_Godot/src/framework/map/preinstall/SpecialMarkType.cs b/DungeonShooting_Godot/src/framework/map/preinstall/SpecialMarkType.cs index 5af5be5..385cff3 100644 --- a/DungeonShooting_Godot/src/framework/map/preinstall/SpecialMarkType.cs +++ b/DungeonShooting_Godot/src/framework/map/preinstall/SpecialMarkType.cs @@ -12,4 +12,8 @@ /// 玩家出生点 /// BirthPoint, + /// + /// 地牢出口 + /// + OutPoint, } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/serialize/room/RoomPreinstallInfo.cs b/DungeonShooting_Godot/src/framework/map/serialize/room/RoomPreinstallInfo.cs index f9b0f11..2cb7c7f 100644 --- a/DungeonShooting_Godot/src/framework/map/serialize/room/RoomPreinstallInfo.cs +++ b/DungeonShooting_Godot/src/framework/map/serialize/room/RoomPreinstallInfo.cs @@ -47,20 +47,29 @@ new List() }; } - + /// /// 初始化特殊标记 /// public void InitSpecialMark(DungeonRoomType roomType) { + var type = SpecialMarkType.Normal; if (roomType == DungeonRoomType.Inlet) //初始房间 { + type = SpecialMarkType.BirthPoint; + } + else if (roomType == DungeonRoomType.Outlet) //结束房间 + { + type = SpecialMarkType.OutPoint; + } + + if (type != SpecialMarkType.Normal) + { var preloading = WaveList[0]; - //玩家标记 var markInfo = new MarkInfo(); markInfo.Position = new SerializeVector2(); markInfo.Size = new SerializeVector2(); - markInfo.SpecialMarkType = SpecialMarkType.BirthPoint; + markInfo.SpecialMarkType = type; markInfo.MarkList = new List(); preloading.Add(markInfo); } diff --git a/DungeonShooting_Godot/src/game/manager/ResourceManager.cs b/DungeonShooting_Godot/src/game/manager/ResourceManager.cs index 09bdfea..89a8e0d 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourceManager.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourceManager.cs @@ -182,6 +182,10 @@ { return LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_BirthMark_png); } + else if (markInfo.SpecialMarkType == SpecialMarkType.OutPoint) //出口标记 + { + return LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_BirthMark_png); + } else if (markInfo.MarkList != null) //普通标记 { if (markInfo.MarkList.Count > 1) //多个物体 diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs index 0ac1067..4b899e9 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs @@ -78,7 +78,7 @@ S_DelayInput.Instance.Value = data.DelayTime; } - if (_markInfo.SpecialMarkType == SpecialMarkType.BirthPoint) //出生标记 + if (_markInfo.SpecialMarkType != SpecialMarkType.Normal) //特殊标记 { var markInfoItem = new MarkInfoItem(); markInfoItem.SpecialMarkType = _markInfo.SpecialMarkType; @@ -134,6 +134,10 @@ { } + else if (data.SpecialMarkType == SpecialMarkType.OutPoint) //出口标记 + { + + } else //普通标记 { var gridCount = _grid.Count; diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs index aed3c2b..5211359 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs @@ -29,7 +29,7 @@ //权重 CellNode.L_VBoxContainer.L_HBoxContainer.L_WeightEdit.Instance.Value = data.Weight; - if (data.SpecialMarkType == SpecialMarkType.BirthPoint) //出生标记 + if (data.SpecialMarkType != SpecialMarkType.Normal) //特殊标记 { //物体名称 CellNode.L_VBoxContainer.L_HBoxContainer.L_NameLabel.Instance.Text = PreinstallMarkManager.GetSpecialName(data.SpecialMarkType); diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs index 712977d..638b735 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs @@ -214,7 +214,7 @@ { var markCell = (EditorMarkCell)uiCell; var markType = markCell.Data.MarkInfo.SpecialMarkType; - if (markType == SpecialMarkType.BirthPoint) //某些特殊标记不能删除 + if (markType != SpecialMarkType.Normal) //特殊标记不能删除 { S_DynamicTool.L_EditButton.Instance.Visible = true; S_DynamicTool.L_DeleteButton.Instance.Visible = false;