diff --git a/DungeonShooting_Godot/DungeonShooting.csproj b/DungeonShooting_Godot/DungeonShooting.csproj index 702df32..69ed320 100644 --- a/DungeonShooting_Godot/DungeonShooting.csproj +++ b/DungeonShooting_Godot/DungeonShooting.csproj @@ -1,4 +1,4 @@ - + net6.0 true diff --git a/DungeonShooting_Godot/DungeonShooting.csproj.old.1 b/DungeonShooting_Godot/DungeonShooting.csproj.old.1 new file mode 100644 index 0000000..702df32 --- /dev/null +++ b/DungeonShooting_Godot/DungeonShooting.csproj.old.1 @@ -0,0 +1,11 @@ + + + net6.0 + true + + + + + + + \ No newline at end of file diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor.tscn index ce49453..dcdc944 100644 --- a/DungeonShooting_Godot/prefab/map/RoomDoor.tscn +++ b/DungeonShooting_Godot/prefab/map/RoomDoor.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=3] +[gd_scene load_steps=10 format=3 uid="uid://dswcawdc85pgq"] [ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_8es7a"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_d8jnk"] diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor_E.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor_E.tscn new file mode 100644 index 0000000..44dd8a3 --- /dev/null +++ b/DungeonShooting_Godot/prefab/map/RoomDoor_E.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=7 format=3 uid="uid://dqs5rvtum3hb7"] + +[ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_im6r2"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_b0axw"] +[ext_resource type="SpriteFrames" uid="uid://3ps6h2f54qa5" path="res://resource/spriteFrames/RoomDoor_EW.tres" id="3_07nn2"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_yvwpk"] +resource_local_to_scene = true +shader = ExtResource("2_b0axw") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_t4ayq"] +resource_local_to_scene = true +shader = ExtResource("2_b0axw") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_opsb6"] +resource_local_to_scene = true +size = Vector2(14, 40) + +[node name="RoomDoor_N" type="Node"] +script = ExtResource("1_im6r2") +IsStatic = true +collision_layer = 1 + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_yvwpk") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_t4ayq") +position = Vector2(0, -8) +sprite_frames = ExtResource("3_07nn2") +animation = &"openDoor" +autoplay = "default" +frame = 9 +frame_progress = 1.0 + +[node name="Collision" type="CollisionShape2D" parent="."] +position = Vector2(0, 4) +shape = SubResource("RectangleShape2D_opsb6") diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor_N.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor_N.tscn new file mode 100644 index 0000000..8e4f42d --- /dev/null +++ b/DungeonShooting_Godot/prefab/map/RoomDoor_N.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=7 format=3 uid="uid://dvlg6pndn2qmv"] + +[ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_2ymo1"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_544pm"] +[ext_resource type="SpriteFrames" uid="uid://xs72aopsgpg6" path="res://resource/spriteFrames/RoomDoor_NS.tres" id="3_7b7or"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_yvwpk"] +resource_local_to_scene = true +shader = ExtResource("2_544pm") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_t4ayq"] +resource_local_to_scene = true +shader = ExtResource("2_544pm") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_opsb6"] +resource_local_to_scene = true +size = Vector2(32, 23) + +[node name="RoomDoor_N" type="Node"] +script = ExtResource("1_2ymo1") +IsStatic = true +collision_layer = 1 + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_yvwpk") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_t4ayq") +position = Vector2(0, -8) +sprite_frames = ExtResource("3_7b7or") +animation = &"openDoor" +autoplay = "default" + +[node name="Collision" type="CollisionShape2D" parent="."] +position = Vector2(0, -3.5) +shape = SubResource("RectangleShape2D_opsb6") diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor_S.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor_S.tscn new file mode 100644 index 0000000..d31f6d6 --- /dev/null +++ b/DungeonShooting_Godot/prefab/map/RoomDoor_S.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=7 format=3 uid="uid://b5v3ytdk7japw"] + +[ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_g2uu2"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_kqw3x"] +[ext_resource type="SpriteFrames" uid="uid://xs72aopsgpg6" path="res://resource/spriteFrames/RoomDoor_NS.tres" id="3_o0nxg"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_yvwpk"] +resource_local_to_scene = true +shader = ExtResource("2_kqw3x") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_t4ayq"] +resource_local_to_scene = true +shader = ExtResource("2_kqw3x") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_opsb6"] +resource_local_to_scene = true +size = Vector2(32, 23) + +[node name="RoomDoor_N" type="Node"] +script = ExtResource("1_g2uu2") +IsStatic = true +collision_layer = 1 + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_yvwpk") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_t4ayq") +position = Vector2(0, -8) +sprite_frames = ExtResource("3_o0nxg") +animation = &"closeDoor" + +[node name="Collision" type="CollisionShape2D" parent="."] +position = Vector2(0, -3.5) +shape = SubResource("RectangleShape2D_opsb6") diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor_W.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor_W.tscn new file mode 100644 index 0000000..514f9b6 --- /dev/null +++ b/DungeonShooting_Godot/prefab/map/RoomDoor_W.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=7 format=3 uid="uid://nqiy0jc2ause"] + +[ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_ivf53"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_wsh33"] +[ext_resource type="SpriteFrames" uid="uid://3ps6h2f54qa5" path="res://resource/spriteFrames/RoomDoor_EW.tres" id="3_ptoof"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_yvwpk"] +resource_local_to_scene = true +shader = ExtResource("2_wsh33") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_t4ayq"] +resource_local_to_scene = true +shader = ExtResource("2_wsh33") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_2ko2r"] +resource_local_to_scene = true +size = Vector2(14, 40) + +[node name="RoomDoor_N" type="Node"] +script = ExtResource("1_ivf53") +IsStatic = true +collision_layer = 1 + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_yvwpk") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_t4ayq") +position = Vector2(0, -8) +sprite_frames = ExtResource("3_ptoof") + +[node name="Collision" type="CollisionShape2D" parent="."] +position = Vector2(0, 4) +shape = SubResource("RectangleShape2D_2ko2r") diff --git a/DungeonShooting_Godot/resource/sprite/map/door1_down.png b/DungeonShooting_Godot/resource/sprite/map/door1_down.png index a5014a4..faeba59 100644 --- a/DungeonShooting_Godot/resource/sprite/map/door1_down.png +++ b/DungeonShooting_Godot/resource/sprite/map/door1_down.png Binary files differ diff --git a/DungeonShooting_Godot/resource/spriteFrames/RoomDoor_EW.tres b/DungeonShooting_Godot/resource/spriteFrames/RoomDoor_EW.tres new file mode 100644 index 0000000..75c0d73 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/RoomDoor_EW.tres @@ -0,0 +1,161 @@ +[gd_resource type="SpriteFrames" load_steps=22 format=3 uid="uid://3ps6h2f54qa5"] + +[ext_resource type="Texture2D" uid="uid://dviv44fhwvkb1" path="res://resource/sprite/map/door1_down.png" id="1_dgkkn"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_5m6ya"] +atlas = ExtResource("1_dgkkn") +region = Rect2(144, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kmhtl"] +atlas = ExtResource("1_dgkkn") +region = Rect2(128, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_umaop"] +atlas = ExtResource("1_dgkkn") +region = Rect2(112, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_aqex7"] +atlas = ExtResource("1_dgkkn") +region = Rect2(96, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hdocg"] +atlas = ExtResource("1_dgkkn") +region = Rect2(80, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_aiymw"] +atlas = ExtResource("1_dgkkn") +region = Rect2(64, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8f7dv"] +atlas = ExtResource("1_dgkkn") +region = Rect2(32, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_iv82l"] +atlas = ExtResource("1_dgkkn") +region = Rect2(16, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ycmnv"] +atlas = ExtResource("1_dgkkn") +region = Rect2(0, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_o7xw0"] +atlas = ExtResource("1_dgkkn") +region = Rect2(144, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j8iw2"] +atlas = ExtResource("1_dgkkn") +region = Rect2(0, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_823if"] +atlas = ExtResource("1_dgkkn") +region = Rect2(16, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7hyae"] +atlas = ExtResource("1_dgkkn") +region = Rect2(32, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6lhu3"] +atlas = ExtResource("1_dgkkn") +region = Rect2(48, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_a026j"] +atlas = ExtResource("1_dgkkn") +region = Rect2(64, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wfjf7"] +atlas = ExtResource("1_dgkkn") +region = Rect2(80, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rhj60"] +atlas = ExtResource("1_dgkkn") +region = Rect2(96, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_06y08"] +atlas = ExtResource("1_dgkkn") +region = Rect2(112, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1200j"] +atlas = ExtResource("1_dgkkn") +region = Rect2(128, 48, 16, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mbnbx"] +atlas = ExtResource("1_dgkkn") +region = Rect2(144, 48, 16, 48) + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5m6ya") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kmhtl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_umaop") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_aqex7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hdocg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_aiymw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8f7dv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_iv82l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ycmnv") +}], +"loop": false, +"name": &"closeDoor", +"speed": 20.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_o7xw0") +}], +"loop": false, +"name": &"default", +"speed": 20.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_j8iw2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_823if") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7hyae") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6lhu3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_a026j") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wfjf7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rhj60") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_06y08") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1200j") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mbnbx") +}], +"loop": false, +"name": &"openDoor", +"speed": 20.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/RoomDoor_NS.tres b/DungeonShooting_Godot/resource/spriteFrames/RoomDoor_NS.tres new file mode 100644 index 0000000..fbe73fa --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/RoomDoor_NS.tres @@ -0,0 +1,154 @@ +[gd_resource type="SpriteFrames" load_steps=21 format=3 uid="uid://xs72aopsgpg6"] + +[ext_resource type="Texture2D" uid="uid://dviv44fhwvkb1" path="res://resource/sprite/map/door1_down.png" id="1_wt0g7"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_77i3w"] +atlas = ExtResource("1_wt0g7") +region = Rect2(256, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_112lq"] +atlas = ExtResource("1_wt0g7") +region = Rect2(224, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2ojr8"] +atlas = ExtResource("1_wt0g7") +region = Rect2(192, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_q58ag"] +atlas = ExtResource("1_wt0g7") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ghweb"] +atlas = ExtResource("1_wt0g7") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_28y4l"] +atlas = ExtResource("1_wt0g7") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0fk5y"] +atlas = ExtResource("1_wt0g7") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_eu8jg"] +atlas = ExtResource("1_wt0g7") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rw4x5"] +atlas = ExtResource("1_wt0g7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5dlkq"] +atlas = ExtResource("1_wt0g7") +region = Rect2(256, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dnc85"] +atlas = ExtResource("1_wt0g7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8wepo"] +atlas = ExtResource("1_wt0g7") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_s2c1g"] +atlas = ExtResource("1_wt0g7") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_umj5m"] +atlas = ExtResource("1_wt0g7") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sceep"] +atlas = ExtResource("1_wt0g7") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0vntu"] +atlas = ExtResource("1_wt0g7") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_66ox7"] +atlas = ExtResource("1_wt0g7") +region = Rect2(192, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_o2uxo"] +atlas = ExtResource("1_wt0g7") +region = Rect2(224, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m6v3e"] +atlas = ExtResource("1_wt0g7") +region = Rect2(256, 0, 32, 32) + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_77i3w") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_112lq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2ojr8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_q58ag") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ghweb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_28y4l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0fk5y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_eu8jg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rw4x5") +}], +"loop": false, +"name": &"closeDoor", +"speed": 20.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5dlkq") +}], +"loop": false, +"name": &"default", +"speed": 20.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_dnc85") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8wepo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_s2c1g") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_umj5m") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_sceep") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0vntu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_66ox7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_o2uxo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_m6v3e") +}], +"loop": false, +"name": &"openDoor", +"speed": 20.0 +}] diff --git a/DungeonShooting_Godot/resource/theme/mainTheme.tres b/DungeonShooting_Godot/resource/theme/mainTheme.tres index 2758de4..1bee23f 100644 --- a/DungeonShooting_Godot/resource/theme/mainTheme.tres +++ b/DungeonShooting_Godot/resource/theme/mainTheme.tres @@ -352,7 +352,7 @@ [sub_resource type="ImageTexture" id="58"] -[sub_resource type="Image" id="Image_jpepx"] +[sub_resource type="Image" id="Image_o6bm7"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -362,7 +362,7 @@ } [sub_resource type="ImageTexture" id="60"] -image = SubResource("Image_jpepx") +image = SubResource("Image_o6bm7") [sub_resource type="StyleBoxTexture" id="61"] content_margin_left = 2.0 @@ -372,7 +372,7 @@ texture = SubResource("60") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_5ssov"] +[sub_resource type="Image" id="Image_p1slc"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -382,7 +382,7 @@ } [sub_resource type="ImageTexture" id="63"] -image = SubResource("Image_5ssov") +image = SubResource("Image_p1slc") [sub_resource type="StyleBoxTexture" id="64"] content_margin_left = 2.0 @@ -392,7 +392,7 @@ texture = SubResource("63") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_5vvn0"] +[sub_resource type="Image" id="Image_b5xw6"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -402,7 +402,7 @@ } [sub_resource type="ImageTexture" id="66"] -image = SubResource("Image_5vvn0") +image = SubResource("Image_b5xw6") [sub_resource type="StyleBoxTexture" id="67"] content_margin_left = 2.0 @@ -412,7 +412,7 @@ texture = SubResource("66") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_filaf"] +[sub_resource type="Image" id="Image_njial"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -422,7 +422,7 @@ } [sub_resource type="ImageTexture" id="69"] -image = SubResource("Image_filaf") +image = SubResource("Image_njial") [sub_resource type="StyleBoxTexture" id="70"] content_margin_left = 0.0 @@ -446,7 +446,7 @@ content_margin_right = 4.0 content_margin_bottom = 4.0 -[sub_resource type="Image" id="Image_amncd"] +[sub_resource type="Image" id="Image_io8s0"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 228, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 228, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 18, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 17, 255, 255, 255, 186, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 191, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 186, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 189, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 77, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 77, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -456,7 +456,7 @@ } [sub_resource type="ImageTexture" id="56"] -image = SubResource("Image_amncd") +image = SubResource("Image_io8s0") [sub_resource type="StyleBoxFlat" id="57"] content_margin_left = 6.0 diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs index e64f8fd..d658375 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs @@ -23,6 +23,11 @@ public string ItemId { get; private set; } /// + /// 是否是静态物体, 如果为true, 则会禁用移动处理 + /// + public bool IsStatic { get; set; } + + /// /// 当前物体显示的精灵图像, 节点名称必须叫 "AnimatedSprite2D", 类型为 AnimatedSprite2D /// public AnimatedSprite2D AnimatedSprite { get; private set; } diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs index 30a1ce2..6ead626 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs @@ -12,6 +12,11 @@ // [Export] public RoomLayerEnum DefaultLayer = RoomLayerEnum.NormalLayer; /// + /// 是否是静态物体 + /// + [Export] public bool IsStatic = false; + + /// /// 物体初始缩放 /// [Export] public Vector2 scale = Vector2.One; diff --git a/DungeonShooting_Godot/src/game/AnimatorNames.cs b/DungeonShooting_Godot/src/game/AnimatorNames.cs new file mode 100644 index 0000000..a4c641c --- /dev/null +++ b/DungeonShooting_Godot/src/game/AnimatorNames.cs @@ -0,0 +1,40 @@ + +/// +/// 预制动画名称 +/// +public static class AnimatorNames +{ + /// + /// 默认动画 + /// + public const string Default = "default"; + /// + /// 静止不动 + /// + public const string Idle = "idle"; + /// + /// 奔跑 + /// + public const string Run = "run"; + /// + /// 倒退奔跑 + /// + public const string ReverseRun = "reverseRun"; + /// + /// 翻滚 + /// + public const string Roll = "roll"; + /// + /// 武器泛光动画 + /// + public const string Floodlight = "floodlight"; + /// + /// 开门动画 + /// + public const string OpenDoor = "openDoor"; + /// + /// 关门动画 + /// + public const string CloseDoor = "closeDoor"; + +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs b/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs index 2d28691..a820ac8 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs @@ -1001,14 +1001,14 @@ { //禁用碰撞 //Collision.Disabled = true; - AnimationPlayer.Play("floodlight"); + AnimationPlayer.Play(AnimatorNames.Floodlight); } protected override void OnThrowOver() { //启用碰撞 //Collision.Disabled = false; - AnimationPlayer.Play("floodlight"); + AnimationPlayer.Play(AnimatorNames.Floodlight); } /// diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs index df86ac8..ece7ffe 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs @@ -14,6 +14,10 @@ public const string prefab_effect_activityObject_EnemyBloodEffect_tscn = "res://prefab/effect/activityObject/EnemyBloodEffect.tscn"; public const string prefab_effect_activityObject_EnemyDebris_tscn = "res://prefab/effect/activityObject/EnemyDebris.tscn"; public const string prefab_map_RoomDoor_tscn = "res://prefab/map/RoomDoor.tscn"; + public const string prefab_map_RoomDoor_E_tscn = "res://prefab/map/RoomDoor_E.tscn"; + public const string prefab_map_RoomDoor_N_tscn = "res://prefab/map/RoomDoor_N.tscn"; + public const string prefab_map_RoomDoor_S_tscn = "res://prefab/map/RoomDoor_S.tscn"; + public const string prefab_map_RoomDoor_W_tscn = "res://prefab/map/RoomDoor_W.tscn"; public const string prefab_role_Enemy_tscn = "res://prefab/role/Enemy.tscn"; public const string prefab_role_Player_tscn = "res://prefab/role/Player.tscn"; public const string prefab_role_Role_tscn = "res://prefab/role/Role.tscn"; @@ -47,10 +51,12 @@ public const string resource_map_RoomConfig_json = "res://resource/map/RoomConfig.json"; public const string resource_map_tiledata_testGroup_battle_Room1_json = "res://resource/map/tiledata/testGroup/battle/Room1.json"; public const string resource_map_tiledata_testGroup_battle_Room8_json = "res://resource/map/tiledata/testGroup/battle/Room8.json"; + public const string resource_map_tiledata_testGroup_boss_Room1_json = "res://resource/map/tiledata/testGroup/boss/Room1.json"; public const string resource_map_tiledata_testGroup_inlet_Room1_json = "res://resource/map/tiledata/testGroup/inlet/Room1.json"; public const string resource_map_tiledata_testGroup_outlet_Room1_json = "res://resource/map/tiledata/testGroup/outlet/Room1.json"; public const string resource_map_tileMaps_testGroup_battle_Room1_tscn = "res://resource/map/tileMaps/testGroup/battle/Room1.tscn"; public const string resource_map_tileMaps_testGroup_battle_Room8_tscn = "res://resource/map/tileMaps/testGroup/battle/Room8.tscn"; + public const string resource_map_tileMaps_testGroup_boss_Room1_tscn = "res://resource/map/tileMaps/testGroup/boss/Room1.tscn"; public const string resource_map_tileMaps_testGroup_inlet_Room1_tscn = "res://resource/map/tileMaps/testGroup/inlet/Room1.tscn"; public const string resource_map_tileMaps_testGroup_outlet_Room1_tscn = "res://resource/map/tileMaps/testGroup/outlet/Room1.tscn"; public const string resource_map_tileset_TileSet1_tres = "res://resource/map/tileset/TileSet1.tres"; diff --git a/DungeonShooting_Godot/src/game/role/AnimatorNames.cs b/DungeonShooting_Godot/src/game/role/AnimatorNames.cs deleted file mode 100644 index 29e59cb..0000000 --- a/DungeonShooting_Godot/src/game/role/AnimatorNames.cs +++ /dev/null @@ -1,27 +0,0 @@ - -/// -/// 角色身上预制动画名称 -/// -public static class AnimatorNames -{ - /// - /// 默认动画 - /// - public const string Default = "default"; - /// - /// 静止不动 - /// - public const string Idle = "idle"; - /// - /// 奔跑 - /// - public const string Run = "run"; - /// - /// 倒退奔跑 - /// - public const string ReverseRun = "reverseRun"; - /// - /// 翻滚 - /// - public const string Roll = "roll"; -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/room/DungeonManager.cs b/DungeonShooting_Godot/src/game/room/DungeonManager.cs index f8a37df..04db30b 100644 --- a/DungeonShooting_Godot/src/game/room/DungeonManager.cs +++ b/DungeonShooting_Godot/src/game/room/DungeonManager.cs @@ -1,4 +1,5 @@  +using System; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -240,27 +241,55 @@ { foreach (var doorInfo in roomInfo.Doors) { - var door = ActivityObject.Create(ActivityIdPrefix.Other + "0001"); - doorInfo.Door = door; - Vector2 offset; + // var door = ActivityObject.Create(ActivityIdPrefix.Other + "0001"); + // doorInfo.Door = door; + // Vector2 offset; + // switch (doorInfo.Direction) + // { + // case DoorDirection.E: + // offset = new Vector2(0.5f, 2); + // break; + // case DoorDirection.W: + // offset = new Vector2(-0.5f, 2); + // break; + // case DoorDirection.S: + // offset = new Vector2(2f, 1.5f); + // break; + // case DoorDirection.N: + // offset = new Vector2(2f, -0.5f); + // break; + // default: offset = new Vector2(); + // break; + // } + // door.Position = (doorInfo.OriginPosition + offset) * GameConfig.TileCellSize; + + RoomDoor door; switch (doorInfo.Direction) { case DoorDirection.E: - offset = new Vector2(0.5f, 2); + door = ActivityObject.Create(ActivityIdPrefix.Other + "door_e"); + door.Position = (doorInfo.OriginPosition + new Vector2(0.5f, 2)) * GameConfig.TileCellSize; + door.ZIndex = GameConfig.TopMapLayer; break; case DoorDirection.W: - offset = new Vector2(-0.5f, 2); + door = ActivityObject.Create(ActivityIdPrefix.Other + "door_w"); + door.Position = (doorInfo.OriginPosition + new Vector2(-0.5f, 2)) * GameConfig.TileCellSize; + door.ZIndex = GameConfig.TopMapLayer; break; case DoorDirection.S: - offset = new Vector2(2f, 1.5f); + door = ActivityObject.Create(ActivityIdPrefix.Other + "door_s"); + door.Position = (doorInfo.OriginPosition + new Vector2(2f, 1.5f)) * GameConfig.TileCellSize; + door.ZIndex = GameConfig.TopMapLayer; break; case DoorDirection.N: - offset = new Vector2(2f, -0.5f); + door = ActivityObject.Create(ActivityIdPrefix.Other + "door_n"); + door.Position = (doorInfo.OriginPosition + new Vector2(2f, -0.5f)) * GameConfig.TileCellSize; + door.ZIndex = GameConfig.MiddleMapLayer; break; - default: offset = new Vector2(); - break; + default: + return; } - door.Position = (doorInfo.OriginPosition + offset) * GameConfig.TileCellSize; + doorInfo.Door = door; door.Init(doorInfo); door.PutDown(RoomLayerEnum.NormalLayer, false); } @@ -303,16 +332,19 @@ var activeRoom = ActiveRoom; if (activeRoom != null)// && //activeRoom.IsSeclusion) { - if (activeRoom.IsCurrWaveOver()) //所有标记执行完成 + if (activeRoom.IsSeclusion) //房间处于关上状态 { - //存活敌人数量 - var count = ActiveAffiliation.FindIncludeItemsCount( - activityObject => activityObject.CollisionWithMask(PhysicsLayer.Enemy) - ); - GD.Print("当前房间存活数量: " + count); - if (count == 0) + if (activeRoom.IsCurrWaveOver()) //所有标记执行完成 { - activeRoom.OnClearRoom(); + //存活敌人数量 + var count = ActiveAffiliation.FindIncludeItemsCount( + activityObject => activityObject.CollisionWithMask(PhysicsLayer.Enemy) + ); + GD.Print("当前房间存活数量: " + count); + if (count == 0) + { + activeRoom.OnClearRoom(); + } } } } @@ -361,10 +393,10 @@ Utils.DrawNavigationPolygon(this, _roomStaticNavigationList.ToArray()); } //绘制房间区域 - if (_dungeonGenerator != null) - { - DrawRoomInfo(StartRoom); - } + // if (_dungeonGenerator != null) + // { + // DrawRoomInfo(StartRoom); + // } //绘制边缘线 } diff --git a/DungeonShooting_Godot/src/game/room/RoomDoor.cs b/DungeonShooting_Godot/src/game/room/RoomDoor.cs index 634e709..534d336 100644 --- a/DungeonShooting_Godot/src/game/room/RoomDoor.cs +++ b/DungeonShooting_Godot/src/game/room/RoomDoor.cs @@ -4,7 +4,11 @@ /// /// 房间的门, 门有两种状态, 打开和关闭 /// -[RegisterActivity(ActivityIdPrefix.Other + "0001", ResourcePath.prefab_map_RoomDoor_tscn)] +// [RegisterActivity(ActivityIdPrefix.Other + "0001", ResourcePath.prefab_map_RoomDoor_tscn)] +[RegisterActivity(ActivityIdPrefix.Other + "door_n", ResourcePath.prefab_map_RoomDoor_N_tscn)] +[RegisterActivity(ActivityIdPrefix.Other + "door_s", ResourcePath.prefab_map_RoomDoor_S_tscn)] +[RegisterActivity(ActivityIdPrefix.Other + "door_w", ResourcePath.prefab_map_RoomDoor_W_tscn)] +[RegisterActivity(ActivityIdPrefix.Other + "door_e", ResourcePath.prefab_map_RoomDoor_E_tscn)] public partial class RoomDoor : ActivityObject { /// @@ -27,30 +31,30 @@ _door = doorInfo; OpenDoor(); - switch (doorInfo.Direction) - { - case DoorDirection.E: - AnimatedSprite.Frame = 1; - AnimatedSprite.Position = new Vector2(0, -8); - Collision.Position = Vector2.Zero; - var collisionShape = (RectangleShape2D)Collision.Shape; - collisionShape.Size = new Vector2(14, 32); - break; - case DoorDirection.W: - AnimatedSprite.Frame = 1; - AnimatedSprite.Position = new Vector2(0, -8); - Collision.Position = Vector2.Zero; - var collisionShape2 = (RectangleShape2D)Collision.Shape; - collisionShape2.Size = new Vector2(14, 32); - break; - case DoorDirection.S: - AnimatedSprite.Position = new Vector2(0, -8); - break; - case DoorDirection.N: - ZIndex = GameConfig.MiddleMapLayer; - AnimatedSprite.Position = new Vector2(0, -8); - break; - } + // switch (doorInfo.Direction) + // { + // case DoorDirection.E: + // AnimatedSprite.Frame = 1; + // AnimatedSprite.Position = new Vector2(0, -8); + // Collision.Position = Vector2.Zero; + // var collisionShape = (RectangleShape2D)Collision.Shape; + // collisionShape.Size = new Vector2(14, 32); + // break; + // case DoorDirection.W: + // AnimatedSprite.Frame = 1; + // AnimatedSprite.Position = new Vector2(0, -8); + // Collision.Position = Vector2.Zero; + // var collisionShape2 = (RectangleShape2D)Collision.Shape; + // collisionShape2.Size = new Vector2(14, 32); + // break; + // case DoorDirection.S: + // AnimatedSprite.Position = new Vector2(0, -8); + // break; + // case DoorDirection.N: + // ZIndex = GameConfig.MiddleMapLayer; + // AnimatedSprite.Position = new Vector2(0, -8); + // break; + // } } /// @@ -59,7 +63,7 @@ public void OpenDoor() { IsClose = false; - Visible = false; + //Visible = false; Collision.Disabled = true; if (_door.Navigation != null) { @@ -68,6 +72,13 @@ _door.Navigation.CloseNavigationNode.Enabled = false; _door.Navigation.CloseNavigationNode.Visible = false; } + + if (AnimatedSprite.SpriteFrames.HasAnimation(AnimatorNames.OpenDoor)) + { + AnimatedSprite.Play(AnimatorNames.OpenDoor); + } + //调整门的层级 + ZIndex = GameConfig.FloorMapLayer; } /// @@ -76,7 +87,7 @@ public void CloseDoor() { IsClose = true; - Visible = true; + //Visible = true; Collision.Disabled = false; if (_door.Navigation != null) { @@ -85,5 +96,22 @@ _door.Navigation.CloseNavigationNode.Enabled = true; _door.Navigation.CloseNavigationNode.Visible = true; } + + if (AnimatedSprite.SpriteFrames.HasAnimation(AnimatorNames.CloseDoor)) + { + AnimatedSprite.Play(AnimatorNames.CloseDoor); + } + //调整门的层级 + switch (Direction) + { + case DoorDirection.E: + case DoorDirection.W: + case DoorDirection.S: + ZIndex = GameConfig.TopMapLayer; + break; + case DoorDirection.N: + ZIndex = GameConfig.MiddleMapLayer; + break; + } } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs b/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs index d749eaa..89a385b 100644 --- a/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs @@ -13,9 +13,8 @@ public override void OnHideUi() { - // 这里Godot4.1.dev2会报错, 应该是个bug - // L_ButtonList.L_Start.Instance.Pressed -= OnStartGameClick; - // L_ButtonList.L_Exit.Instance.Pressed -= OnExitClick; + L_ButtonList.L_Start.Instance.Pressed -= OnStartGameClick; + L_ButtonList.L_Exit.Instance.Pressed -= OnExitClick; }