diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn index a72afc0..5e4d4ab 100644 --- a/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn +++ b/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://bt4xo2lb4h4rx"] +[gd_scene load_steps=10 format=3 uid="uid://bt4xo2lb4h4rx"] [ext_resource type="Script" path="res://src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs" id="1_cjivg"] [ext_resource type="Texture2D" uid="uid://n4atvj5fkcpg" path="res://resource/sprite/ui/commonIcon/Add.png" id="2_pxemo"] @@ -7,6 +7,7 @@ [ext_resource type="Texture2D" uid="uid://dligpyhp72sg7" path="res://resource/sprite/ui/commonIcon/Right.png" id="3_v5clf"] [ext_resource type="Script" path="res://src/game/ui/mapEditorCreateMark/attribute/NumberAttribute.cs" id="6_1ym7l"] [ext_resource type="Script" path="res://src/game/ui/mapEditorCreateMark/attribute/ObjectAttribute.cs" id="7_516p2"] +[ext_resource type="Script" path="res://src/game/ui/mapEditorCreateMark/attribute/OptionAttribute.cs" id="7_o1tg2"] [ext_resource type="Texture2D" uid="uid://dggb6p4sdmfry" path="res://resource/sprite/ui/commonIcon/Edit.png" id="7_yeuy4"] [node name="MapEditorCreateMark" type="Control"] @@ -319,6 +320,7 @@ [node name="ExpandGrid" type="GridContainer" parent="ExpandPanel"] layout_mode = 2 +columns = 2 [node name="NumberBar" type="Control" parent="."] custom_minimum_size = Vector2(0, 70) @@ -358,6 +360,44 @@ size_flags_vertical = 4 size_flags_stretch_ratio = 60.0 +[node name="OptionBar" type="Control" parent="."] +custom_minimum_size = Vector2(0, 70) +layout_mode = 2 +anchors_preset = 0 +offset_top = -405.0 +offset_right = 700.0 +offset_bottom = -335.0 +size_flags_horizontal = 3 +script = ExtResource("7_o1tg2") + +[node name="AttrName" type="Label" parent="OptionBar"] +layout_mode = 1 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_top = -21.5 +offset_right = 250.0 +offset_bottom = 21.5 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_stretch_ratio = 40.0 +text = "属性:" + +[node name="OptionInput" type="OptionButton" parent="OptionBar"] +custom_minimum_size = Vector2(0, 43) +layout_mode = 1 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 250.0 +offset_top = -21.0 +offset_right = 414.0 +offset_bottom = 22.0 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +size_flags_stretch_ratio = 60.0 + [node name="ObjectBar" type="Control" parent="."] custom_minimum_size = Vector2(0, 70) layout_mode = 2 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json b/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json index 6f78da4..d4787df 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json @@ -9,13 +9,13 @@ "PreinstallPath": "resource/map/tileMaps/TestGroup1/battle/Room1/Room1_preinstall.json" }, { - "Ready": false, + "Ready": true, "RoomPath": "resource/map/tileMaps/TestGroup1/battle/Room2/Room2_roomInfo.json", "TilePath": "resource/map/tileMaps/TestGroup1/battle/Room2/Room2_tileInfo.json", "PreinstallPath": "resource/map/tileMaps/TestGroup1/battle/Room2/Room2_preinstall.json" }, { - "Ready": false, + "Ready": true, "RoomPath": "resource/map/tileMaps/TestGroup1/battle/Room3/Room3_roomInfo.json", "TilePath": "resource/map/tileMaps/TestGroup1/battle/Room3/Room3_tileInfo.json", "PreinstallPath": "resource/map/tileMaps/TestGroup1/battle/Room3/Room3_preinstall.json" diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room1/Room1_preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room1/Room1_preinstall.json index e2c67d6..601c1ff 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room1/Room1_preinstall.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room1/Room1_preinstall.json @@ -1 +1 @@ -[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":-11,"Y":-85},"Size":{"X":110,"Y":27},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":64,"Y":27},"Size":{"X":94,"Y":60},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0003","Weight":100,"Attr":{"CurrAmmon":"12","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0},{"Id":"weapon0006","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]}],[{"Position":{"X":-26,"Y":-13},"Size":{"X":76,"Y":10},"SpecialMarkType":0,"DelayTime":2.5,"MarkList":[{"Id":"weapon0007","Weight":100,"Attr":{"CurrAmmon":"60","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0},{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":"weapon0005","CurrAmmon":"10","ResidueAmmo":"10"},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":25,"Y":-40},"Size":{"X":16,"Y":92},"SpecialMarkType":0,"DelayTime":1,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":"weapon0006","CurrAmmon":"20","ResidueAmmo":"20"},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":82,"Y":27},"Size":{"X":64,"Y":45},"SpecialMarkType":0,"DelayTime":3.5,"MarkList":[{"Id":"weapon0007","Weight":100,"Attr":{"CurrAmmon":"60","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":97,"Y":-132},"Size":{"X":31,"Y":60},"SpecialMarkType":0,"DelayTime":5,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":null},"Altitude":0,"VerticalSpeed":0}]}],[{"Position":{"X":32,"Y":35},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":"weapon0005","CurrAmmon":"10","ResidueAmmo":"10"},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":86,"Y":-113},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":3,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":null},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":-56,"Y":-145},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":4,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]}]]}] \ No newline at end of file +[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[],[{"Position":{"X":62,"Y":9},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Face":"0","Weapon":"weapon0005","CurrAmmon":"10","ResidueAmmo":"10"},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":24,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Face":"-1","Weapon":null},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":91,"Y":50},"Size":{"X":32,"Y":16},"SpecialMarkType":0,"DelayTime":1,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Face":"1","Weapon":null},"Altitude":0,"VerticalSpeed":0}]}]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room1/Room1_tileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room1/Room1_tileInfo.json index 0fb7acb..a4301a2 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room1/Room1_tileInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room1/Room1_tileInfo.json @@ -1 +1 @@ -{"NavigationList":[{"Type":0,"Points":[-24,-184,88,-184,88,-168,120,-168,120,-96,56,-96,56,-64,40,-64,40,-8,104,-8,104,-56,120,-56,120,64,72,64,72,104,120,104,120,128,24,128,24,104,56,104,56,64,8,64,8,0,-56,0,-56,80,-72,80,-72,-168,-24,-168]},{"Type":1,"Points":[-8,-160,72,-160,72,-120,40,-120,40,-104,-40,-104,-40,-144,-8,-144]},{"Type":1,"Points":[-56,-64,8,-64,8,-24,-56,-24]}],"Floor":[-5,4,0,0,8,-5,-11,0,0,8,-5,-5,0,0,8,-5,-4,0,0,8,-5,-3,0,0,8,-5,-2,0,0,8,-5,-1,0,0,8,-5,0,0,0,8,-5,1,0,0,8,-5,2,0,0,8,-5,3,0,0,8,-5,-6,0,0,8,-5,-7,0,0,8,-5,-8,0,0,8,-5,-9,0,0,8,-5,-10,0,0,8,-4,-11,0,0,8,-4,-5,0,0,8,-4,-4,0,0,8,-4,-3,0,0,8,-4,-2,0,0,8,-4,-1,0,0,8,-4,0,0,0,8,-4,1,0,0,8,-4,2,0,0,8,-4,3,0,0,8,-4,-6,0,0,8,-4,-7,0,0,8,-4,-8,0,0,8,-4,-10,0,0,8,-4,-9,0,0,8,-4,4,0,0,8,-3,-5,0,0,8,-3,-11,0,0,8,-3,-2,0,0,8,-3,-1,0,0,8,-3,-7,0,0,8,-3,-6,0,0,8,-3,-8,0,0,8,-3,-10,0,0,8,-3,-9,0,0,8,-2,-12,0,0,8,-2,-5,0,0,8,-2,-6,0,0,8,-2,-2,0,0,8,-2,-1,0,0,8,-2,-11,0,0,8,-2,-10,0,0,8,-2,-7,0,0,8,-1,-12,0,0,8,-1,-5,0,0,8,-1,-6,0,0,8,-1,-2,0,0,8,-1,-1,0,0,8,-1,-11,0,0,8,-1,-10,0,0,8,-1,-7,0,0,8,0,-12,0,0,8,0,-5,0,0,8,0,-4,0,0,8,0,-3,0,0,8,0,-2,0,0,8,0,-1,0,0,8,0,0,0,0,8,0,1,0,0,8,0,2,0,0,8,0,3,0,0,8,0,-6,0,0,8,0,-11,0,0,8,0,-7,0,0,8,1,-11,0,0,8,1,7,0,0,8,1,6,0,0,8,1,-5,0,0,8,1,-4,0,0,8,1,-3,0,0,8,1,-2,0,0,8,1,-1,0,0,8,1,0,0,0,8,1,1,0,0,8,1,2,0,0,8,1,3,0,0,8,1,-6,0,0,8,1,-7,0,0,8,1,-12,0,0,8,2,-11,0,0,8,2,7,0,0,8,2,6,0,0,8,2,-5,0,0,8,2,-4,0,0,8,2,-3,0,0,8,2,-2,0,0,8,2,-1,0,0,8,2,0,0,0,8,2,1,0,0,8,2,2,0,0,8,2,3,0,0,8,2,-6,0,0,8,2,-7,0,0,8,2,-12,0,0,8,2,-8,0,0,8,3,-5,0,0,8,3,-11,0,0,8,3,5,0,0,8,3,4,0,0,8,3,7,0,0,8,3,6,0,0,8,3,-1,0,0,8,3,0,0,0,8,3,1,0,0,8,3,2,0,0,8,3,3,0,0,8,3,-8,0,0,8,3,-7,0,0,8,3,-6,0,0,8,3,-12,0,0,8,4,-12,0,0,8,4,-11,0,0,8,4,4,0,0,8,4,5,0,0,8,4,7,0,0,8,4,6,0,0,8,4,-1,0,0,8,4,0,0,0,8,4,1,0,0,8,4,2,0,0,8,4,3,0,0,8,4,-7,0,0,8,4,-8,0,0,8,4,-10,0,0,8,4,-9,0,0,8,5,-12,0,0,8,5,-11,0,0,8,5,7,0,0,8,5,6,0,0,8,5,-1,0,0,8,5,0,0,0,8,5,1,0,0,8,5,2,0,0,8,5,3,0,0,8,5,-8,0,0,8,5,-7,0,0,8,5,-9,0,0,8,5,-10,0,0,8,6,-11,0,0,8,6,7,0,0,8,6,6,0,0,8,6,-7,0,0,8,6,-4,0,0,8,6,-3,0,0,8,6,-2,0,0,8,6,-1,0,0,8,6,0,0,0,8,6,1,0,0,8,6,2,0,0,8,6,3,0,0,8,6,-8,0,0,8,6,-9,0,0,8,6,-10,0,0,8,7,-7,0,0,8,7,-8,0,0,8,7,-9,0,0,8,7,-10,0,0,8,7,-11,0,0,8,7,7,0,0,8,7,6,0,0,8,7,-4,0,0,8,7,-3,0,0,8,7,-2,0,0,8,7,-1,0,0,8,7,0,0,0,8,7,1,0,0,8,7,2,0,0,8,7,3,0,0,8],"Middle":[-5,-12,0,2,7,-4,-12,0,2,7,-3,-12,0,3,7,-3,-3,0,1,7,-2,-13,0,2,7,-2,-8,0,1,7,-2,-3,0,2,7,-1,-13,0,2,7,-1,-8,0,2,7,-1,-3,0,3,7,0,-13,0,2,7,0,-8,0,2,7,1,-13,0,2,7,1,-8,0,3,7,1,5,0,2,7,2,-13,0,2,7,2,-9,0,2,7,2,5,0,3,7,3,-13,0,2,7,3,-9,0,3,7,3,-2,0,1,7,4,-13,0,2,7,4,-2,0,2,7,5,-13,0,2,7,5,-2,0,3,7,5,5,0,1,7,6,-12,0,1,7,6,-5,0,2,7,6,5,0,2,7,7,-12,0,2,7,7,-5,0,2,7,7,5,0,2,7],"Top":[-6,-12,0,3,4,-6,-11,0,3,3,-6,-10,0,3,3,-6,-9,0,3,3,-6,-8,0,3,3,-6,-7,0,3,3,-6,-6,0,3,3,-6,-5,0,3,3,-6,-4,0,3,3,-6,-3,0,3,3,-6,-2,0,3,3,-6,-1,0,3,3,-6,0,0,3,3,-6,1,0,3,3,-6,2,0,3,3,-6,3,0,3,3,-6,4,0,3,3,-6,5,0,11,2,-5,5,0,2,2,-4,5,0,2,2,-3,-13,0,3,4,-3,-4,0,1,2,-3,0,0,1,2,-3,1,0,1,3,-3,2,0,1,3,-3,3,0,1,3,-3,4,0,1,3,-3,5,0,13,2,-2,-9,0,1,2,-2,-4,0,2,2,-2,0,0,2,2,-1,-9,0,2,2,-1,-4,0,3,2,-1,0,0,3,2,-1,1,0,3,3,-1,2,0,3,3,-1,3,0,3,3,-1,4,0,11,2,0,-10,0,1,2,0,-9,0,13,2,0,4,0,2,2,0,5,0,3,4,0,6,0,3,3,0,7,0,3,3,0,8,0,11,2,1,-10,0,2,2,1,-9,0,3,4,1,4,0,2,2,1,8,0,2,2,2,-10,0,2,2,2,4,0,3,2,2,8,0,2,2,3,-10,0,3,2,3,-4,0,1,2,3,-3,0,1,3,3,8,0,2,2,4,-6,0,1,2,4,-5,0,1,3,4,-4,0,13,2,4,8,0,2,2,5,-6,0,2,2,5,-5,0,3,4,5,-4,0,3,3,5,-3,0,3,3,5,4,0,1,2,5,8,0,2,2,6,-13,0,1,4,6,-6,0,2,2,6,4,0,2,2,6,8,0,2,2,7,-6,0,2,2,7,4,0,2,2,7,8,0,2,2,8,-12,0,1,4,8,-11,0,1,3,8,-10,0,1,3,8,-9,0,1,3,8,-8,0,1,3,8,-7,0,1,3,8,-6,0,13,2,8,-5,0,1,4,8,-4,0,1,3,8,-3,0,1,3,8,-2,0,1,3,8,-1,0,1,3,8,0,0,1,3,8,1,0,1,3,8,2,0,1,3,8,3,0,1,3,8,4,0,13,2,8,5,0,1,4,8,6,0,1,3,8,7,0,1,3,8,8,0,13,2]} \ No newline at end of file +{"NavigationList":[{"Type":0,"Points":[-24,-184,88,-184,88,-168,120,-168,120,-96,56,-96,56,-64,40,-64,40,-8,104,-8,104,-56,120,-56,120,64,72,64,72,104,120,104,120,128,24,128,24,104,56,104,56,64,8,64,8,0,-56,0,-56,80,-72,80,-72,-168,-24,-168]},{"Type":1,"Points":[-8,-160,72,-160,72,-120,40,-120,40,-104,-40,-104,-40,-144,-8,-144]},{"Type":1,"Points":[-56,-64,8,-64,8,-24,-56,-24]}],"Floor":[7,3,0,0,8,7,2,0,0,8,7,1,0,0,8,7,0,0,0,8,7,-1,0,0,8,7,-2,0,0,8,7,-3,0,0,8,7,-4,0,0,8,7,6,0,0,8,7,7,0,0,8,7,-11,0,0,8,7,-10,0,0,8,7,-9,0,0,8,7,-8,0,0,8,7,-7,0,0,8,6,-10,0,0,8,6,-9,0,0,8,6,-8,0,0,8,6,3,0,0,8,6,2,0,0,8,6,1,0,0,8,6,0,0,0,8,6,-1,0,0,8,6,-2,0,0,8,6,-3,0,0,8,6,-4,0,0,8,6,-7,0,0,8,6,6,0,0,8,6,7,0,0,8,6,-11,0,0,8,5,-10,0,0,8,5,-9,0,0,8,5,-7,0,0,8,5,-8,0,0,8,5,3,0,0,8,5,2,0,0,8,5,1,0,0,8,5,0,0,0,8,5,-1,0,0,8,5,6,0,0,8,5,7,0,0,8,5,-11,0,0,8,5,-12,0,0,8,4,-9,0,0,8,4,-10,0,0,8,4,-8,0,0,8,4,-7,0,0,8,4,3,0,0,8,4,2,0,0,8,4,1,0,0,8,4,0,0,0,8,4,-1,0,0,8,4,6,0,0,8,4,7,0,0,8,4,5,0,0,8,4,4,0,0,8,4,-11,0,0,8,4,-12,0,0,8,3,-12,0,0,8,3,-6,0,0,8,3,-7,0,0,8,3,-8,0,0,8,3,3,0,0,8,3,2,0,0,8,3,1,0,0,8,3,0,0,0,8,3,-1,0,0,8,3,6,0,0,8,3,7,0,0,8,3,4,0,0,8,3,5,0,0,8,3,-11,0,0,8,3,-5,0,0,8,2,-8,0,0,8,2,-12,0,0,8,2,-7,0,0,8,2,-6,0,0,8,2,3,0,0,8,2,2,0,0,8,2,1,0,0,8,2,0,0,0,8,2,-1,0,0,8,2,-2,0,0,8,2,-3,0,0,8,2,-4,0,0,8,2,-5,0,0,8,2,6,0,0,8,2,7,0,0,8,2,-11,0,0,8,1,-12,0,0,8,1,-7,0,0,8,1,-6,0,0,8,1,3,0,0,8,1,2,0,0,8,1,1,0,0,8,1,0,0,0,8,1,-1,0,0,8,1,-2,0,0,8,1,-3,0,0,8,1,-4,0,0,8,1,-5,0,0,8,1,6,0,0,8,1,7,0,0,8,1,-11,0,0,8,0,-7,0,0,8,0,-11,0,0,8,0,-6,0,0,8,0,3,0,0,8,0,2,0,0,8,0,1,0,0,8,0,0,0,0,8,0,-1,0,0,8,0,-2,0,0,8,0,-3,0,0,8,0,-4,0,0,8,0,-5,0,0,8,0,-12,0,0,8,-1,-7,0,0,8,-1,-10,0,0,8,-1,-11,0,0,8,-1,-1,0,0,8,-1,-2,0,0,8,-1,-6,0,0,8,-1,-5,0,0,8,-1,-12,0,0,8,-2,-7,0,0,8,-2,-10,0,0,8,-2,-11,0,0,8,-2,-1,0,0,8,-2,-2,0,0,8,-2,-6,0,0,8,-2,-5,0,0,8,-2,-12,0,0,8,-3,-9,0,0,8,-3,-10,0,0,8,-3,-8,0,0,8,-3,-6,0,0,8,-3,-7,0,0,8,-3,-1,0,0,8,-3,-2,0,0,8,-3,-11,0,0,8,-3,-5,0,0,8,-4,4,0,0,8,-4,-9,0,0,8,-4,-10,0,0,8,-4,-8,0,0,8,-4,-7,0,0,8,-4,-6,0,0,8,-4,3,0,0,8,-4,2,0,0,8,-4,1,0,0,8,-4,0,0,0,8,-4,-1,0,0,8,-4,-2,0,0,8,-4,-3,0,0,8,-4,-4,0,0,8,-4,-5,0,0,8,-4,-11,0,0,8,-5,-10,0,0,8,-5,-9,0,0,8,-5,-8,0,0,8,-5,-7,0,0,8,-5,-6,0,0,8,-5,3,0,0,8,-5,2,0,0,8,-5,1,0,0,8,-5,0,0,0,8,-5,-1,0,0,8,-5,-2,0,0,8,-5,-3,0,0,8,-5,-4,0,0,8,-5,-5,0,0,8,-5,-11,0,0,8,-5,4,0,0,8],"Middle":[-5,-12,0,2,7,-4,-12,0,2,7,-3,-12,0,3,7,-3,-3,0,1,7,-2,-13,0,2,7,-2,-8,0,1,7,-2,-3,0,2,7,-1,-13,0,2,7,-1,-8,0,2,7,-1,-3,0,3,7,0,-13,0,2,7,0,-8,0,2,7,1,-13,0,2,7,1,-8,0,3,7,1,5,0,2,7,2,-13,0,2,7,2,-9,0,2,7,2,5,0,3,7,3,-13,0,2,7,3,-9,0,3,7,3,-2,0,1,7,4,-13,0,2,7,4,-2,0,2,7,5,-13,0,2,7,5,-2,0,3,7,5,5,0,1,7,6,-12,0,1,7,6,-5,0,2,7,6,5,0,2,7,7,-12,0,2,7,7,-5,0,2,7,7,5,0,2,7],"Top":[-6,-12,0,3,4,-6,-11,0,3,3,-6,-10,0,3,3,-6,-9,0,3,3,-6,-8,0,3,3,-6,-7,0,3,3,-6,-6,0,3,3,-6,-5,0,3,3,-6,-4,0,3,3,-6,-3,0,3,3,-6,-2,0,3,3,-6,-1,0,3,3,-6,0,0,3,3,-6,1,0,3,3,-6,2,0,3,3,-6,3,0,3,3,-6,4,0,3,3,-6,5,0,11,2,-5,5,0,2,2,-4,5,0,2,2,-3,-13,0,3,4,-3,-4,0,1,2,-3,0,0,1,2,-3,1,0,1,3,-3,2,0,1,3,-3,3,0,1,3,-3,4,0,1,3,-3,5,0,13,2,-2,-9,0,1,2,-2,-4,0,2,2,-2,0,0,2,2,-1,-9,0,2,2,-1,-4,0,3,2,-1,0,0,3,2,-1,1,0,3,3,-1,2,0,3,3,-1,3,0,3,3,-1,4,0,11,2,0,-10,0,1,2,0,-9,0,13,2,0,4,0,2,2,0,5,0,3,4,0,6,0,3,3,0,7,0,3,3,0,8,0,11,2,1,-10,0,2,2,1,-9,0,3,4,1,4,0,2,2,1,8,0,2,2,2,-10,0,2,2,2,4,0,3,2,2,8,0,2,2,3,-10,0,3,2,3,-4,0,1,2,3,-3,0,1,3,3,8,0,2,2,4,-6,0,1,2,4,-5,0,1,3,4,-4,0,13,2,4,8,0,2,2,5,-6,0,2,2,5,-5,0,3,4,5,-4,0,3,3,5,-3,0,3,3,5,4,0,1,2,5,8,0,2,2,6,-13,0,1,4,6,-6,0,2,2,6,4,0,2,2,6,8,0,2,2,7,-6,0,2,2,7,4,0,2,2,7,8,0,2,2,8,-12,0,1,4,8,-11,0,1,3,8,-10,0,1,3,8,-9,0,1,3,8,-8,0,1,3,8,-7,0,1,3,8,-6,0,13,2,8,-5,0,1,4,8,-4,0,1,3,8,-3,0,1,3,8,-2,0,1,3,8,-1,0,1,3,8,0,0,1,3,8,1,0,1,3,8,2,0,1,3,8,3,0,1,3,8,4,0,13,2,8,5,0,1,4,8,6,0,1,3,8,7,0,1,3,8,8,0,13,2]} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room2/Room2_preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room2/Room2_preinstall.json index 70a6dd1..e180318 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room2/Room2_preinstall.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room2/Room2_preinstall.json @@ -1 +1 @@ -[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[],[{"Position":{"X":39,"Y":-36},"Size":{"X":86,"Y":90},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":"weapon0005","CurrAmmon":"10","ResidueAmmo":"10"}},{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":"weapon0003","CurrAmmon":"12","ResidueAmmo":"12"}}]},{"Position":{"X":-58,"Y":62},"Size":{"X":103,"Y":73},"SpecialMarkType":0,"DelayTime":3,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":"weapon0006","CurrAmmon":"20","ResidueAmmo":"20"}}]}]]}] \ No newline at end of file +[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[],[{"Position":{"X":63,"Y":-31},"Size":{"X":86,"Y":90},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":"weapon0005","CurrAmmon":"10","ResidueAmmo":"10"},"Altitude":0,"VerticalSpeed":0},{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":"weapon0003","CurrAmmon":"12","ResidueAmmo":"12"},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":-66,"Y":57},"Size":{"X":135,"Y":78},"SpecialMarkType":0,"DelayTime":3,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Weapon":"weapon0006","CurrAmmon":"20","ResidueAmmo":"20"},"Altitude":0,"VerticalSpeed":0}]}]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room2/Room2_tileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room2/Room2_tileInfo.json index a7c4dec..3b1a167 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room2/Room2_tileInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room2/Room2_tileInfo.json @@ -1 +1 @@ -{"NavigationList":[{"Type":0,"Points":[-168,-104,136,-104,136,128,-168,128]},{"Type":1,"Points":[-120,-48,-40,-48,-40,8,-120,8]},{"Type":1,"Points":[8,48,104,48,104,104,8,104]}],"Floor":[8,7,0,0,8,8,6,0,0,8,8,5,0,0,8,8,4,0,0,8,8,3,0,0,8,8,2,0,0,8,8,1,0,0,8,8,0,0,0,8,8,-1,0,0,8,8,-2,0,0,8,8,-3,0,0,8,8,-4,0,0,8,8,-5,0,0,8,8,-6,0,0,8,8,-7,0,0,8,7,7,0,0,8,7,6,0,0,8,7,5,0,0,8,7,4,0,0,8,7,3,0,0,8,7,2,0,0,8,7,1,0,0,8,7,0,0,0,8,7,-1,0,0,8,7,-2,0,0,8,7,-3,0,0,8,7,-4,0,0,8,7,-5,0,0,8,7,-6,0,0,8,7,-7,0,0,8,6,7,0,0,8,6,6,0,0,8,6,5,0,0,8,6,4,0,0,8,6,3,0,0,8,6,2,0,0,8,6,1,0,0,8,6,0,0,0,8,6,-1,0,0,8,6,-2,0,0,8,6,-3,0,0,8,6,-4,0,0,8,6,-5,0,0,8,6,-6,0,0,8,6,-7,0,0,8,5,7,0,0,8,5,6,0,0,8,5,2,0,0,8,5,1,0,0,8,5,0,0,0,8,5,-1,0,0,8,5,-2,0,0,8,5,-3,0,0,8,5,-4,0,0,8,5,-5,0,0,8,5,-6,0,0,8,5,-7,0,0,8,4,7,0,0,8,4,6,0,0,8,4,2,0,0,8,4,1,0,0,8,4,0,0,0,8,4,-1,0,0,8,4,-2,0,0,8,4,-3,0,0,8,4,-4,0,0,8,4,-5,0,0,8,4,-6,0,0,8,4,-7,0,0,8,3,7,0,0,8,3,6,0,0,8,3,2,0,0,8,3,1,0,0,8,3,0,0,0,8,3,-1,0,0,8,3,-2,0,0,8,3,-3,0,0,8,3,-4,0,0,8,3,-5,0,0,8,3,-6,0,0,8,3,-7,0,0,8,2,7,0,0,8,2,6,0,0,8,2,2,0,0,8,2,1,0,0,8,2,0,0,0,8,2,-1,0,0,8,2,-2,0,0,8,2,-3,0,0,8,2,-4,0,0,8,2,-5,0,0,8,2,-6,0,0,8,2,-7,0,0,8,1,7,0,0,8,1,6,0,0,8,1,2,0,0,8,1,1,0,0,8,1,0,0,0,8,1,-1,0,0,8,1,-2,0,0,8,1,-3,0,0,8,1,-4,0,0,8,1,-5,0,0,8,1,-6,0,0,8,1,-7,0,0,8,0,5,0,0,8,0,4,0,0,8,0,3,0,0,8,0,7,0,0,8,0,6,0,0,8,0,2,0,0,8,0,1,0,0,8,0,0,0,0,8,0,-1,0,0,8,0,-2,0,0,8,0,-3,0,0,8,0,-4,0,0,8,0,-5,0,0,8,0,-6,0,0,8,0,-7,0,0,8,-1,7,0,0,8,-1,6,0,0,8,-1,5,0,0,8,-1,4,0,0,8,-1,3,0,0,8,-1,2,0,0,8,-1,1,0,0,8,-1,0,0,0,8,-1,-1,0,0,8,-1,-2,0,0,8,-1,-3,0,0,8,-1,-4,0,0,8,-1,-5,0,0,8,-1,-6,0,0,8,-1,-7,0,0,8,-2,7,0,0,8,-2,6,0,0,8,-2,5,0,0,8,-2,4,0,0,8,-2,3,0,0,8,-2,2,0,0,8,-2,1,0,0,8,-2,0,0,0,8,-2,-1,0,0,8,-2,-2,0,0,8,-2,-3,0,0,8,-2,-4,0,0,8,-2,-5,0,0,8,-2,-6,0,0,8,-2,-7,0,0,8,-3,-1,0,0,8,-3,-2,0,0,8,-3,-3,0,0,8,-3,7,0,0,8,-3,6,0,0,8,-3,5,0,0,8,-3,4,0,0,8,-3,3,0,0,8,-3,2,0,0,8,-3,1,0,0,8,-3,0,0,0,8,-3,-4,0,0,8,-3,-5,0,0,8,-3,-6,0,0,8,-3,-7,0,0,8,-4,7,0,0,8,-4,6,0,0,8,-4,5,0,0,8,-4,4,0,0,8,-4,3,0,0,8,-4,2,0,0,8,-4,1,0,0,8,-4,0,0,0,8,-4,-4,0,0,8,-4,-5,0,0,8,-4,-6,0,0,8,-4,-7,0,0,8,-5,7,0,0,8,-5,6,0,0,8,-5,5,0,0,8,-5,4,0,0,8,-5,3,0,0,8,-5,2,0,0,8,-5,1,0,0,8,-5,0,0,0,8,-5,-4,0,0,8,-5,-5,0,0,8,-5,-6,0,0,8,-5,-7,0,0,8,-6,7,0,0,8,-6,6,0,0,8,-6,5,0,0,8,-6,4,0,0,8,-6,3,0,0,8,-6,2,0,0,8,-6,1,0,0,8,-6,0,0,0,8,-6,-4,0,0,8,-6,-5,0,0,8,-6,-6,0,0,8,-6,-7,0,0,8,-7,7,0,0,8,-7,6,0,0,8,-7,5,0,0,8,-7,4,0,0,8,-7,3,0,0,8,-7,2,0,0,8,-7,1,0,0,8,-7,0,0,0,8,-7,-4,0,0,8,-7,-5,0,0,8,-7,-6,0,0,8,-7,-7,0,0,8,-8,7,0,0,8,-8,6,0,0,8,-8,5,0,0,8,-8,4,0,0,8,-8,3,0,0,8,-8,2,0,0,8,-8,1,0,0,8,-8,0,0,0,8,-8,-1,0,0,8,-8,-2,0,0,8,-8,-3,0,0,8,-8,-4,0,0,8,-8,-5,0,0,8,-8,-6,0,0,8,-8,-7,0,0,8,-9,7,0,0,8,-9,6,0,0,8,-9,5,0,0,8,-9,4,0,0,8,-9,3,0,0,8,-9,2,0,0,8,-9,1,0,0,8,-9,0,0,0,8,-9,-1,0,0,8,-9,-2,0,0,8,-9,-3,0,0,8,-9,-4,0,0,8,-9,-5,0,0,8,-9,-6,0,0,8,-9,-7,0,0,8,-10,7,0,0,8,-10,6,0,0,8,-10,5,0,0,8,-10,4,0,0,8,-10,3,0,0,8,-10,2,0,0,8,-10,1,0,0,8,-10,0,0,0,8,-10,-1,0,0,8,-10,-2,0,0,8,-10,-3,0,0,8,-10,-4,0,0,8,-10,-5,0,0,8,-10,-6,0,0,8,-10,-7,0,0,8,-11,7,0,0,8,-11,6,0,0,8,-11,5,0,0,8,-11,4,0,0,8,-11,3,0,0,8,-11,2,0,0,8,-11,1,0,0,8,-11,0,0,0,8,-11,-1,0,0,8,-11,-2,0,0,8,-11,-3,0,0,8,-11,-4,0,0,8,-11,-5,0,0,8,-11,-6,0,0,8,-11,-7,0,0,8],"Middle":[-11,-8,0,2,7,-10,-8,0,2,7,-9,-8,0,2,7,-8,-8,0,2,7,-7,-8,0,2,7,-7,-1,0,1,7,-6,-8,0,2,7,-6,-1,0,2,7,-5,-8,0,2,7,-5,-1,0,2,7,-4,-8,0,2,7,-4,-1,0,3,7,-3,-8,0,2,7,-2,-8,0,2,7,-1,-8,0,2,7,0,-8,0,2,7,1,-8,0,2,7,1,5,0,1,7,2,-8,0,2,7,2,5,0,2,7,3,-8,0,2,7,3,5,0,2,7,4,-8,0,2,7,4,5,0,2,7,5,-8,0,2,7,5,5,0,3,7,6,-8,0,2,7,7,-8,0,2,7,8,-8,0,2,7],"Top":[-12,-8,0,3,4,-12,-7,0,3,3,-12,-6,0,3,3,-12,-5,0,3,3,-12,-4,0,3,3,-12,-3,0,3,3,-12,-2,0,3,3,-12,-1,0,3,3,-12,0,0,3,3,-12,1,0,3,3,-12,2,0,3,3,-12,3,0,3,3,-12,4,0,3,3,-12,5,0,3,3,-12,6,0,3,3,-12,7,0,3,3,-12,8,0,11,2,-11,8,0,2,2,-10,8,0,2,2,-9,8,0,2,2,-8,8,0,2,2,-7,-3,0,1,2,-7,-2,0,1,3,-7,8,0,2,2,-6,-3,0,2,2,-6,8,0,2,2,-5,-3,0,2,2,-5,8,0,2,2,-4,-3,0,3,2,-4,-2,0,3,3,-4,8,0,2,2,-3,8,0,2,2,-2,8,0,2,2,-1,8,0,2,2,0,8,0,2,2,1,3,0,1,2,1,4,0,1,3,1,8,0,2,2,2,3,0,2,2,2,8,0,2,2,3,3,0,2,2,3,8,0,2,2,4,3,0,2,2,4,8,0,2,2,5,3,0,3,2,5,4,0,3,3,5,8,0,2,2,6,8,0,2,2,7,8,0,2,2,8,8,0,2,2,9,-8,0,1,4,9,-7,0,1,3,9,-6,0,1,3,9,-5,0,1,3,9,-4,0,1,3,9,-3,0,1,3,9,-2,0,1,3,9,-1,0,1,3,9,0,0,1,3,9,1,0,1,3,9,2,0,1,3,9,3,0,1,3,9,4,0,1,3,9,5,0,1,3,9,6,0,1,3,9,7,0,1,3,9,8,0,13,2]} \ No newline at end of file +{"NavigationList":[{"Type":0,"Points":[-168,-104,136,-104,136,128,-168,128]},{"Type":1,"Points":[-120,-48,-40,-48,-40,8,-120,8]},{"Type":1,"Points":[8,48,104,48,104,104,8,104]}],"Floor":[-11,-7,0,0,8,-11,-6,0,0,8,-11,-5,0,0,8,-11,-4,0,0,8,-11,-3,0,0,8,-11,-2,0,0,8,-11,-1,0,0,8,-11,0,0,0,8,-11,1,0,0,8,-11,2,0,0,8,-11,3,0,0,8,-11,4,0,0,8,-11,5,0,0,8,-11,6,0,0,8,-11,7,0,0,8,-10,-7,0,0,8,-10,-6,0,0,8,-10,-5,0,0,8,-10,-4,0,0,8,-10,-3,0,0,8,-10,-2,0,0,8,-10,-1,0,0,8,-10,0,0,0,8,-10,1,0,0,8,-10,2,0,0,8,-10,3,0,0,8,-10,4,0,0,8,-10,5,0,0,8,-10,6,0,0,8,-10,7,0,0,8,-9,-7,0,0,8,-9,-6,0,0,8,-9,-5,0,0,8,-9,-4,0,0,8,-9,-3,0,0,8,-9,-2,0,0,8,-9,-1,0,0,8,-9,0,0,0,8,-9,1,0,0,8,-9,2,0,0,8,-9,3,0,0,8,-9,4,0,0,8,-9,5,0,0,8,-9,6,0,0,8,-9,7,0,0,8,-8,-7,0,0,8,-8,-6,0,0,8,-8,-5,0,0,8,-8,-4,0,0,8,-8,-3,0,0,8,-8,-2,0,0,8,-8,-1,0,0,8,-8,0,0,0,8,-8,1,0,0,8,-8,2,0,0,8,-8,3,0,0,8,-8,4,0,0,8,-8,5,0,0,8,-8,6,0,0,8,-8,7,0,0,8,-7,-7,0,0,8,-7,-6,0,0,8,-7,-5,0,0,8,-7,-4,0,0,8,-7,0,0,0,8,-7,1,0,0,8,-7,2,0,0,8,-7,3,0,0,8,-7,4,0,0,8,-7,5,0,0,8,-7,6,0,0,8,-7,7,0,0,8,-6,-7,0,0,8,-6,-6,0,0,8,-6,-5,0,0,8,-6,-4,0,0,8,-6,0,0,0,8,-6,1,0,0,8,-6,2,0,0,8,-6,3,0,0,8,-6,4,0,0,8,-6,5,0,0,8,-6,6,0,0,8,-6,7,0,0,8,-5,-7,0,0,8,-5,-6,0,0,8,-5,-5,0,0,8,-5,-4,0,0,8,-5,0,0,0,8,-5,1,0,0,8,-5,2,0,0,8,-5,3,0,0,8,-5,4,0,0,8,-5,5,0,0,8,-5,6,0,0,8,-5,7,0,0,8,-4,-7,0,0,8,-4,-6,0,0,8,-4,-5,0,0,8,-4,-4,0,0,8,-4,0,0,0,8,-4,1,0,0,8,-4,2,0,0,8,-4,3,0,0,8,-4,4,0,0,8,-4,5,0,0,8,-4,6,0,0,8,-4,7,0,0,8,-3,-7,0,0,8,-3,-6,0,0,8,-3,-5,0,0,8,-3,-4,0,0,8,-3,0,0,0,8,-3,1,0,0,8,-3,2,0,0,8,-3,3,0,0,8,-3,4,0,0,8,-3,5,0,0,8,-3,6,0,0,8,-3,7,0,0,8,-3,-3,0,0,8,-3,-2,0,0,8,-3,-1,0,0,8,-2,-7,0,0,8,-2,-6,0,0,8,-2,-5,0,0,8,-2,-4,0,0,8,-2,-3,0,0,8,-2,-2,0,0,8,-2,-1,0,0,8,-2,0,0,0,8,-2,1,0,0,8,-2,2,0,0,8,-2,3,0,0,8,-2,4,0,0,8,-2,5,0,0,8,-2,6,0,0,8,-2,7,0,0,8,-1,-7,0,0,8,-1,-6,0,0,8,-1,-5,0,0,8,-1,-4,0,0,8,-1,-3,0,0,8,-1,-2,0,0,8,-1,-1,0,0,8,-1,0,0,0,8,-1,1,0,0,8,-1,2,0,0,8,-1,3,0,0,8,-1,4,0,0,8,-1,5,0,0,8,-1,6,0,0,8,-1,7,0,0,8,0,-7,0,0,8,0,-6,0,0,8,0,-5,0,0,8,0,-4,0,0,8,0,-3,0,0,8,0,-2,0,0,8,0,-1,0,0,8,0,0,0,0,8,0,1,0,0,8,0,2,0,0,8,0,6,0,0,8,0,7,0,0,8,0,3,0,0,8,0,4,0,0,8,0,5,0,0,8,1,-7,0,0,8,1,-6,0,0,8,1,-5,0,0,8,1,-4,0,0,8,1,-3,0,0,8,1,-2,0,0,8,1,-1,0,0,8,1,0,0,0,8,1,1,0,0,8,1,2,0,0,8,1,6,0,0,8,1,7,0,0,8,2,-7,0,0,8,2,-6,0,0,8,2,-5,0,0,8,2,-4,0,0,8,2,-3,0,0,8,2,-2,0,0,8,2,-1,0,0,8,2,0,0,0,8,2,1,0,0,8,2,2,0,0,8,2,6,0,0,8,2,7,0,0,8,3,-7,0,0,8,3,-6,0,0,8,3,-5,0,0,8,3,-4,0,0,8,3,-3,0,0,8,3,-2,0,0,8,3,-1,0,0,8,3,0,0,0,8,3,1,0,0,8,3,2,0,0,8,3,6,0,0,8,3,7,0,0,8,4,-7,0,0,8,4,-6,0,0,8,4,-5,0,0,8,4,-4,0,0,8,4,-3,0,0,8,4,-2,0,0,8,4,-1,0,0,8,4,0,0,0,8,4,1,0,0,8,4,2,0,0,8,4,6,0,0,8,4,7,0,0,8,5,-7,0,0,8,5,-6,0,0,8,5,-5,0,0,8,5,-4,0,0,8,5,-3,0,0,8,5,-2,0,0,8,5,-1,0,0,8,5,0,0,0,8,5,1,0,0,8,5,2,0,0,8,5,6,0,0,8,5,7,0,0,8,6,-7,0,0,8,6,-6,0,0,8,6,-5,0,0,8,6,-4,0,0,8,6,-3,0,0,8,6,-2,0,0,8,6,-1,0,0,8,6,0,0,0,8,6,1,0,0,8,6,2,0,0,8,6,3,0,0,8,6,4,0,0,8,6,5,0,0,8,6,6,0,0,8,6,7,0,0,8,7,-7,0,0,8,7,-6,0,0,8,7,-5,0,0,8,7,-4,0,0,8,7,-3,0,0,8,7,-2,0,0,8,7,-1,0,0,8,7,0,0,0,8,7,1,0,0,8,7,2,0,0,8,7,3,0,0,8,7,4,0,0,8,7,5,0,0,8,7,6,0,0,8,7,7,0,0,8,8,-7,0,0,8,8,-6,0,0,8,8,-5,0,0,8,8,-4,0,0,8,8,-3,0,0,8,8,-2,0,0,8,8,-1,0,0,8,8,0,0,0,8,8,1,0,0,8,8,2,0,0,8,8,3,0,0,8,8,4,0,0,8,8,5,0,0,8,8,6,0,0,8,8,7,0,0,8],"Middle":[-11,-8,0,2,7,-10,-8,0,2,7,-9,-8,0,2,7,-8,-8,0,2,7,-7,-8,0,2,7,-7,-1,0,1,7,-6,-8,0,2,7,-6,-1,0,2,7,-5,-8,0,2,7,-5,-1,0,2,7,-4,-8,0,2,7,-4,-1,0,3,7,-3,-8,0,2,7,-2,-8,0,2,7,-1,-8,0,2,7,0,-8,0,2,7,1,-8,0,2,7,1,5,0,1,7,2,-8,0,2,7,2,5,0,2,7,3,-8,0,2,7,3,5,0,2,7,4,-8,0,2,7,4,5,0,2,7,5,-8,0,2,7,5,5,0,3,7,6,-8,0,2,7,7,-8,0,2,7,8,-8,0,2,7],"Top":[-12,-8,0,3,4,-12,-7,0,3,3,-12,-6,0,3,3,-12,-5,0,3,3,-12,-4,0,3,3,-12,-3,0,3,3,-12,-2,0,3,3,-12,-1,0,3,3,-12,0,0,3,3,-12,1,0,3,3,-12,2,0,3,3,-12,3,0,3,3,-12,4,0,3,3,-12,5,0,3,3,-12,6,0,3,3,-12,7,0,3,3,-12,8,0,11,2,-11,8,0,2,2,-10,8,0,2,2,-9,8,0,2,2,-8,8,0,2,2,-7,-3,0,1,2,-7,-2,0,1,3,-7,8,0,2,2,-6,-3,0,2,2,-6,8,0,2,2,-5,-3,0,2,2,-5,8,0,2,2,-4,-3,0,3,2,-4,-2,0,3,3,-4,8,0,2,2,-3,8,0,2,2,-2,8,0,2,2,-1,8,0,2,2,0,8,0,2,2,1,3,0,1,2,1,4,0,1,3,1,8,0,2,2,2,3,0,2,2,2,8,0,2,2,3,3,0,2,2,3,8,0,2,2,4,3,0,2,2,4,8,0,2,2,5,3,0,3,2,5,4,0,3,3,5,8,0,2,2,6,8,0,2,2,7,8,0,2,2,8,8,0,2,2,9,-8,0,1,4,9,-7,0,1,3,9,-6,0,1,3,9,-5,0,1,3,9,-4,0,1,3,9,-3,0,1,3,9,-2,0,1,3,9,-1,0,1,3,9,0,0,1,3,9,1,0,1,3,9,2,0,1,3,9,3,0,1,3,9,4,0,1,3,9,5,0,1,3,9,6,0,1,3,9,7,0,1,3,9,8,0,13,2]} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_preinstall.json index 0637a08..0bd614d 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_preinstall.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_preinstall.json @@ -1 +1 @@ -[] \ No newline at end of file +[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":-38,"Y":-127},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Face":"0","Weapon":"weapon0001","CurrAmmon":"30","ResidueAmmo":"30"},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":82,"Y":-117},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Face":"0","Weapon":"weapon0003","CurrAmmon":"12","ResidueAmmo":"12"},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":-10,"Y":66},"Size":{"X":124,"Y":30},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Face":"0","Weapon":"weapon0007","CurrAmmon":"60","ResidueAmmo":"60"},"Altitude":0,"VerticalSpeed":0}]}]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_roomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_roomInfo.json index 00f5b5f..8348749 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_roomInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_roomInfo.json @@ -1 +1 @@ -{"Position":{"X":0,"Y":0},"Size":{"X":0,"Y":0},"DoorAreaInfos":[],"GroupName":"TestGroup1","RoomType":0,"RoomName":"Room3","Weight":100,"Remark":""} \ No newline at end of file +{"Position":{"X":-10,"Y":-13},"Size":{"X":23,"Y":24},"DoorAreaInfos":[{"Direction":3,"Start":0,"End":336},{"Direction":0,"Start":0,"End":128},{"Direction":0,"Start":208,"End":288},{"Direction":2,"Start":0,"End":112},{"Direction":1,"Start":0,"End":352}],"GroupName":"TestGroup1","RoomType":0,"RoomName":"Room3","Weight":100,"Remark":""} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_tileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_tileInfo.json index 6949537..e5e7a3e 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_tileInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Room3/Room3_tileInfo.json @@ -1 +1 @@ -{"NavigationList":[],"Floor":[],"Middle":[],"Top":[]} \ No newline at end of file +{"NavigationList":[{"Type":0,"Points":[-136,-184,184,-184,184,-64,-40,-64,-40,24,184,24,184,96,-40,96,-40,160,-136,160]}],"Floor":[5,-12,0,0,8,5,-11,0,0,8,5,-10,0,0,8,5,-9,0,0,8,5,-8,0,0,8,5,-7,0,0,8,5,-6,0,0,8,5,-5,0,0,8,5,1,0,0,8,5,2,0,0,8,5,3,0,0,8,5,4,0,0,8,5,5,0,0,8,4,-12,0,0,8,4,-11,0,0,8,4,-10,0,0,8,4,-9,0,0,8,4,-8,0,0,8,4,-7,0,0,8,4,-6,0,0,8,4,-5,0,0,8,4,1,0,0,8,4,2,0,0,8,4,3,0,0,8,4,4,0,0,8,4,5,0,0,8,3,-12,0,0,8,3,-11,0,0,8,3,-10,0,0,8,3,-9,0,0,8,3,-8,0,0,8,3,-7,0,0,8,3,-6,0,0,8,3,-5,0,0,8,3,1,0,0,8,3,2,0,0,8,3,3,0,0,8,3,4,0,0,8,3,5,0,0,8,2,-12,0,0,8,2,-11,0,0,8,2,-10,0,0,8,2,-9,0,0,8,2,-8,0,0,8,2,-7,0,0,8,2,-6,0,0,8,2,-5,0,0,8,2,1,0,0,8,2,2,0,0,8,2,3,0,0,8,2,4,0,0,8,2,5,0,0,8,1,-12,0,0,8,1,-11,0,0,8,1,-10,0,0,8,1,-9,0,0,8,1,-8,0,0,8,1,-7,0,0,8,1,-6,0,0,8,1,-5,0,0,8,1,1,0,0,8,1,2,0,0,8,1,3,0,0,8,1,4,0,0,8,1,5,0,0,8,0,-12,0,0,8,0,-11,0,0,8,0,-10,0,0,8,0,-9,0,0,8,0,-8,0,0,8,0,-7,0,0,8,0,-6,0,0,8,0,-5,0,0,8,0,1,0,0,8,0,2,0,0,8,0,3,0,0,8,0,4,0,0,8,0,5,0,0,8,-1,-12,0,0,8,-1,-11,0,0,8,-1,-10,0,0,8,-1,-9,0,0,8,-1,-8,0,0,8,-1,-7,0,0,8,-1,-6,0,0,8,-1,-5,0,0,8,-1,1,0,0,8,-1,2,0,0,8,-1,3,0,0,8,-1,4,0,0,8,-1,5,0,0,8,-2,-12,0,0,8,-2,-11,0,0,8,-2,-10,0,0,8,-2,-9,0,0,8,-2,-8,0,0,8,-2,-7,0,0,8,-2,-6,0,0,8,-2,-5,0,0,8,-2,1,0,0,8,-2,2,0,0,8,-2,3,0,0,8,-2,4,0,0,8,-2,5,0,0,8,-3,-12,0,0,8,-3,-11,0,0,8,-3,-10,0,0,8,-3,-9,0,0,8,-3,-8,0,0,8,-3,-7,0,0,8,-3,-6,0,0,8,-3,-5,0,0,8,-3,-4,0,0,8,-3,-3,0,0,8,-3,-2,0,0,8,-3,-1,0,0,8,-3,0,0,0,8,-3,1,0,0,8,-3,2,0,0,8,-3,3,0,0,8,-3,4,0,0,8,-3,5,0,0,8,-3,6,0,0,8,-3,7,0,0,8,-3,8,0,0,8,-3,9,0,0,8,-4,-12,0,0,8,-4,-11,0,0,8,-4,-10,0,0,8,-4,-9,0,0,8,-4,-8,0,0,8,-4,-7,0,0,8,-4,-6,0,0,8,-4,-5,0,0,8,-4,-4,0,0,8,-4,-3,0,0,8,-4,-2,0,0,8,-4,-1,0,0,8,-4,0,0,0,8,-4,1,0,0,8,-4,2,0,0,8,-4,3,0,0,8,-4,4,0,0,8,-4,5,0,0,8,-4,6,0,0,8,-4,7,0,0,8,-4,8,0,0,8,-4,9,0,0,8,-5,-12,0,0,8,-5,-11,0,0,8,-5,-10,0,0,8,-5,-9,0,0,8,-5,-8,0,0,8,-5,-7,0,0,8,-5,-6,0,0,8,-5,-5,0,0,8,-5,-4,0,0,8,-5,-3,0,0,8,-5,-2,0,0,8,-5,-1,0,0,8,-5,0,0,0,8,-5,1,0,0,8,-5,2,0,0,8,-5,3,0,0,8,-5,4,0,0,8,-5,5,0,0,8,-5,6,0,0,8,-5,7,0,0,8,-5,8,0,0,8,-5,9,0,0,8,-6,-12,0,0,8,-6,-11,0,0,8,-6,-10,0,0,8,-6,-9,0,0,8,-6,-8,0,0,8,-6,-7,0,0,8,-6,-6,0,0,8,-6,-5,0,0,8,-6,-4,0,0,8,-6,-3,0,0,8,-6,-2,0,0,8,-6,-1,0,0,8,-6,0,0,0,8,-6,1,0,0,8,-6,2,0,0,8,-6,3,0,0,8,-6,4,0,0,8,-6,5,0,0,8,-6,6,0,0,8,-6,7,0,0,8,-6,8,0,0,8,-6,9,0,0,8,-7,-12,0,0,8,-7,-11,0,0,8,-7,-10,0,0,8,-7,-9,0,0,8,-7,-8,0,0,8,-7,-7,0,0,8,-7,-6,0,0,8,-7,-5,0,0,8,-7,-4,0,0,8,-7,-3,0,0,8,-7,-2,0,0,8,-7,-1,0,0,8,-7,0,0,0,8,-7,1,0,0,8,-7,2,0,0,8,-7,3,0,0,8,-7,4,0,0,8,-7,5,0,0,8,-7,6,0,0,8,-7,7,0,0,8,-7,8,0,0,8,-7,9,0,0,8,-8,-12,0,0,8,-8,-11,0,0,8,-8,-10,0,0,8,-8,-9,0,0,8,-8,-8,0,0,8,-8,-7,0,0,8,-8,-6,0,0,8,-8,-5,0,0,8,-8,-4,0,0,8,-8,-3,0,0,8,-8,-2,0,0,8,-8,-1,0,0,8,-8,0,0,0,8,-8,1,0,0,8,-8,2,0,0,8,-8,3,0,0,8,-8,4,0,0,8,-8,5,0,0,8,-8,6,0,0,8,-8,7,0,0,8,-8,8,0,0,8,-8,9,0,0,8,-9,-12,0,0,8,-9,-11,0,0,8,-9,-10,0,0,8,-9,-9,0,0,8,-9,-8,0,0,8,-9,-7,0,0,8,-9,-6,0,0,8,-9,-5,0,0,8,-9,-4,0,0,8,-9,-3,0,0,8,-9,-2,0,0,8,-9,-1,0,0,8,-9,0,0,0,8,-9,1,0,0,8,-9,2,0,0,8,-9,3,0,0,8,-9,4,0,0,8,-9,5,0,0,8,-9,6,0,0,8,-9,7,0,0,8,-9,8,0,0,8,-9,9,0,0,8,6,-12,0,0,8,6,-11,0,0,8,6,-10,0,0,8,6,-9,0,0,8,6,-8,0,0,8,6,-7,0,0,8,6,-6,0,0,8,6,-5,0,0,8,6,1,0,0,8,6,2,0,0,8,6,3,0,0,8,6,4,0,0,8,6,5,0,0,8,7,-12,0,0,8,7,-11,0,0,8,7,-10,0,0,8,7,-9,0,0,8,7,-8,0,0,8,7,-7,0,0,8,7,-6,0,0,8,7,-5,0,0,8,7,1,0,0,8,7,2,0,0,8,7,3,0,0,8,7,4,0,0,8,7,5,0,0,8,8,-12,0,0,8,8,-11,0,0,8,8,-10,0,0,8,8,-9,0,0,8,8,-8,0,0,8,8,-7,0,0,8,8,-6,0,0,8,8,-5,0,0,8,8,1,0,0,8,8,2,0,0,8,8,3,0,0,8,8,4,0,0,8,8,5,0,0,8,9,-12,0,0,8,9,-11,0,0,8,9,-10,0,0,8,9,-9,0,0,8,9,-8,0,0,8,9,-7,0,0,8,9,-6,0,0,8,9,-5,0,0,8,9,1,0,0,8,9,2,0,0,8,9,3,0,0,8,9,4,0,0,8,9,5,0,0,8,10,-12,0,0,8,10,-11,0,0,8,10,-10,0,0,8,10,-9,0,0,8,10,-8,0,0,8,10,-7,0,0,8,10,-6,0,0,8,10,-5,0,0,8,10,1,0,0,8,10,2,0,0,8,10,3,0,0,8,10,4,0,0,8,10,5,0,0,8,11,-12,0,0,8,11,-11,0,0,8,11,-10,0,0,8,11,-9,0,0,8,11,-8,0,0,8,11,-7,0,0,8,11,-6,0,0,8,11,-5,0,0,8,11,1,0,0,8,11,2,0,0,8,11,3,0,0,8,11,4,0,0,8,11,5,0,0,8],"Middle":[-9,-13,0,2,7,-8,-13,0,2,7,-7,-13,0,2,7,-6,-13,0,2,7,-5,-13,0,2,7,-4,-13,0,2,7,-3,-13,0,2,7,-2,-13,0,2,7,-2,0,0,1,7,-1,-13,0,2,7,-1,0,0,2,7,0,-13,0,2,7,0,0,0,2,7,1,-13,0,2,7,1,0,0,2,7,2,-13,0,2,7,2,0,0,2,7,3,-13,0,2,7,3,0,0,2,7,4,-13,0,2,7,4,0,0,2,7,5,-13,0,2,7,5,0,0,2,7,6,-13,0,2,7,6,0,0,2,7,7,-13,0,2,7,7,0,0,2,7,8,-13,0,2,7,8,0,0,2,7,9,-13,0,2,7,9,0,0,2,7,10,-13,0,2,7,10,0,0,2,7,11,-13,0,2,7,11,0,0,2,7],"Top":[-10,-13,0,3,4,-10,-12,0,3,3,-10,-11,0,3,3,-10,-10,0,3,3,-10,-9,0,3,3,-10,-8,0,3,3,-10,-7,0,3,3,-10,-6,0,3,3,-10,-5,0,3,3,-10,-4,0,3,3,-10,-3,0,3,3,-10,-2,0,3,3,-10,-1,0,3,3,-10,0,0,3,3,-10,1,0,3,3,-10,2,0,3,3,-10,3,0,3,3,-10,4,0,3,3,-10,5,0,3,3,-10,6,0,3,3,-10,7,0,3,3,-10,8,0,3,3,-10,9,0,3,3,-10,10,0,11,2,-9,10,0,2,2,-8,10,0,2,2,-7,10,0,2,2,-6,10,0,2,2,-5,10,0,2,2,-4,10,0,2,2,-3,10,0,2,2,-2,-4,0,1,2,-2,-3,0,1,3,-2,-2,0,1,3,-2,-1,0,1,3,-2,6,0,1,2,-2,7,0,1,3,-2,8,0,1,3,-2,9,0,1,3,-2,10,0,13,2,-1,-4,0,2,2,-1,6,0,2,2,0,-4,0,2,2,0,6,0,2,2,1,-4,0,2,2,1,6,0,2,2,2,-4,0,2,2,2,6,0,2,2,3,-4,0,2,2,3,6,0,2,2,4,-4,0,2,2,4,6,0,2,2,5,-4,0,2,2,5,6,0,2,2,6,-4,0,2,2,6,6,0,2,2,7,-4,0,2,2,7,6,0,2,2,8,-4,0,2,2,8,6,0,2,2,9,-4,0,2,2,9,6,0,2,2,10,-4,0,2,2,10,6,0,2,2,11,-4,0,2,2,11,6,0,2,2,12,-13,0,1,4,12,-12,0,1,3,12,-11,0,1,3,12,-10,0,1,3,12,-9,0,1,3,12,-8,0,1,3,12,-7,0,1,3,12,-6,0,1,3,12,-5,0,1,3,12,-4,0,13,2,12,0,0,1,4,12,1,0,1,3,12,2,0,1,3,12,3,0,1,3,12,4,0,1,3,12,5,0,1,3,12,6,0,13,2]} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs index 5e747d7..263c49c 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs @@ -29,6 +29,11 @@ public bool IsStatic { get; set; } /// + /// 是否显示阴影 + /// + public bool IsShowShadow { get; private set; } + + /// /// 当前物体显示的阴影图像, 节点名称必须叫 "ShadowSprite", 类型为 Sprite2D /// [Export, ExportFillNode] @@ -399,7 +404,7 @@ } /// - /// 显示阴影 + /// 显示并更新阴影 /// public void ShowShadowSprite() { @@ -419,6 +424,7 @@ _prevAnimation = anim; _prevAnimationFrame = frame; + IsShowShadow = true; CalcShadow(); ShadowSprite.Visible = true; } @@ -429,6 +435,7 @@ public void HideShadowSprite() { ShadowSprite.Visible = false; + IsShowShadow = false; } /// diff --git a/DungeonShooting_Godot/src/framework/coroutine/ProxyCoroutineHandler.cs b/DungeonShooting_Godot/src/framework/coroutine/ProxyCoroutineHandler.cs index 5fd2b36..5592d76 100644 --- a/DungeonShooting_Godot/src/framework/coroutine/ProxyCoroutineHandler.cs +++ b/DungeonShooting_Godot/src/framework/coroutine/ProxyCoroutineHandler.cs @@ -18,9 +18,9 @@ var pairs = coroutineList.ToArray(); for (var i = 0; i < pairs.Length; i++) { + var item = pairs[i]; try { - var item = pairs[i]; var canNext = true; if (item.WaitState == CoroutineData.WaitTypeEnum.WaitForSeconds) //等待秒数 @@ -130,6 +130,7 @@ catch (Exception e) { GD.PrintErr("执行协程发生异常: \n" + e); + ProxyStopCoroutine(ref coroutineList, item.Id); } } } diff --git a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs index c85d8e5..82fb447 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs @@ -109,18 +109,18 @@ //验证该组是否满足生成地牢的条件 if (_roomGroup.InletList.Count == 0) { - throw new Exception("当前组'" + config.GroupName + "'中没有起始房间, 不能生成地牢!"); + throw new Exception("当前组'" + config.GroupName + "'中没有可用的起始房间, 不能生成地牢!"); } //没有指定房间 if (_designatedRoom == null || _designatedRoom.Count == 0) { if (_roomGroup.OutletList.Count == 0) { - throw new Exception("当前组'" + config.GroupName + "'中没有结束房间, 不能生成地牢!"); + throw new Exception("当前组'" + config.GroupName + "'中没有可用的结束房间, 不能生成地牢!"); } else if (_roomGroup.BattleList.Count == 0) { - throw new Exception("当前组'" + config.GroupName + "'中没有战斗房间, 不能生成地牢!"); + throw new Exception("当前组'" + config.GroupName + "'中没有可用的战斗房间, 不能生成地牢!"); } } diff --git a/DungeonShooting_Godot/src/framework/map/preinstall/ActivityMark.cs b/DungeonShooting_Godot/src/framework/map/preinstall/ActivityMark.cs index 5c1f35d..9516ece 100644 --- a/DungeonShooting_Godot/src/framework/map/preinstall/ActivityMark.cs +++ b/DungeonShooting_Godot/src/framework/map/preinstall/ActivityMark.cs @@ -15,10 +15,15 @@ public Vector2 Position { get; set; } /// - /// 额外属性 + /// 额外属性, 不要自行修改字典内的属性数据, 要改的话请在 DerivedAttr 上改 /// public Dictionary Attr { get; set; } - + + /// + /// 衍生属性, 可随意修改值 + /// + public Dictionary DerivedAttr { get; set; } + /// /// 特殊标记类型 /// diff --git a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs index 54b2a80..9f8d4b6 100644 --- a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs +++ b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs @@ -99,12 +99,27 @@ mark.Id = markInfoItem.Id; mark.Attr = markInfoItem.Attr; + mark.DerivedAttr = new Dictionary(); mark.VerticalSpeed = markInfoItem.VerticalSpeed; mark.Altitude = markInfoItem.Altitude; mark.ActivityType = (ActivityType)ExcelConfig.ActivityObject_Map[markInfoItem.Id].Type; - if (mark.ActivityType == ActivityType.Enemy) + + if (mark.ActivityType == ActivityType.Enemy) //敌人类型 { _hsaEnemy = true; + if (!mark.Attr.TryGetValue("Face", out var face) || face == "0") //随机方向 + { + mark.DerivedAttr.Add("Face", + random.RandomChoose( + ((int)FaceDirection.Left).ToString(), + ((int)FaceDirection.Right).ToString() + ) + ); + } + else //指定方向 + { + mark.DerivedAttr.Add("Face", face); + } } } else if (markInfo.SpecialMarkType == SpecialMarkType.BirthPoint) //玩家出生标记 @@ -351,6 +366,12 @@ } } } + + if (activityMark.DerivedAttr.TryGetValue("Face", out var face)) //脸朝向, 应该只有 -1 和 1 + { + var faceDir = int.Parse(face); + enemy.Face = (FaceDirection)faceDir; + } } } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/package/Package.cs b/DungeonShooting_Godot/src/game/activity/package/Package.cs index 059ce2b..98b5582 100644 --- a/DungeonShooting_Godot/src/game/activity/package/Package.cs +++ b/DungeonShooting_Godot/src/game/activity/package/Package.cs @@ -261,7 +261,7 @@ if (index == ActiveIndex) { //没有其他物体了 - if (ExchangePrev() == index) + if (ExchangePrev(true) == index) { ActiveIndex = 0; ActiveItem = null; @@ -289,6 +289,11 @@ /// public int ExchangePrev() { + return ExchangePrev(false); + } + + private int ExchangePrev(bool removeFlag) + { var index = ActiveIndex - 1; do { @@ -296,7 +301,7 @@ { index = ItemSlot.Length - 1; } - if (ExchangeByIndex(index)) + if (ExchangeByIndex(index, removeFlag)) { return index; } @@ -329,13 +334,18 @@ /// public bool ExchangeByIndex(int index) { + return ExchangeByIndex(index, false); + } + + private bool ExchangeByIndex(int index, bool removeFlag) + { if (index == ActiveIndex && ActiveItem != null) return true; if (index < 0 || index > ItemSlot.Length) return false; var item = ItemSlot[index]; if (item == null) return false; //将上一个物体放到背后 - if (ActiveItem != null) + if (!removeFlag && ActiveItem != null) { //收起物体 ActiveItem.OnConcealItem(); diff --git a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs index 3a58b9b..8428a0f 100644 --- a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs +++ b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs @@ -1613,7 +1613,8 @@ private void Active() { //调整阴影 - ShadowOffset = new Vector2(0, Master.GlobalPosition.Y - GlobalPosition.Y); + //ShadowOffset = new Vector2(0, Master.GlobalPosition.Y - GlobalPosition.Y); + ShadowOffset = new Vector2(0, -Master.MountPoint.Position.Y); //枪口默认抬起角度 RotationDegrees = -Attribute.DefaultAngle; ShowShadowSprite(); diff --git a/DungeonShooting_Godot/src/game/event/EventEnum.cs b/DungeonShooting_Godot/src/game/event/EventEnum.cs index 9859034..5ab4096 100644 --- a/DungeonShooting_Godot/src/game/event/EventEnum.cs +++ b/DungeonShooting_Godot/src/game/event/EventEnum.cs @@ -78,7 +78,7 @@ /// OnEditorDirty, /// - /// 编辑器触发保存 + /// 编辑器触发保存, 参数为> /// OnEditorSave, /// diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMark.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMark.cs index de98cff..5511006 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMark.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMark.cs @@ -45,6 +45,19 @@ private NumberBar _L_NumberBar; /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.OptionBar + /// + public OptionBar L_OptionBar + { + get + { + if (_L_OptionBar == null) _L_OptionBar = new OptionBar((MapEditorCreateMarkPanel)this, GetNode("OptionBar")); + return _L_OptionBar; + } + } + private OptionBar _L_OptionBar; + + /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.ObjectBar /// public ObjectBar L_ObjectBar @@ -65,6 +78,7 @@ public sealed override void OnInitNestedUi() { _ = L_NumberBar; + _ = L_OptionBar; _ = L_ObjectBar; } @@ -1197,7 +1211,7 @@ } /// - /// 类型: , 路径: MapEditorCreateMark.ObjectBar.AttrName + /// 类型: , 路径: MapEditorCreateMark.OptionBar.AttrName /// public class AttrName_1 : UiNode { @@ -1206,6 +1220,59 @@ } /// + /// 类型: , 路径: MapEditorCreateMark.OptionBar.OptionInput + /// + public class OptionInput : UiNode + { + public OptionInput(MapEditorCreateMarkPanel uiPanel, Godot.OptionButton node) : base(uiPanel, node) { } + public override OptionInput Clone() => new (UiPanel, (Godot.OptionButton)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: MapEditorCreateMark.OptionBar + /// + public class OptionBar : UiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.AttrName + /// + public AttrName_1 L_AttrName + { + get + { + if (_L_AttrName == null) _L_AttrName = new AttrName_1(UiPanel, Instance.GetNode("AttrName")); + return _L_AttrName; + } + } + private AttrName_1 _L_AttrName; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.OptionInput + /// + public OptionInput L_OptionInput + { + get + { + if (_L_OptionInput == null) _L_OptionInput = new OptionInput(UiPanel, Instance.GetNode("OptionInput")); + return _L_OptionInput; + } + } + private OptionInput _L_OptionInput; + + public OptionBar(MapEditorCreateMarkPanel uiPanel, UI.MapEditorCreateMark.OptionAttribute node) : base(uiPanel, node) { } + public override OptionBar Clone() => new (UiPanel, (UI.MapEditorCreateMark.OptionAttribute)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: MapEditorCreateMark.ObjectBar.AttrName + /// + public class AttrName_2 : UiNode + { + public AttrName_2(MapEditorCreateMarkPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } + public override AttrName_2 Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); + } + + /// /// 类型: , 路径: MapEditorCreateMark.ObjectBar.HBoxContainer.SelectButton /// public class SelectButton : UiNode @@ -1310,15 +1377,15 @@ /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.AttrName /// - public AttrName_1 L_AttrName + public AttrName_2 L_AttrName { get { - if (_L_AttrName == null) _L_AttrName = new AttrName_1(UiPanel, Instance.GetNode("AttrName")); + if (_L_AttrName == null) _L_AttrName = new AttrName_2(UiPanel, Instance.GetNode("AttrName")); return _L_AttrName; } } - private AttrName_1 _L_AttrName; + private AttrName_2 _L_AttrName; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.HBoxContainer @@ -1494,6 +1561,16 @@ public NumberBar S_NumberBar => L_NumberBar; /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.OptionBar.OptionInput + /// + public OptionInput S_OptionInput => L_OptionBar.L_OptionInput; + + /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.OptionBar + /// + public OptionBar S_OptionBar => L_OptionBar; + + /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.ObjectBar.HBoxContainer.SelectButton /// public SelectButton S_SelectButton => L_ObjectBar.L_HBoxContainer.L_SelectButton; diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs index ce99349..a249c1a 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs @@ -17,6 +17,7 @@ S_ExpandPanel.Instance.Visible = false; S_NumberBar.Instance.Visible = false; S_ObjectBar.Instance.Visible = false; + S_OptionBar.Instance.Visible = false; //添加标记按钮 S_AddMark.Instance.Pressed += OnAddMark; @@ -174,6 +175,21 @@ return objectBar; } + /// + /// 创建选项属性数据 + /// + /// 属性字符串名称 + /// 属性显示名称 + /// + public OptionBar CreateOptionBar(string attrName, string attrLabel) + { + var optionBar = S_OptionBar.Clone(); + optionBar.Instance.AttrName = attrName; + optionBar.L_AttrName.Instance.Text = attrLabel; + optionBar.Instance.Visible = true; + return optionBar; + } + //点击添加标记按钮 private void OnAddMark() { diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs index dcdd20f..aefa59c 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs @@ -59,11 +59,6 @@ } CellNode.L_VBoxContainer.L_HBoxContainer.L_CenterContainer.L_DeleteButton.Instance.Visible = true; CellNode.L_VBoxContainer.L_HBoxContainer.L_WeightEdit.Instance.Visible = true; - - //海拔高度 - _altitude.L_NumInput.Instance.Value = data.Altitude; - //纵轴速度 - _vSpeed.L_NumInput.Instance.Value = data.VerticalSpeed; } } @@ -191,7 +186,7 @@ if (markInfoItem != null) { - if (markInfoItem.Attr != null) + if (markInfoItem.Attr == null) { //初始高度 if (activityObject.Type == (int)ActivityType.Weapon || activityObject.Type == (int)ActivityType.Prop) @@ -199,6 +194,13 @@ _altitude.L_NumInput.Instance.Value = 8; } } + else + { + //海拔高度 + _altitude.L_NumInput.Instance.Value = markInfoItem.Altitude; + //纵轴速度 + _vSpeed.L_NumInput.Instance.Value = markInfoItem.VerticalSpeed; + } } if (activityObject.Type == (int)ActivityType.Weapon) //武器类型 @@ -243,7 +245,10 @@ } else if (activityObject.Type == (int)ActivityType.Enemy) //敌人 { - var faceBar = CellNode.UiPanel.CreateNumberBar("Face", "脸朝向:"); + var faceBar = CellNode.UiPanel.CreateOptionBar("Face", "脸朝向:"); + faceBar.Instance.AddItem("随机", 0); + faceBar.Instance.AddItem("左", (int)FaceDirection.Left); + faceBar.Instance.AddItem("右", (int)FaceDirection.Right); var weaponBar = CellNode.UiPanel.CreateObjectBar("Weapon", "携带武器:", ActivityType.Weapon); var numberBar2 = CellNode.UiPanel.CreateNumberBar("CurrAmmon", "弹夹弹药量:"); var numberBar3 = CellNode.UiPanel.CreateNumberBar("ResidueAmmo", "剩余弹药量:"); @@ -267,7 +272,7 @@ { if (markInfoItem.Attr.TryGetValue("Face", out var face)) //朝向 { - faceBar.L_NumInput.Instance.Value = int.Parse(face); + faceBar.Instance.SetSelectItem(int.Parse(face)); } if (markInfoItem.Attr.TryGetValue("Weapon", out var weaponId)) //武器 { @@ -284,6 +289,7 @@ } else { + faceBar.Instance.SetSelectItem(0); numberBar2.L_NumInput.Instance.Value = numberBar2.L_NumInput.Instance.MaxValue; numberBar3.L_NumInput.Instance.Value = (int)(numberBar3.L_NumInput.Instance.MaxValue / 2); } diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/attribute/OptionAttribute.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/attribute/OptionAttribute.cs new file mode 100644 index 0000000..1481829 --- /dev/null +++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/attribute/OptionAttribute.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace UI.MapEditorCreateMark; + +public partial class OptionAttribute : AttributeBase +{ + private MapEditorCreateMark.OptionBar _optionBar; + private int _index = 0; + private Dictionary _map = new Dictionary(); + + public override void SetUiNode(IUiNode uiNode) + { + _optionBar = (MapEditorCreateMark.OptionBar)uiNode; + } + + public override void OnDestroy() + { + + } + + public override string GetAttributeValue() + { + return _map[_optionBar.L_OptionInput.Instance.Selected].ToString(); + } + + /// + /// 根据值选中选项 + /// + public void SetSelectItem(int value) + { + foreach (var keyValuePair in _map) + { + if (keyValuePair.Value == value) + { + _optionBar.L_OptionInput.Instance.Select(keyValuePair.Key); + return; + } + } + _optionBar.L_OptionInput.Instance.Select(-1); + } + + /// + /// 添加选项 + /// + /// 选项显示文本 + /// 选项值 + public void AddItem(string label, int value) + { + var index = _index++; + _map.Add(index, value); + _optionBar.L_OptionInput.Instance.AddItem(label, index); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorProject/GroupButtonCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorProject/GroupButtonCell.cs index bf75410..2a11404 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorProject/GroupButtonCell.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorProject/GroupButtonCell.cs @@ -18,6 +18,6 @@ //选中工程 public override void OnClick() { - ((MapEditorProjectPanel)CellNode.UiPanel).SelectGroup(Data); + CellNode.UiPanel.SelectGroup(Data); } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs index eac5a69..e96558e 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs @@ -113,6 +113,7 @@ //搜索组按钮点击 private void OnSearchGroupButtonClick() { + var select = _groupGrid.SelectIndex; //输入文本 var text = S_GroupSearchInput.Instance.Text; if (!string.IsNullOrEmpty(text)) @@ -132,6 +133,8 @@ { _groupGrid.SetDataList(MapProjectManager.GroupMap.Values.ToArray()); } + + _roomGrid.SelectIndex = select; } //搜索房间按钮点击