diff --git a/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json b/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json index a4c35ea..a8f488f 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json @@ -81,7 +81,12 @@ "Path": "resource/map/tileMaps/TestGroup2/outlet/End1" } ], - "BossList": [], + "BossList": [ + { + "ErrorType": 0, + "Path": "resource/map/tileMaps/TestGroup2/boss/Boss1" + } + ], "RewardList": [], "ShopList": [], "EventList": [], diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/Preview.png index 4346ab3..9acad60 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/Preview.png +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/Preview.png Binary files differ diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/RoomInfo.json index 7d098e1..2609977 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/RoomInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/RoomInfo.json @@ -1 +1 @@ -{"Position":{"X":-5,"Y":-7},"Size":{"X":18,"Y":13},"DoorAreaInfos":[],"GroupName":"TestGroup2","RoomType":0,"RoomName":"Battle1","Weight":100,"Remark":""} \ No newline at end of file +{"Position":{"X":-2,"Y":-3},"Size":{"X":8,"Y":9},"DoorAreaInfos":[],"GroupName":"TestGroup2","RoomType":0,"RoomName":"Battle1","Weight":100,"Remark":""} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/TileInfo.json index db916da..6e8eb17 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/TileInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/battle/Battle1/TileInfo.json @@ -1 +1 @@ -{"NavigationVertices":[{"X":150,"Y":54},{"X":170,"Y":66},{"X":-42,"Y":66},{"X":106,"Y":54},{"X":170,"Y":-58},{"X":150,"Y":2},{"X":-42,"Y":-58},{"X":106,"Y":2},{"X":22,"Y":-30},{"X":22,"Y":22},{"X":-22,"Y":-30},{"X":-22,"Y":22}],"NavigationPolygon":[[0,1,2,3],[4,1,0,5],[6,4,5,7,8],[9,8,7,3],[6,8,10],[2,6,10,11],[3,2,11,9]],"Floor":[-3,-3,0,0,4,-3,-2,0,0,4,-3,-1,0,0,4,-3,0,0,0,4,-3,1,0,0,4,-3,2,0,0,4,-3,3,0,0,4,-2,-4,0,0,4,-2,-3,0,0,4,-2,-2,0,0,4,-2,-1,0,0,4,-2,0,0,0,4,-2,1,0,0,4,-2,2,0,0,4,-2,3,0,0,4,-1,-4,0,0,4,-1,-3,0,0,4,-1,1,0,0,4,-1,2,0,0,4,-1,3,0,0,4,0,-4,0,0,4,0,-3,0,0,4,0,1,0,0,4,0,2,0,0,4,0,3,0,0,4,1,-4,0,0,4,1,-3,0,0,4,1,-2,0,0,4,1,-1,0,0,4,1,0,0,0,4,1,1,0,0,4,1,2,0,0,4,1,3,0,0,4,2,-4,0,0,4,2,-3,0,0,4,2,-2,0,0,4,2,-1,0,0,4,2,0,0,0,4,2,1,0,0,4,2,2,0,0,4,2,3,0,0,4,3,-4,0,0,4,3,-3,0,0,4,3,-2,0,0,4,3,-1,0,0,4,3,0,0,0,4,3,1,0,0,4,3,2,0,0,4,3,3,0,0,4,4,-4,0,0,4,4,-3,0,0,4,4,-2,0,0,4,4,-1,0,0,4,4,0,0,0,4,4,1,0,0,4,4,2,0,0,4,4,3,0,0,4,5,-4,0,0,4,5,-3,0,0,4,5,-2,0,0,4,5,-1,0,0,4,5,0,0,0,4,5,1,0,0,4,5,2,0,0,4,5,3,0,0,4,6,-4,0,0,4,6,-3,0,0,4,6,-2,0,0,4,6,-1,0,0,4,6,0,0,0,4,6,1,0,0,4,6,2,0,0,4,6,3,0,0,4,7,-4,0,0,4,7,-3,0,0,4,7,-2,0,0,4,7,-1,0,0,4,7,3,0,0,4,8,-4,0,0,4,8,-3,0,0,4,8,-2,0,0,4,8,-1,0,0,4,8,3,0,0,4,9,-4,0,0,4,9,-3,0,0,4,9,-2,0,0,4,9,-1,0,0,4,9,0,0,0,4,9,1,0,0,4,9,2,0,0,4,9,3,0,0,4,10,-3,0,0,4,10,-2,0,0,4,10,-1,0,0,4,10,0,0,0,4,10,1,0,0,4,10,2,0,0,4,10,3,0,0,4,-3,-4,0,0,4,10,-4,0,0,4],"Middle":[-3,-6,0,9,3,-3,-5,0,2,4,-2,-6,0,9,3,-2,-5,0,2,4,-1,-6,0,9,3,-1,-5,0,2,4,-1,-1,0,8,3,-1,0,0,1,4,0,-6,0,9,3,0,-5,0,2,4,0,-1,0,11,3,0,0,0,3,4,1,-6,0,9,3,1,-5,0,2,4,2,-6,0,9,3,2,-5,0,2,4,3,-6,0,9,3,3,-5,0,2,4,4,-6,0,9,3,4,-5,0,2,4,5,-6,0,9,3,5,-5,0,2,4,6,-6,0,9,3,6,-5,0,2,4,7,-6,0,9,3,7,-5,0,2,4,7,1,0,8,3,7,2,0,1,4,8,-6,0,9,3,8,-5,0,2,4,8,1,0,11,3,8,2,0,3,4,9,-6,0,9,3,9,-5,0,2,4,10,-6,0,9,3,10,-5,0,2,4],"Top":[-5,-7,0,9,2,-5,-6,0,9,2,-5,-5,0,9,2,-5,-4,0,9,2,-5,-3,0,9,2,-5,-2,0,9,2,-5,-1,0,9,2,-5,0,0,9,2,-5,1,0,9,2,-5,2,0,9,2,-5,3,0,9,2,-5,4,0,9,2,-5,5,0,9,2,-4,-7,0,9,2,-4,-6,0,6,2,-4,-5,0,11,2,-4,-4,0,11,2,-4,-3,0,11,2,-4,-2,0,11,2,-4,-1,0,11,2,-4,0,0,11,2,-4,1,0,11,2,-4,2,0,11,2,-4,3,0,11,2,-4,4,0,6,1,-4,5,0,9,2,-3,-7,0,9,2,-3,4,0,10,0,-3,5,0,9,2,-2,-7,0,9,2,-2,4,0,10,0,-2,5,0,9,2,-1,-7,0,9,2,-1,-2,0,8,0,-1,4,0,10,0,-1,5,0,9,2,0,-7,0,9,2,0,-2,0,11,0,0,4,0,10,0,0,5,0,9,2,1,-7,0,9,2,1,4,0,10,0,1,5,0,9,2,2,-7,0,9,2,2,4,0,10,0,2,5,0,9,2,3,-7,0,9,2,3,4,0,10,0,3,5,0,9,2,4,-7,0,9,2,4,4,0,10,0,4,5,0,9,2,5,-7,0,9,2,5,4,0,10,0,5,5,0,9,2,6,-7,0,9,2,6,4,0,10,0,6,5,0,9,2,7,-7,0,9,2,7,0,0,8,0,7,4,0,10,0,7,5,0,9,2,8,-7,0,9,2,8,0,0,11,0,8,4,0,10,0,8,5,0,9,2,9,-7,0,9,2,9,4,0,10,0,9,5,0,9,2,10,-7,0,9,2,10,4,0,10,0,10,5,0,9,2,11,-7,0,9,2,11,-6,0,5,2,11,-5,0,8,1,11,-4,0,8,1,11,-3,0,8,1,11,-2,0,8,1,11,-1,0,8,1,11,0,0,8,1,11,1,0,8,1,11,2,0,8,1,11,3,0,8,1,11,4,0,5,1,11,5,0,9,2,12,-7,0,9,2,12,-6,0,9,2,12,-5,0,9,2,12,-4,0,9,2,12,-3,0,9,2,12,-2,0,9,2,12,-1,0,9,2,12,0,0,9,2,12,1,0,9,2,12,2,0,9,2,12,3,0,9,2,12,4,0,9,2,12,5,0,9,2]} \ No newline at end of file +{"NavigationVertices":[{"X":58,"Y":66},{"X":6,"Y":66},{"X":6,"Y":6},{"X":58,"Y":6}],"NavigationPolygon":[[0,1,2,3]],"Floor":[0,0,0,0,4,0,1,0,0,4,0,2,0,0,4,1,0,0,0,4,1,1,0,0,4,1,2,0,0,4,2,0,0,0,4,2,1,0,0,4,2,2,0,0,4,3,0,0,0,4,3,1,0,0,4,3,2,0,0,4,0,3,0,0,4,1,3,0,0,4,2,3,0,0,4,3,3,0,0,4],"Middle":[0,-2,0,9,3,0,-1,0,2,4,1,-2,0,9,3,1,-1,0,2,4,2,-2,0,9,3,2,-1,0,2,4,3,-2,0,9,3,3,-1,0,2,4],"Top":[-2,-3,0,9,2,-2,-2,0,9,2,-2,-1,0,9,2,-2,0,0,9,2,-2,1,0,9,2,-2,2,0,9,2,-2,3,0,9,2,-2,4,0,9,2,-2,5,0,9,2,-1,-3,0,9,2,-1,-2,0,6,2,-1,-1,0,11,2,-1,0,0,11,2,-1,1,0,11,2,-1,2,0,11,2,-1,3,0,11,2,-1,4,0,6,1,-1,5,0,9,2,0,-3,0,9,2,0,4,0,10,0,0,5,0,9,2,1,-3,0,9,2,1,4,0,10,0,1,5,0,9,2,2,-3,0,9,2,2,4,0,10,0,2,5,0,9,2,3,-3,0,9,2,3,4,0,10,0,3,5,0,9,2,4,-3,0,9,2,4,-2,0,5,2,4,-1,0,8,1,4,0,0,8,1,4,1,0,8,1,4,2,0,8,1,4,3,0,8,1,4,4,0,5,1,4,5,0,9,2,5,-3,0,9,2,5,-2,0,9,2,5,-1,0,9,2,5,0,0,9,2,5,1,0,9,2,5,2,0,9,2,5,3,0,9,2,5,4,0,9,2,5,5,0,9,2]} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/Preinstall.json new file mode 100644 index 0000000..638cd69 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/Preinstall.json @@ -0,0 +1 @@ +[{"Name":"Preinstall1","Weight":100,"Remark":"","WaveList":[[]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/Preview.png new file mode 100644 index 0000000..546cf92 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/Preview.png Binary files differ diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/RoomInfo.json new file mode 100644 index 0000000..ef2d5ee --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/RoomInfo.json @@ -0,0 +1 @@ +{"Position":{"X":-2,"Y":-3},"Size":{"X":8,"Y":9},"DoorAreaInfos":[],"GroupName":"TestGroup2","RoomType":3,"RoomName":"Boss1","Weight":100,"Remark":""} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/TileInfo.json new file mode 100644 index 0000000..eaf7ab4 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/boss/Boss1/TileInfo.json @@ -0,0 +1 @@ +{"NavigationVertices":[{"X":38,"Y":54},{"X":58,"Y":66},{"X":6,"Y":66},{"X":10,"Y":54},{"X":6,"Y":6},{"X":10,"Y":18},{"X":58,"Y":6},{"X":38,"Y":18}],"NavigationPolygon":[[0,1,2,3],[3,2,4,5],[6,1,0,7],[4,6,7,5]],"Floor":[0,0,0,0,4,0,1,0,0,4,0,2,0,0,4,1,0,0,0,4,2,0,0,0,4,3,0,0,0,4,3,1,0,0,4,2,1,0,0,4,2,2,0,0,4,2,3,0,0,4,1,3,0,0,4,0,3,0,0,4,3,3,0,0,4,3,2,0,0,4],"Middle":[0,-2,0,9,3,0,-1,0,2,4,1,-2,0,9,3,1,-1,0,2,4,1,1,0,0,3,1,2,0,4,4,2,-2,0,9,3,2,-1,0,2,4,3,-2,0,9,3,3,-1,0,2,4],"Top":[-2,-3,0,9,2,-2,-2,0,9,2,-2,-1,0,9,2,-2,0,0,9,2,-2,1,0,9,2,-2,2,0,9,2,-2,3,0,9,2,-2,4,0,9,2,-2,5,0,9,2,-1,-3,0,9,2,-1,-2,0,6,2,-1,-1,0,11,2,-1,0,0,11,2,-1,1,0,11,2,-1,2,0,11,2,-1,3,0,11,2,-1,4,0,6,1,-1,5,0,9,2,0,-3,0,9,2,0,4,0,10,0,0,5,0,9,2,1,-3,0,9,2,1,4,0,10,0,1,5,0,9,2,2,-3,0,9,2,2,4,0,10,0,2,5,0,9,2,3,-3,0,9,2,3,4,0,10,0,3,5,0,9,2,4,-3,0,9,2,4,-2,0,5,2,4,-1,0,8,1,4,0,0,8,1,4,1,0,8,1,4,2,0,8,1,4,3,0,8,1,4,4,0,5,1,4,5,0,9,2,5,-3,0,9,2,5,-2,0,9,2,5,-1,0,9,2,5,0,0,9,2,5,1,0,9,2,5,2,0,9,2,5,3,0,9,2,5,4,0,9,2,5,5,0,9,2]} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/Preinstall.json index 53e2684..f0b7d50 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/Preinstall.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/Preinstall.json @@ -1 +1 @@ -[{"Name":"Preinstall1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":63,"Y":19},"Size":{"X":21,"Y":14},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":47,"Y":-14},"Size":{"X":0,"Y":0},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]}]]}] \ No newline at end of file +[{"Name":"Preinstall1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":29,"Y":13},"Size":{"X":21,"Y":14},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]}]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/Preview.png index 9ce38d3..9acad60 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/Preview.png +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/Preview.png Binary files differ diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/RoomInfo.json index c1f72ee..7fafbc7 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/RoomInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/RoomInfo.json @@ -1 +1 @@ -{"Position":{"X":-3,"Y":-6},"Size":{"X":14,"Y":13},"DoorAreaInfos":[{"Direction":3,"Start":0,"End":64},{"Direction":1,"Start":0,"End":64},{"Direction":0,"Start":64,"End":128},{"Direction":2,"Start":96,"End":160}],"GroupName":"TestGroup2","RoomType":1,"RoomName":"Start1","Weight":100,"Remark":""} \ No newline at end of file +{"Position":{"X":-2,"Y":-4},"Size":{"X":8,"Y":9},"DoorAreaInfos":[],"GroupName":"TestGroup2","RoomType":1,"RoomName":"Start1","Weight":100,"Remark":""} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/TileInfo.json index 65a9c61..7ec737c 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/TileInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup2/inlet/Start1/TileInfo.json @@ -1 +1 @@ -{"NavigationVertices":[{"X":138,"Y":82},{"X":-10,"Y":82},{"X":-10,"Y":-42},{"X":138,"Y":-42}],"NavigationPolygon":[[0,1,2,3]],"Floor":[-1,-3,0,0,4,-1,-2,0,0,4,-1,-1,0,0,4,-1,0,0,0,4,-1,1,0,0,4,-1,2,0,0,4,-1,3,0,0,4,-1,4,0,0,4,0,-3,0,0,4,0,-2,0,0,4,0,-1,0,0,4,0,0,0,0,4,0,1,0,0,4,0,2,0,0,4,0,3,0,0,4,0,4,0,0,4,1,-3,0,0,4,1,-2,0,0,4,1,-1,0,0,4,1,0,0,0,4,1,1,0,0,4,1,2,0,0,4,1,3,0,0,4,1,4,0,0,4,2,-3,0,0,4,2,-2,0,0,4,2,-1,0,0,4,2,0,0,0,4,2,1,0,0,4,2,2,0,0,4,2,3,0,0,4,2,4,0,0,4,3,-3,0,0,4,3,-2,0,0,4,3,-1,0,0,4,3,0,0,0,4,3,1,0,0,4,3,2,0,0,4,3,3,0,0,4,3,4,0,0,4,4,-3,0,0,4,4,-2,0,0,4,4,-1,0,0,4,4,0,0,0,4,4,1,0,0,4,4,2,0,0,4,4,3,0,0,4,4,4,0,0,4,5,-3,0,0,4,5,-2,0,0,4,5,-1,0,0,4,5,0,0,0,4,5,1,0,0,4,5,2,0,0,4,5,3,0,0,4,5,4,0,0,4,6,-3,0,0,4,6,-2,0,0,4,6,-1,0,0,4,6,0,0,0,4,6,1,0,0,4,6,2,0,0,4,6,3,0,0,4,6,4,0,0,4,7,-3,0,0,4,7,-2,0,0,4,7,-1,0,0,4,7,0,0,0,4,7,1,0,0,4,7,2,0,0,4,7,3,0,0,4,7,4,0,0,4,8,-2,0,0,4,8,-1,0,0,4,8,0,0,0,4,8,1,0,0,4,8,2,0,0,4,8,3,0,0,4,8,4,0,0,4,8,-3,0,0,4],"Middle":[-1,-5,0,9,3,-1,-4,0,2,4,0,-5,0,9,3,0,-4,0,2,4,1,-5,0,9,3,1,-4,0,2,4,2,-5,0,9,3,2,-4,0,2,4,3,-5,0,9,3,3,-4,0,2,4,4,-5,0,9,3,4,-4,0,2,4,5,-5,0,9,3,5,-4,0,2,4,6,-5,0,9,3,6,-4,0,2,4,7,-5,0,9,3,7,-4,0,2,4,8,-5,0,9,3,8,-4,0,2,4],"Top":[-3,-6,0,9,2,-3,-5,0,9,2,-3,-4,0,9,2,-3,-3,0,9,2,-3,-2,0,9,2,-3,-1,0,9,2,-3,0,0,9,2,-3,1,0,9,2,-3,2,0,9,2,-3,3,0,9,2,-3,4,0,9,2,-3,5,0,9,2,-3,6,0,9,2,-2,-6,0,9,2,-2,-5,0,6,2,-2,-4,0,11,2,-2,-3,0,11,2,-2,-2,0,11,2,-2,-1,0,11,2,-2,0,0,11,2,-2,1,0,11,2,-2,2,0,11,2,-2,3,0,11,2,-2,4,0,11,2,-2,5,0,6,1,-2,6,0,9,2,-1,-6,0,9,2,-1,5,0,10,0,-1,6,0,9,2,0,-6,0,9,2,0,5,0,10,0,0,6,0,9,2,1,-6,0,9,2,1,5,0,10,0,1,6,0,9,2,2,-6,0,9,2,2,5,0,10,0,2,6,0,9,2,3,-6,0,9,2,3,5,0,10,0,3,6,0,9,2,4,-6,0,9,2,4,5,0,10,0,4,6,0,9,2,5,-6,0,9,2,5,5,0,10,0,5,6,0,9,2,6,-6,0,9,2,6,5,0,10,0,6,6,0,9,2,7,-6,0,9,2,7,5,0,10,0,7,6,0,9,2,8,-6,0,9,2,8,5,0,10,0,8,6,0,9,2,9,-6,0,9,2,9,-5,0,5,2,9,-4,0,8,1,9,-3,0,8,1,9,-2,0,8,1,9,-1,0,8,1,9,0,0,8,1,9,1,0,8,1,9,2,0,8,1,9,3,0,8,1,9,4,0,8,1,9,5,0,5,1,9,6,0,9,2,10,-6,0,9,2,10,-5,0,9,2,10,-4,0,9,2,10,-3,0,9,2,10,-2,0,9,2,10,-1,0,9,2,10,0,0,9,2,10,1,0,9,2,10,2,0,9,2,10,3,0,9,2,10,4,0,9,2,10,5,0,9,2,10,6,0,9,2]} \ No newline at end of file +{"NavigationVertices":[{"X":58,"Y":50},{"X":6,"Y":50},{"X":6,"Y":-10},{"X":58,"Y":-10}],"NavigationPolygon":[[0,1,2,3]],"Floor":[0,0,0,0,4,1,0,0,0,4,2,0,0,0,4,2,1,0,0,4,1,1,0,0,4,0,1,0,0,4,0,2,0,0,4,1,2,0,0,4,2,2,0,0,4,0,-1,0,0,4,1,-1,0,0,4,2,-1,0,0,4,3,-1,0,0,4,3,0,0,0,4,3,1,0,0,4,3,2,0,0,4],"Middle":[0,-3,0,9,3,0,-2,0,2,4,1,-3,0,9,3,1,-2,0,2,4,2,-3,0,9,3,2,-2,0,2,4,3,-3,0,9,3,3,-2,0,2,4],"Top":[-2,-4,0,9,2,-2,-3,0,9,2,-2,-2,0,9,2,-2,-1,0,9,2,-2,0,0,9,2,-2,1,0,9,2,-2,2,0,9,2,-2,3,0,9,2,-2,4,0,9,2,-1,-4,0,9,2,-1,-3,0,6,2,-1,-2,0,11,2,-1,-1,0,11,2,-1,0,0,11,2,-1,1,0,11,2,-1,2,0,11,2,-1,3,0,6,1,-1,4,0,9,2,0,-4,0,9,2,0,3,0,10,0,0,4,0,9,2,1,-4,0,9,2,1,3,0,10,0,1,4,0,9,2,2,-4,0,9,2,2,3,0,10,0,2,4,0,9,2,3,-4,0,9,2,3,3,0,10,0,3,4,0,9,2,4,-4,0,9,2,4,-3,0,5,2,4,-2,0,8,1,4,-1,0,8,1,4,0,0,8,1,4,1,0,8,1,4,2,0,8,1,4,3,0,5,1,4,4,0,9,2,5,-4,0,9,2,5,-3,0,9,2,5,-2,0,9,2,5,-1,0,9,2,5,0,0,9,2,5,1,0,9,2,5,2,0,9,2,5,3,0,9,2,5,4,0,9,2]} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs index 4afdb8a..3a8ab4d 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs @@ -46,20 +46,16 @@ private DungeonRoomType _nextRoomType = DungeonRoomType.Battle; //间隔 - private int _roomMinInterval = 5; - private int _roomMaxInterval = 6; + private int _roomMinInterval = 1; + private int _roomMaxInterval = 3; //房间横轴分散程度 private float _roomHorizontalMinDispersion = 0f; private float _roomHorizontalMaxDispersion = 0.5f; - // private float _roomHorizontalMinDispersion = 0f; - // private float _roomHorizontalMaxDispersion = 2f; //房间纵轴分散程度 private float _roomVerticalMinDispersion = 0f; private float _roomVerticalMaxDispersion = 0.5f; - // private float _roomVerticalMinDispersion = 0f; - // private float _roomVerticalMaxDispersion = 2f; //区域限制 private bool _enableLimitRange = true; @@ -169,7 +165,7 @@ var chainMaxTryCount = 3; //最大尝试次数 - var maxTryCount = 500; + var maxTryCount = 1000; //当前尝试次数 var currTryCount = 0; @@ -272,7 +268,7 @@ chainTryCount++; } - Debug.Log("生成第" + (_count + 1) + "个房间失败! 失败原因: " + errorCode); + //Debug.Log("生成第" + (_count + 1) + "个房间失败! 失败原因: " + errorCode); if (errorCode == GenerateRoomErrorCode.OutArea) { _failCount++; @@ -356,6 +352,10 @@ var direction = _random.RandomRangeInt(0, 3); //房间间隔 var space = _random.RandomRangeInt(_roomMinInterval, _roomMaxInterval); + if (direction == 0 || direction == 2) + { + space += 1; + } //中心偏移 int offset; if (direction == 0 || direction == 2) @@ -404,7 +404,7 @@ } //是否碰到其他房间或者过道 - if (_roomGrid.RectCollision(room.Position - new Vector2I(GameConfig.RoomSpace, GameConfig.RoomSpace), room.Size + new Vector2I(GameConfig.RoomSpace * 2, GameConfig.RoomSpace * 2))) + if (_roomGrid.RectCollision(room.Position, room.Size)) { //碰到其他墙壁, 再一次尝试 continue; @@ -417,6 +417,7 @@ if (!ConnectDoor(prevRoomInfo, room)) { _roomGrid.RemoveRect(room.Position, room.Size); + Debug.Log("链接通道失败"); //房间过道没有连接上, 再一次尝试 continue; //return GenerateRoomErrorCode.NoProperDoor; @@ -625,7 +626,7 @@ { //找到重叠区域 var range = _random.RandomChooseAndRemove(rangeList); - var x = _random.RandomRangeInt(range.X, range.Y); + var x = _random.RandomRangeInt(range.X, range.Y) + 2; if (roomInfo.GetVerticalStart() < nextRoomInfo.GetVerticalStart()) //room在上, nextRoom在下 { @@ -677,7 +678,7 @@ { //找到重叠区域 var range = _random.RandomChooseAndRemove(rangeList); - var y = _random.RandomRangeInt(range.X, range.Y); + var y = _random.RandomRangeInt(range.X, range.Y) + 3; if (roomInfo.GetHorizontalStart() < nextRoomInfo.GetHorizontalStart()) //room在左, nextRoom在右 { @@ -959,7 +960,9 @@ { return false; } - + + offset1 += 1; + offset2 += 1; roomDoor.OriginPosition = new Vector2I(roomInfo.GetHorizontalDoorStart() + offset1, roomInfo.GetVerticalDoorStart()); nextRoomDoor.OriginPosition = new Vector2I(nextRoomInfo.GetHorizontalDoorEnd(), nextRoomInfo.GetVerticalDoorStart() + offset2); @@ -979,7 +982,9 @@ { return false; } - + + offset1 += 1; + offset2 += 1; roomDoor.OriginPosition = new Vector2I(roomInfo.GetHorizontalDoorStart(), roomInfo.GetVerticalDoorStart() + offset1); nextRoomDoor.OriginPosition = new Vector2I(nextRoomInfo.GetHorizontalDoorStart() + offset2, nextRoomInfo.GetVerticalDoorEnd()); cross = new Vector2I(nextRoomDoor.OriginPosition.X, roomDoor.OriginPosition.Y); @@ -998,6 +1003,8 @@ return false; } + offset1 += 1; + offset2 += 1; roomDoor.OriginPosition = new Vector2I(roomInfo.GetHorizontalDoorStart() + offset1, roomInfo.GetVerticalDoorEnd()); nextRoomDoor.OriginPosition = new Vector2I(nextRoomInfo.GetHorizontalDoorEnd(), nextRoomInfo.GetVerticalDoorStart() + offset2); @@ -1017,6 +1024,8 @@ return false; } + offset1 += 1; + offset2 += 1; roomDoor.OriginPosition = new Vector2I(roomInfo.GetHorizontalDoorStart(), roomInfo.GetVerticalDoorStart() + offset1); // nextRoomDoor.OriginPosition = new Vector2I(nextRoomInfo.GetHorizontalDoorStart() + offset2, @@ -1036,7 +1045,9 @@ { return false; } - + + offset1 += 1; + offset2 += 1; roomDoor.OriginPosition = new Vector2I(roomInfo.GetHorizontalDoorEnd(), roomInfo.GetVerticalDoorStart() + offset1); nextRoomDoor.OriginPosition = new Vector2I(nextRoomInfo.GetHorizontalDoorStart() + offset2, nextRoomInfo.GetVerticalDoorEnd()); @@ -1055,7 +1066,9 @@ { return false; } - + + offset1 += 1; + offset2 += 1; roomDoor.OriginPosition = new Vector2I(roomInfo.GetHorizontalDoorStart() + offset1, roomInfo.GetVerticalDoorStart()); nextRoomDoor.OriginPosition = new Vector2I(nextRoomInfo.GetHorizontalDoorStart(), nextRoomInfo.GetVerticalDoorStart() + offset2); @@ -1074,7 +1087,9 @@ { return false; } - + + offset1 += 1; + offset2 += 2; roomDoor.OriginPosition = new Vector2I(roomInfo.GetHorizontalDoorEnd(), roomInfo.GetVerticalDoorStart() + offset1); nextRoomDoor.OriginPosition = new Vector2I(nextRoomInfo.GetHorizontalStart() + offset2, nextRoomInfo.GetVerticalDoorStart()); @@ -1093,7 +1108,9 @@ { return false; } - + + offset1 += 1; + offset2 += 1; roomDoor.OriginPosition = new Vector2I(roomInfo.GetHorizontalDoorStart() + offset1, roomInfo.GetVerticalDoorEnd()); nextRoomDoor.OriginPosition = new Vector2I(nextRoomInfo.GetHorizontalDoorStart(), nextRoomInfo.GetVerticalDoorStart() + offset2); @@ -1244,6 +1261,11 @@ //将两个门间的过道占用数据存入RoomGrid, 该重载加入拐角点 private bool AddCorridorToGridRange(RoomDoorInfo door1, RoomDoorInfo door2, Vector2I cross) { + if (_roomGrid.RectCollision(cross - new Vector2I(1, 2), new Vector2I(GameConfig.CorridorWidth + 2, GameConfig.CorridorWidth + 3))) + { + return false; + } + var point1 = door1.OriginPosition; var point2 = door2.OriginPosition; var pos1 = new Vector2I(Mathf.Min(point1.X, cross.X), Mathf.Min(point1.Y, cross.Y)); diff --git a/DungeonShooting_Godot/src/framework/map/DungeonTileMap.cs b/DungeonShooting_Godot/src/framework/map/DungeonTileMap.cs index 5d6c1d1..672f197 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonTileMap.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonTileMap.cs @@ -518,20 +518,9 @@ } else { - var atlasCoords = _tileRoot.GetCellAtlasCoords(GameConfig.TopMapLayer, (rect.Position - new Vector2(1, 1)).AsVector2I()); ClearRect(GameConfig.TopMapLayer, rect.Position - new Vector2(1, 1), new Vector2(2, 4)); - - if (atlasCoords == config.Wall_Right.AutoTileCoords) - { - FillRect(GameConfig.MiddleMapLayer, config.Wall_Vertical_Left, rect.Position - new Vector2(1, 0), Vector2.One); - FillRect(GameConfig.TopMapLayer, config.Wall_Out_LB, rect.Position - new Vector2(1, 1), Vector2.One); - } - else - { - FillRect(GameConfig.MiddleMapLayer, config.Wall_Vertical_Center, rect.Position - new Vector2(1, 0), Vector2.One); - FillRect(GameConfig.MiddleMapLayer, config.Wall_Top, rect.Position - new Vector2(1, 1), Vector2.One); - } - + FillRect(GameConfig.MiddleMapLayer, config.Wall_Vertical_Left, rect.Position - new Vector2(1, 0), Vector2.One); + FillRect(GameConfig.TopMapLayer, config.Wall_Out_LB, rect.Position - new Vector2(1, 1), Vector2.One); FillRect(GameConfig.TopMapLayer, config.Wall_Out_LT, rect.Position + new Vector2(-1, 3), Vector2.One); FillRect(GameConfig.FloorMapLayer, config.Floor, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2)); @@ -564,20 +553,9 @@ } else { - var atlasCoords = _tileRoot.GetCellAtlasCoords(GameConfig.TopMapLayer, (rect.Position + new Vector2(rect.Size.X, -1)).AsVector2I()); ClearRect(GameConfig.TopMapLayer, rect.Position + new Vector2(rect.Size.X - 1, -1), new Vector2(2, 4)); - - if (atlasCoords == config.Wall_Left.AutoTileCoords) - { - FillRect(GameConfig.MiddleMapLayer, config.Wall_Vertical_Right, rect.Position + new Vector2(rect.Size.X, 0), Vector2.One); - FillRect(GameConfig.TopMapLayer, config.Wall_Out_RB, rect.Position + new Vector2(rect.Size.X, -1), Vector2.One); - } - else - { - FillRect(GameConfig.MiddleMapLayer, config.Wall_Vertical_Center, rect.Position + new Vector2(rect.Size.X, 0), Vector2.One); - FillRect(GameConfig.MiddleMapLayer, config.Wall_Top, rect.Position + new Vector2(rect.Size.X, -1), Vector2.One); - } - + FillRect(GameConfig.MiddleMapLayer, config.Wall_Vertical_Right, rect.Position + new Vector2(rect.Size.X, 0), Vector2.One); + FillRect(GameConfig.TopMapLayer, config.Wall_Out_RB, rect.Position + new Vector2(rect.Size.X, -1), Vector2.One); FillRect(GameConfig.TopMapLayer, config.Wall_Out_RT, rect.Position + new Vector2(rect.Size.X, 3), Vector2.One); FillRect(GameConfig.FloorMapLayer, config.Floor, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2)); diff --git a/DungeonShooting_Godot/src/framework/map/serialize/DungeonRoomInfo.cs b/DungeonShooting_Godot/src/framework/map/serialize/DungeonRoomInfo.cs index 034fc7e..05e0dbe 100644 --- a/DungeonShooting_Godot/src/framework/map/serialize/DungeonRoomInfo.cs +++ b/DungeonShooting_Godot/src/framework/map/serialize/DungeonRoomInfo.cs @@ -68,10 +68,10 @@ _completionDoorArea = new List(DoorAreaInfos); if (_completionDoorArea.Count == 0) { - _completionDoorArea.Add(new DoorAreaInfo(DoorDirection.N, GameConfig.TileCellSize * 2, ((int)Size.X - 4) * GameConfig.TileCellSize)); - _completionDoorArea.Add(new DoorAreaInfo(DoorDirection.S, GameConfig.TileCellSize * 2, ((int)Size.X - 4) * GameConfig.TileCellSize)); - _completionDoorArea.Add(new DoorAreaInfo(DoorDirection.W, GameConfig.TileCellSize * 2, ((int)Size.Y - 4) * GameConfig.TileCellSize)); - _completionDoorArea.Add(new DoorAreaInfo(DoorDirection.E, GameConfig.TileCellSize * 2, ((int)Size.Y - 4) * GameConfig.TileCellSize)); + _completionDoorArea.Add(new DoorAreaInfo(DoorDirection.N, 0, ((int)Size.X - 4) * GameConfig.TileCellSize)); + _completionDoorArea.Add(new DoorAreaInfo(DoorDirection.S, 0, ((int)Size.X - 4) * GameConfig.TileCellSize)); + _completionDoorArea.Add(new DoorAreaInfo(DoorDirection.W, 0, ((int)Size.Y - 5) * GameConfig.TileCellSize)); + _completionDoorArea.Add(new DoorAreaInfo(DoorDirection.E, 0, ((int)Size.Y - 5) * GameConfig.TileCellSize)); } } diff --git a/DungeonShooting_Godot/src/game/GameApplication.cs b/DungeonShooting_Godot/src/game/GameApplication.cs index 9449bc1..088b7d2 100644 --- a/DungeonShooting_Godot/src/game/GameApplication.cs +++ b/DungeonShooting_Godot/src/game/GameApplication.cs @@ -98,7 +98,7 @@ DungeonConfig = new DungeonConfig(); DungeonConfig.GroupName = "TestGroup2"; - DungeonConfig.RoomCount = 15; + DungeonConfig.RoomCount = 10; } public override void _EnterTree() diff --git a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs index cbec0bd..482be7a 100644 --- a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs +++ b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs @@ -61,12 +61,12 @@ ActivePropsPack.SetCapacity(1); // debug用 - RoleState.Acceleration = 3000; - RoleState.Friction = 3000; - RoleState.MoveSpeed = 500; - CollisionLayer = 0; - CollisionMask = 0; - //GameCamera.Main.Zoom = new Vector2(0.5f, 0.5f); + // RoleState.Acceleration = 3000; + // RoleState.Friction = 3000; + // RoleState.MoveSpeed = 500; + // CollisionLayer = 0; + // CollisionMask = 0; + // GameCamera.Main.Zoom = new Vector2(0.5f, 0.5f); //GameCamera.Main.Zoom = new Vector2(0.2f, 0.2f); // this.CallDelay(0.5f, () => // { diff --git a/DungeonShooting_Godot/src/game/room/DungeonManager.cs b/DungeonShooting_Godot/src/game/room/DungeonManager.cs index 65959e0..b16af12 100644 --- a/DungeonShooting_Godot/src/game/room/DungeonManager.cs +++ b/DungeonShooting_Godot/src/game/room/DungeonManager.cs @@ -196,7 +196,7 @@ UiManager.Open_Loading(); yield return 0; //生成地牢房间 - var random = new SeedRandom(1); + var random = new SeedRandom(); _dungeonGenerator = new DungeonGenerator(CurrConfig, random); if (!_dungeonGenerator.Generate()) //生成房间失败 { @@ -787,17 +787,17 @@ { if (ActivityObject.IsDebug) { - // StartRoomInfo?.EachRoom(info => - // { - // DrawRect(new Rect2(info.Waypoints * GameConfig.TileCellSize, new Vector2(16, 16)), Colors.Red); - // }); + StartRoomInfo?.EachRoom(info => + { + DrawRect(new Rect2(info.Waypoints * GameConfig.TileCellSize, new Vector2(16, 16)), Colors.Red); + }); //绘制房间区域 - // if (_dungeonGenerator != null) - // { - // DrawRoomInfo(StartRoom); - // } + if (_dungeonGenerator != null) + { + DrawRoomInfo(StartRoomInfo); + } //绘制边缘线 - + } } diff --git a/DungeonShooting_Godot/src/game/room/World.cs b/DungeonShooting_Godot/src/game/room/World.cs index 29c4175..d6db819 100644 --- a/DungeonShooting_Godot/src/game/room/World.cs +++ b/DungeonShooting_Godot/src/game/room/World.cs @@ -70,7 +70,7 @@ public override void _Ready() { - //Color = Colors.Black; + Color = Colors.Black; //临时处理, 加载TileSet var tileSet = ResourceManager.Load(ResourcePath.resource_tileSet_map2_TileSet2_tres); diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs index b876584..511c8ac 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs @@ -408,7 +408,7 @@ var ePos1 = S_E_HoverRoot.Instance.Position; var sPos1 = S_S_HoverRoot.Instance.Position; var wPos1 = S_W_HoverRoot.Instance.Position; - var nPos2 = position + GameConfig.TileCellSizeVector2I * 2; + var nPos2 = position + new Vector2I(GameConfig.TileCellSize * 2, GameConfig.TileCellSize * 3); var ePos2 = new Vector2(position.X + size.X - GameConfig.TileCellSize * 2, position.Y + GameConfig.TileCellSize * 3); var sPos2 = new Vector2(position.X + GameConfig.TileCellSize * 2, position.Y + size.Y - GameConfig.TileCellSize * 2); var wPos2 = position + new Vector2I(GameConfig.TileCellSize * 2, GameConfig.TileCellSize * 3);