diff --git a/DungeonShooting_Godot/DungeonShooting.csproj b/DungeonShooting_Godot/DungeonShooting.csproj index 3b5ab85..69ed320 100644 --- a/DungeonShooting_Godot/DungeonShooting.csproj +++ b/DungeonShooting_Godot/DungeonShooting.csproj @@ -1,4 +1,4 @@ - + net6.0 true diff --git a/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs b/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs index 7d6f487..2ba1f9f 100644 --- a/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs +++ b/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs @@ -60,18 +60,6 @@ "res://src/framework/map/mark/EnemyMark.cs", "res://addons/dungeonShooting_plugin/Mark.svg" ), - new CustomTypeInfo( - "WeaponMark", - "Node2D", - "res://src/framework/map/mark/WeaponMark.cs", - "res://addons/dungeonShooting_plugin/Mark.svg" - ), - new CustomTypeInfo( - "PlayerBirthMark", - "Node2D", - "res://src/framework/map/mark/PlayerBirthMark.cs", - "res://addons/dungeonShooting_plugin/Mark.svg" - ), }; public override void _Process(double delta) diff --git a/DungeonShooting_Godot/prefab/effect/BulletSmoke.tscn b/DungeonShooting_Godot/prefab/effect/BulletSmoke.tscn index 366e88e..22ba2ef 100644 --- a/DungeonShooting_Godot/prefab/effect/BulletSmoke.tscn +++ b/DungeonShooting_Godot/prefab/effect/BulletSmoke.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=10 format=3 uid="uid://dtr8nurmv2qtg"] +[gd_scene load_steps=9 format=3 uid="uid://dtr8nurmv2qtg"] [ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/effects/Smoke.png" id="1"] +[ext_resource type="Texture2D" uid="uid://bs1lan5uwxyfg" path="res://resource/curve/Curve1.tres" id="1_8pe88"] [ext_resource type="Texture2D" uid="uid://dwa4chrugc6b1" path="res://resource/effects/Collision.png" id="2"] [sub_resource type="CanvasItemMaterial" id="1"] @@ -9,13 +10,6 @@ particles_anim_v_frames = 1 particles_anim_loop = false -[sub_resource type="Curve" id="Curve_kve5o"] -_data = [Vector2(0.00645161, 0), 0.0, 0.0, 0, 0, Vector2(0.151613, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] -point_count = 3 - -[sub_resource type="CurveTexture" id="CurveTexture_yr1bt"] -curve = SubResource("Curve_kve5o") - [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_gpp81"] lifetime_randomness = 0.5 particle_flag_disable_z = true @@ -25,7 +19,7 @@ orbit_velocity_min = 0.0 orbit_velocity_max = 0.0 angle_max = 360.0 -scale_curve = SubResource("CurveTexture_yr1bt") +scale_curve = ExtResource("1_8pe88") color = Color(0.75, 0.75, 0.75, 0.470588) anim_offset_max = 1.0 diff --git a/DungeonShooting_Godot/prefab/effect/Effect1.tscn b/DungeonShooting_Godot/prefab/effect/Effect1.tscn new file mode 100644 index 0000000..17115a1 --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/Effect1.tscn @@ -0,0 +1,50 @@ +[gd_scene load_steps=8 format=3 uid="uid://crx1kqqrymmdb"] + +[ext_resource type="Material" uid="uid://c1chld6lkpgji" path="res://resource/material/SmokeParticleMaterial.tres" id="1_dxavj"] +[ext_resource type="Texture2D" uid="uid://bs1lan5uwxyfg" path="res://resource/curve/Curve1.tres" id="1_s60r7"] +[ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/effects/Smoke.png" id="2_3kyig"] +[ext_resource type="Texture2D" uid="uid://csud4e6kc3iku" path="res://resource/effects/Effect1.png" id="3_1mceu"] +[ext_resource type="Script" path="res://src/game/effects/Effect1.cs" id="3_ax5u4"] + +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_ipadv"] +particles_animation = true +particles_anim_h_frames = 3 +particles_anim_v_frames = 1 +particles_anim_loop = false + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_pgx85"] +particle_flag_align_y = true +particle_flag_disable_z = true +spread = 180.0 +gravity = Vector3(0, 0, 0) +initial_velocity_min = 40.0 +initial_velocity_max = 70.0 +orbit_velocity_min = 0.0 +orbit_velocity_max = 0.0 +scale_min = 0.2 +scale_max = 0.3 +scale_curve = ExtResource("1_s60r7") + +[node name="Effect1" type="GPUParticles2D"] +modulate = Color(0.760784, 0.760784, 0.760784, 0.533333) +z_index = 5 +material = SubResource("CanvasItemMaterial_ipadv") +emitting = false +amount = 10 +process_material = ExtResource("1_dxavj") +texture = ExtResource("2_3kyig") +lifetime = 0.7 +one_shot = true +explosiveness = 1.0 +fixed_fps = 20 +script = ExtResource("3_ax5u4") + +[node name="GPUParticles2D" type="GPUParticles2D" parent="."] +emitting = false +process_material = SubResource("ParticleProcessMaterial_pgx85") +texture = ExtResource("3_1mceu") +lifetime = 0.5 +one_shot = true +explosiveness = 1.0 +randomness = 0.5 +fixed_fps = 20 diff --git a/DungeonShooting_Godot/prefab/effect/activityObject/EnemyBloodEffect.tscn b/DungeonShooting_Godot/prefab/effect/activityObject/EnemyBloodEffect.tscn new file mode 100644 index 0000000..a96a14e --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/activityObject/EnemyBloodEffect.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=5 format=3 uid="uid://dv3pstsr56ux7"] + +[ext_resource type="Material" uid="uid://c1chld6lkpgji" path="res://resource/material/SmokeParticleMaterial.tres" id="1_wwb7t"] +[ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/effects/Smoke.png" id="2_5rrhq"] +[ext_resource type="Script" path="res://src/game/effects/AutoDestroyEffect.cs" id="3_cvfk3"] + +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_emuda"] +particles_animation = true +particles_anim_h_frames = 3 +particles_anim_v_frames = 1 +particles_anim_loop = false + +[node name="EnemyBloodEffect" type="GPUParticles2D"] +modulate = Color(0.811765, 0.0980392, 0.0980392, 0.627451) +material = SubResource("CanvasItemMaterial_emuda") +emitting = false +amount = 10 +process_material = ExtResource("1_wwb7t") +texture = ExtResource("2_5rrhq") +lifetime = 1.2 +one_shot = true +explosiveness = 1.0 +fixed_fps = 20 +script = ExtResource("3_cvfk3") +DelayTime = 1.5 diff --git a/DungeonShooting_Godot/prefab/effect/activityObject/EnemyDebris.tscn b/DungeonShooting_Godot/prefab/effect/activityObject/EnemyDebris.tscn new file mode 100644 index 0000000..58a339d --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/activityObject/EnemyDebris.tscn @@ -0,0 +1,191 @@ +[gd_scene load_steps=30 format=3 uid="uid://cj47w003yql4x"] + +[ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_h7exw"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_vlp01"] +[ext_resource type="Texture2D" uid="uid://d2f55lu60x64i" path="res://resource/effects/activityObject/Enemy0001_Debris.png" id="3_ohnrx"] +[ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/effects/Smoke.png" id="4_e30nm"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_s1mj2"] +resource_local_to_scene = true +shader = ExtResource("2_vlp01") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_08fn3"] +resource_local_to_scene = true +shader = ExtResource("2_vlp01") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_hqaf2"] +atlas = ExtResource("3_ohnrx") +region = Rect2(0, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_b55yq"] +atlas = ExtResource("3_ohnrx") +region = Rect2(8, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6ouxh"] +atlas = ExtResource("3_ohnrx") +region = Rect2(16, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sfr41"] +atlas = ExtResource("3_ohnrx") +region = Rect2(24, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j5qpi"] +atlas = ExtResource("3_ohnrx") +region = Rect2(32, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ltfhd"] +atlas = ExtResource("3_ohnrx") +region = Rect2(40, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_oh4q1"] +atlas = ExtResource("3_ohnrx") +region = Rect2(48, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ebvnk"] +atlas = ExtResource("3_ohnrx") +region = Rect2(56, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lboyj"] +atlas = ExtResource("3_ohnrx") +region = Rect2(64, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6qefr"] +atlas = ExtResource("3_ohnrx") +region = Rect2(72, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_aya5f"] +atlas = ExtResource("3_ohnrx") +region = Rect2(80, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_el804"] +atlas = ExtResource("3_ohnrx") +region = Rect2(88, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pha71"] +atlas = ExtResource("3_ohnrx") +region = Rect2(96, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ps4oc"] +atlas = ExtResource("3_ohnrx") +region = Rect2(104, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l8my6"] +atlas = ExtResource("3_ohnrx") +region = Rect2(112, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4jpot"] +atlas = ExtResource("3_ohnrx") +region = Rect2(120, 0, 8, 8) + +[sub_resource type="SpriteFrames" id="SpriteFrames_15g84"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_hqaf2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_b55yq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6ouxh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_sfr41") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j5qpi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ltfhd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_oh4q1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ebvnk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lboyj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6qefr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_aya5f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_el804") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pha71") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ps4oc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l8my6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4jpot") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_p3lv8"] +particles_animation = true +particles_anim_h_frames = 3 +particles_anim_v_frames = 1 +particles_anim_loop = false + +[sub_resource type="Gradient" id="Gradient_ryemi"] +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0.537255) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_orgu0"] +gradient = SubResource("Gradient_ryemi") + +[sub_resource type="Curve" id="Curve_21dxk"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.177419, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.0272727), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_rutlp"] +curve = SubResource("Curve_21dxk") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ku1mm"] +particle_flag_disable_z = true +gravity = Vector3(0, 0, 0) +orbit_velocity_min = 0.0 +orbit_velocity_max = 0.0 +angle_max = 360.0 +scale_min = 0.4 +scale_max = 1.5 +scale_curve = SubResource("CurveTexture_rutlp") +color = Color(0.811765, 0.0980392, 0.0980392, 0.627451) +color_ramp = SubResource("GradientTexture1D_orgu0") +anim_offset_max = 1.0 + +[node name="EnemyDebris" type="Node"] +script = ExtResource("1_h7exw") +collision_mask = 1 + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_s1mj2") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_08fn3") +sprite_frames = SubResource("SpriteFrames_15g84") + +[node name="Collision" type="CollisionShape2D" parent="."] + +[node name="GPUParticles2D" type="GPUParticles2D" parent="."] +material = SubResource("CanvasItemMaterial_p3lv8") +emitting = false +process_material = SubResource("ParticleProcessMaterial_ku1mm") +texture = ExtResource("4_e30nm") +fixed_fps = 20 diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor.tscn index a45d0e3..ce49453 100644 --- a/DungeonShooting_Godot/prefab/map/RoomDoor.tscn +++ b/DungeonShooting_Godot/prefab/map/RoomDoor.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=8 format=3 uid="uid://dl62yuh5q656a"] +[gd_scene load_steps=10 format=3] [ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_8es7a"] -[ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="2_d8jnk"] -[ext_resource type="Texture2D" uid="uid://uhhfgdhpk7i4" path="res://icon.png" id="3_ta10a"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_d8jnk"] +[ext_resource type="Texture2D" uid="uid://dviv44fhwvkb1" path="res://resource/sprite/map/door1_down.png" id="3_knmoy"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_x5aop"] resource_local_to_scene = true @@ -16,19 +16,31 @@ shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0 +[sub_resource type="AtlasTexture" id="AtlasTexture_wfl7i"] +atlas = ExtResource("3_knmoy") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j20kt"] +atlas = ExtResource("3_knmoy") +region = Rect2(32, 32, 16, 48) + [sub_resource type="SpriteFrames" id="SpriteFrames_ugstb"] animations = [{ "frames": [{ "duration": 1.0, -"texture": ExtResource("3_ta10a") +"texture": SubResource("AtlasTexture_wfl7i") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j20kt") }], "loop": true, "name": &"default", "speed": 5.0 }] -[sub_resource type="RectangleShape2D" id="RectangleShape2D_xgcls"] -size = Vector2(32, 16) +[sub_resource type="RectangleShape2D" id="RectangleShape2D_lvvwj"] +resource_local_to_scene = true +size = Vector2(32, 23) [node name="RoomDoor" type="Node"] script = ExtResource("1_8es7a") @@ -38,13 +50,13 @@ [node name="ShadowSprite" type="Sprite2D" parent="."] z_index = -1 material = SubResource("ShaderMaterial_x5aop") +position = Vector2(0, 8) [node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] material = SubResource("ShaderMaterial_f8vun") -position = Vector2(0, -16) -scale = Vector2(0.5, 0.25) +position = Vector2(0, -8) sprite_frames = SubResource("SpriteFrames_ugstb") [node name="Collision" type="CollisionShape2D" parent="."] -position = Vector2(0, -16) -shape = SubResource("RectangleShape2D_xgcls") +position = Vector2(0, -3.5) +shape = SubResource("RectangleShape2D_lvvwj") diff --git a/DungeonShooting_Godot/prefab/role/Enemy.tscn b/DungeonShooting_Godot/prefab/role/Enemy.tscn index 7c54d07..04a1f50 100644 --- a/DungeonShooting_Godot/prefab/role/Enemy.tscn +++ b/DungeonShooting_Godot/prefab/role/Enemy.tscn @@ -1,78 +1,78 @@ [gd_scene load_steps=20 format=3 uid="uid://dbrig6dq441wo"] [ext_resource type="PackedScene" uid="uid://b515ti0qinck8" path="res://prefab/role/Role.tscn" id="1_qkqsa"] -[ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="2_in1s7"] -[ext_resource type="Texture2D" uid="uid://un6gylhe011n" path="res://resource/sprite/role/role8.png" id="3_tk1tp"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_1ah5y"] +[ext_resource type="Texture2D" uid="uid://chd2vtesap5cf" path="res://resource/sprite/role/role1.png" id="3_tqhbo"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_8vxx6"] resource_local_to_scene = true -shader = ExtResource("2_in1s7") +shader = ExtResource("2_1ah5y") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1 [sub_resource type="ShaderMaterial" id="ShaderMaterial_k8mt5"] resource_local_to_scene = true -shader = ExtResource("2_in1s7") +shader = ExtResource("2_1ah5y") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0 -[sub_resource type="AtlasTexture" id="AtlasTexture_b4gmf"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_gx4d0"] +atlas = ExtResource("3_tqhbo") region = Rect2(0, 0, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_ps4o2"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_da1qy"] +atlas = ExtResource("3_tqhbo") region = Rect2(0, 24, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_00s75"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_qr6u5"] +atlas = ExtResource("3_tqhbo") region = Rect2(16, 24, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_ov7r3"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_yxi4p"] +atlas = ExtResource("3_tqhbo") region = Rect2(32, 24, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_7o5sg"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_1g0j1"] +atlas = ExtResource("3_tqhbo") region = Rect2(48, 24, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_3cf41"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_mqoog"] +atlas = ExtResource("3_tqhbo") region = Rect2(48, 48, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_ore1n"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_6n45h"] +atlas = ExtResource("3_tqhbo") region = Rect2(32, 48, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_0yx8e"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_7bfvr"] +atlas = ExtResource("3_tqhbo") region = Rect2(16, 48, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_v2had"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_jep37"] +atlas = ExtResource("3_tqhbo") region = Rect2(0, 48, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_myxvk"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_n0mff"] +atlas = ExtResource("3_tqhbo") region = Rect2(0, 48, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_t5tkd"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_snkia"] +atlas = ExtResource("3_tqhbo") region = Rect2(16, 48, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_ia68q"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_l4qvj"] +atlas = ExtResource("3_tqhbo") region = Rect2(32, 48, 16, 24) -[sub_resource type="AtlasTexture" id="AtlasTexture_ueb6d"] -atlas = ExtResource("3_tk1tp") +[sub_resource type="AtlasTexture" id="AtlasTexture_yxje3"] +atlas = ExtResource("3_tqhbo") region = Rect2(48, 48, 16, 24) [sub_resource type="SpriteFrames" id="SpriteFrames_m7t3e"] animations = [{ "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_b4gmf") +"texture": SubResource("AtlasTexture_gx4d0") }], "loop": true, "name": &"default", @@ -80,16 +80,16 @@ }, { "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_ps4o2") +"texture": SubResource("AtlasTexture_da1qy") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_00s75") +"texture": SubResource("AtlasTexture_qr6u5") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ov7r3") +"texture": SubResource("AtlasTexture_yxi4p") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_7o5sg") +"texture": SubResource("AtlasTexture_1g0j1") }], "loop": true, "name": &"idle", @@ -97,16 +97,16 @@ }, { "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_3cf41") +"texture": SubResource("AtlasTexture_mqoog") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ore1n") +"texture": SubResource("AtlasTexture_6n45h") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_0yx8e") +"texture": SubResource("AtlasTexture_7bfvr") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_v2had") +"texture": SubResource("AtlasTexture_jep37") }], "loop": true, "name": &"reverseRun", @@ -114,16 +114,16 @@ }, { "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_myxvk") +"texture": SubResource("AtlasTexture_n0mff") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_t5tkd") +"texture": SubResource("AtlasTexture_snkia") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ia68q") +"texture": SubResource("AtlasTexture_l4qvj") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ueb6d") +"texture": SubResource("AtlasTexture_yxje3") }], "loop": true, "name": &"run", @@ -140,6 +140,7 @@ [node name="AnimatedSprite" parent="." index="2"] material = SubResource("ShaderMaterial_k8mt5") sprite_frames = SubResource("SpriteFrames_m7t3e") +frame_progress = 0.877597 [node name="HurtArea" parent="." index="4"] visible = false diff --git a/DungeonShooting_Godot/prefab/role/Player.tscn b/DungeonShooting_Godot/prefab/role/Player.tscn index 994067e..016c4b5 100644 --- a/DungeonShooting_Godot/prefab/role/Player.tscn +++ b/DungeonShooting_Godot/prefab/role/Player.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=20 format=3 uid="uid://cdohv4xeirtuc"] +[gd_scene load_steps=20 format=3] [ext_resource type="PackedScene" uid="uid://b515ti0qinck8" path="res://prefab/role/Role.tscn" id="1"] -[ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="2_nvo1u"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_nvo1u"] [ext_resource type="Texture2D" uid="uid://bhwhhg2dfsr26" path="res://resource/sprite/role/role2.png" id="3_55mk2"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_vejn8"] diff --git a/DungeonShooting_Godot/prefab/role/Role.tscn b/DungeonShooting_Godot/prefab/role/Role.tscn index 4882f43..0b11811 100644 --- a/DungeonShooting_Godot/prefab/role/Role.tscn +++ b/DungeonShooting_Godot/prefab/role/Role.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=9 format=3 uid="uid://b515ti0qinck8"] +[gd_scene load_steps=9 format=3] [ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_hm41b"] -[ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="2_q6jwp"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_q6jwp"] [ext_resource type="Script" path="res://src/game/role/MountRotation.cs" id="4"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_v2kfw"] diff --git a/DungeonShooting_Godot/prefab/test/TestActivity.tscn b/DungeonShooting_Godot/prefab/test/TestActivity.tscn index 4f7ee6c..203f1e7 100644 --- a/DungeonShooting_Godot/prefab/test/TestActivity.tscn +++ b/DungeonShooting_Godot/prefab/test/TestActivity.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=7 format=3 uid="uid://bjf0e6nehg51j"] +[gd_scene load_steps=7 format=3] -[ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="1"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1"] [ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="2"] [ext_resource type="Texture2D" uid="uid://uhhfgdhpk7i4" path="res://icon.png" id="3"] + [sub_resource type="ShaderMaterial" id="ShaderMaterial_rxkv3"] resource_local_to_scene = true shader = ExtResource("1") diff --git a/DungeonShooting_Godot/prefab/weapon/Knife.tscn b/DungeonShooting_Godot/prefab/weapon/Knife.tscn index 471711e..c1b92fa 100644 --- a/DungeonShooting_Godot/prefab/weapon/Knife.tscn +++ b/DungeonShooting_Godot/prefab/weapon/Knife.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=8 format=3 uid="uid://cji4nrwabt4ky"] +[gd_scene load_steps=8 format=3] [ext_resource type="PackedScene" uid="uid://bcosbsgt7a7o3" path="res://prefab/weapon/Weapon.tscn" id="1_xk7sg"] -[ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="2_vwwhv"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_vwwhv"] [ext_resource type="Texture2D" uid="uid://bxhbsq0wb2yo1" path="res://resource/sprite/gun/knife1.png" id="3_s52oh"] [ext_resource type="PackedScene" path="res://prefab/FanCollisionShape.tscn" id="3_wdje6"] + [sub_resource type="ShaderMaterial" id="ShaderMaterial_o5ytq"] resource_local_to_scene = true shader = ExtResource("2_vwwhv") diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon.tscn index 7ad9039..139fef6 100644 --- a/DungeonShooting_Godot/prefab/weapon/Weapon.tscn +++ b/DungeonShooting_Godot/prefab/weapon/Weapon.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=9 format=3 uid="uid://bcosbsgt7a7o3"] +[gd_scene load_steps=9 format=3] -[ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="1"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1"] [ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_dtam7"] + [sub_resource type="ShaderMaterial" id="ShaderMaterial_cbiyh"] resource_local_to_scene = true shader = ExtResource("1") diff --git a/DungeonShooting_Godot/prefab/weapon/bullet/Bullet.tscn b/DungeonShooting_Godot/prefab/weapon/bullet/Bullet.tscn index 7f1d347..e0b78f3 100644 --- a/DungeonShooting_Godot/prefab/weapon/bullet/Bullet.tscn +++ b/DungeonShooting_Godot/prefab/weapon/bullet/Bullet.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=9 format=3 uid="uid://gaa31i7420h"] +[gd_scene load_steps=9 format=3] [ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_nwypj"] -[ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="2"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2"] [ext_resource type="Texture2D" uid="uid://bu0b11hiuecxy" path="res://resource/sprite/bullet/bullet.png" id="3"] + [sub_resource type="ShaderMaterial" id="ShaderMaterial_5a4f2"] resource_local_to_scene = true shader = ExtResource("2") diff --git a/DungeonShooting_Godot/prefab/weapon/shell/ShellCase.tscn b/DungeonShooting_Godot/prefab/weapon/shell/ShellCase.tscn index 0fda121..48d475e 100644 --- a/DungeonShooting_Godot/prefab/weapon/shell/ShellCase.tscn +++ b/DungeonShooting_Godot/prefab/weapon/shell/ShellCase.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=10 format=3 uid="uid://bj4yr6ru8nhwr"] +[gd_scene load_steps=7 format=3 uid="uid://bj4yr6ru8nhwr"] [ext_resource type="Texture2D" uid="uid://dto03bc2qbhnj" path="res://resource/sprite/shell/shellCase.png" id="1"] [ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_nmhqm"] -[ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="2"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_px12l"] resource_local_to_scene = true @@ -27,56 +27,6 @@ "speed": 5.0 }] -[sub_resource type="Animation" id="Animation_pfprw"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:visible") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_kjsto"] -resource_name = "flicker" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:visible") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.5, 0.6, 0.7, 0.8, 0.9, 1), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [true, true, false, true, false, true, false] -} -tracks/1/type = "method" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(1), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [], -"method": &"queue_free" -}] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_cpq4j"] -_data = { -"RESET": SubResource("Animation_pfprw"), -"flicker": SubResource("Animation_kjsto") -} - [node name="ShellCase" type="Node"] script = ExtResource("1_nmhqm") @@ -89,8 +39,3 @@ sprite_frames = SubResource("SpriteFrames_4huvy") [node name="Collision" type="CollisionShape2D" parent="."] - -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] -libraries = { -"": SubResource("AnimationLibrary_cpq4j") -} diff --git a/DungeonShooting_Godot/project.godot b/DungeonShooting_Godot/project.godot index 0713541..d16c3b7 100644 --- a/DungeonShooting_Godot/project.godot +++ b/DungeonShooting_Godot/project.godot @@ -12,7 +12,7 @@ config/name="DungeonShooting" run/main_scene="res://scene/Main.tscn" -config/features=PackedStringArray("4.0", "C#") +config/features=PackedStringArray("4.1", "C#") config/icon="res://icon.png" [debug] @@ -189,7 +189,6 @@ [rendering] textures/canvas_textures/default_texture_filter=0 -renderer/rendering_method="gl_compatibility" environment/defaults/default_clear_color=Color(0.109804, 0.0666667, 0.0901961, 1) 2d/snapping/use_gpu_pixel_snap=true environment/default_environment="res://default_env.tres" diff --git a/DungeonShooting_Godot/resource/curve/Curve1.tres b/DungeonShooting_Godot/resource/curve/Curve1.tres new file mode 100644 index 0000000..71aa695 --- /dev/null +++ b/DungeonShooting_Godot/resource/curve/Curve1.tres @@ -0,0 +1,8 @@ +[gd_resource type="CurveTexture" load_steps=2 format=3 uid="uid://bs1lan5uwxyfg"] + +[sub_resource type="Curve" id="Curve_kve5o"] +_data = [Vector2(0.00645161, 0), 0.0, 0.0, 0, 0, Vector2(0.151613, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 3 + +[resource] +curve = SubResource("Curve_kve5o") diff --git a/DungeonShooting_Godot/resource/effects/Effect1.png b/DungeonShooting_Godot/resource/effects/Effect1.png new file mode 100644 index 0000000..51ef9a9 --- /dev/null +++ b/DungeonShooting_Godot/resource/effects/Effect1.png Binary files differ diff --git a/DungeonShooting_Godot/resource/effects/Effect1.png.import b/DungeonShooting_Godot/resource/effects/Effect1.png.import new file mode 100644 index 0000000..f6bc5d2 --- /dev/null +++ b/DungeonShooting_Godot/resource/effects/Effect1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csud4e6kc3iku" +path="res://.godot/imported/Effect1.png-277a43c6763fd3e5c0967adefb26bf09.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/effects/Effect1.png" +dest_files=["res://.godot/imported/Effect1.png-277a43c6763fd3e5c0967adefb26bf09.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/DungeonShooting_Godot/resource/effects/activityObject/Enemy0001_Debris.png b/DungeonShooting_Godot/resource/effects/activityObject/Enemy0001_Debris.png new file mode 100644 index 0000000..1c4d212 --- /dev/null +++ b/DungeonShooting_Godot/resource/effects/activityObject/Enemy0001_Debris.png Binary files differ diff --git a/DungeonShooting_Godot/resource/effects/activityObject/Enemy0001_Debris.png.import b/DungeonShooting_Godot/resource/effects/activityObject/Enemy0001_Debris.png.import new file mode 100644 index 0000000..a522847 --- /dev/null +++ b/DungeonShooting_Godot/resource/effects/activityObject/Enemy0001_Debris.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2f55lu60x64i" +path="res://.godot/imported/Enemy0001_Debris.png-acec55b336255e10e72d7cc4a1ba1163.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/effects/activityObject/Enemy0001_Debris.png" +dest_files=["res://.godot/imported/Enemy0001_Debris.png-acec55b336255e10e72d7cc4a1ba1163.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/DungeonShooting_Godot/resource/map/RoomConfig.json b/DungeonShooting_Godot/resource/map/RoomConfig.json index 96ba25d..6500bfc 100644 --- a/DungeonShooting_Godot/resource/map/RoomConfig.json +++ b/DungeonShooting_Godot/resource/map/RoomConfig.json @@ -3,32 +3,8 @@ "GroupName": "testGroup", "BattleList": [ { - "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room1.tscn", - "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room1.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room2.tscn", - "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room2.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room3.tscn", - "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room3.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room4.tscn", - "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room4.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room5.tscn", - "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room5.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room6.tscn", - "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room6.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room7.tscn", - "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room7.json" + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room8.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room8.json" } ], "InletList": [ diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn deleted file mode 100644 index 365cd55..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn +++ /dev/null @@ -1,54 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://bxpcy34g7cmex"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_luio1"] -[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_2xk8s"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] - -[node name="Room1" type="TileMap"] -tile_set = ExtResource("1_luio1") -format = 2 -layer_0/tile_data = PackedInt32Array(196620, 0, 8, 131084, 0, 8, 65548, 0, 8, 12, 0, 8, -65524, 0, 8, -131060, 0, 8, -196596, 0, 8, -262132, 0, 8, 196619, 0, 8, 131083, 0, 8, 65547, 0, 8, 11, 0, 8, -65525, 0, 8, -131061, 0, 8, -196597, 0, 8, -262133, 0, 8, 196618, 0, 8, 131082, 0, 8, 65546, 0, 8, -131062, 0, 8, -196598, 0, 8, -262134, 0, 8, 196617, 0, 8, 131081, 0, 8, -196599, 0, 8, -262135, 0, 8, 196616, 0, 8, 131080, 0, 8, -196600, 0, 8, -262136, 0, 8, 196615, 0, 8, 131079, 0, 8, -196601, 0, 8, -262137, 0, 8, 196614, 0, 8, 131078, 0, 8, -196602, 0, 8, -262138, 0, 8, 196613, 0, 8, 131077, 0, 8, -196603, 0, 8, -262139, 0, 8, 196612, 0, 8, 131076, 0, 8, -196604, 0, 8, -262140, 0, 8, 196611, 0, 8, 131075, 0, 8, -196605, 0, 8, -262141, 0, 8, 196610, 0, 8, 131074, 0, 8, -196606, 0, 8, -262142, 0, 8, 196609, 0, 8, 131073, 0, 8, -196607, 0, 8, -262143, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, -196608, 0, 8, -262144, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, -131073, 0, 8, -196609, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -131074, 0, 8, -196610, 0, 8, -131075, 196608, 3, -196611, 196608, 3, -262147, 196608, 4, -262146, 131072, 7, -262145, 131072, 7, -65539, 196608, 3, -3, 196608, 3, 65533, 196608, 3, 131069, 196608, 3, 196605, 196608, 3, 262141, 196608, 3, 327679, 131072, 2, 327678, 131072, 2, 327677, 720896, 2, -327680, 131072, 7, 262144, 131072, 2, -327679, 131072, 7, 262145, 131072, 2, -327678, 131072, 7, 262146, 131072, 2, -327677, 131072, 7, 262147, 131072, 2, -327676, 131072, 7, 262148, 131072, 2, -327675, 131072, 7, 262149, 131072, 2, -327674, 131072, 7, 262150, 131072, 2, -327673, 131072, 7, 262151, 131072, 2, -327672, 131072, 7, 262152, 131072, 2, -327671, 131072, 7, 262153, 131072, 2, -327670, 131072, 7, 262154, 131072, 2, -327669, 131072, 7, 262155, 131072, 2, -327668, 131072, 7, 262156, 131072, 2, -262131, 65536, 3, -196595, 65536, 3, -327667, 65536, 4, -131059, 65536, 3, -65523, 65536, 3, 13, 65536, 3, 65549, 65536, 3, 131085, 65536, 3, 196621, 65536, 3, 262157, 851968, 2, 10, 0, 8, -65526, 0, 8, -131071, 65536, 2, -131070, 131072, 2, -131069, 131072, 2, -131068, 131072, 2, -131067, 131072, 2, -131066, 131072, 2, -131065, 131072, 2, -131064, 131072, 2, -131063, 196608, 2, -65527, 196608, 3, 9, 196608, 3, 65545, 196608, 7, 65537, 65536, 7, 65538, 131072, 7, 65539, 131072, 7, 65540, 131072, 7, 65541, 131072, 7, 65542, 131072, 7, 65543, 131072, 7, 65544, 131072, 7, -65535, 65536, 3, 1, 65536, 3) -script = ExtResource("dungeonRoomTemplate") - -[node name="EnemyMark" type="Node2D" parent="."] -position = Vector2(-9, -1) -script = ExtResource("3_2xk8s") -Weapon1Id = "0003" -Weapon1Ammo = 25 -Type = 3 -ItemId = "0001" -Layer = 1 -DelayTime = 1.0 -BirthRect = Vector2i(20, 100) - -[node name="EnemyMark2" type="Node2D" parent="."] -position = Vector2(183, 0) -script = ExtResource("3_2xk8s") -Weapon1Id = "0003" -Weapon1Ammo = 25 -Type = 3 -ItemId = "0001" -Layer = 1 -BirthRect = Vector2i(20, 100) - -[node name="EnemyMark3" type="Node2D" parent="."] -position = Vector2(88, -48) -script = ExtResource("3_2xk8s") -Weapon1Id = "0002" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -BirthRect = Vector2i(150, 10) - -[node name="EnemyMark4" type="Node2D" parent="."] -position = Vector2(90, 49) -script = ExtResource("3_2xk8s") -Weapon1Id = "0002" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -BirthRect = Vector2i(150, 10) diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room2.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room2.tscn deleted file mode 100644 index 7a06fff..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room2.tscn +++ /dev/null @@ -1,66 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://bual5tyxahj1u"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_u22xh"] -[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_tgvyr"] -[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_x0odx"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] - -[node name="Room2" type="TileMap"] -tile_set = ExtResource("1_u22xh") -format = 2 -layer_0/tile_data = PackedInt32Array(589840, 0, 8, 524304, 0, 8, 458768, 0, 8, 393232, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 131088, 0, 8, 65552, 0, 8, 16, 0, 8, -65520, 0, 8, -131056, 0, 8, 589839, 0, 8, 524303, 0, 8, 458767, 0, 8, 393231, 0, 8, 327695, 0, 8, 262159, 0, 8, 196623, 0, 8, 131087, 0, 8, 65551, 0, 8, 15, 0, 8, -65521, 0, 8, -131057, 0, 8, 589838, 0, 8, 524302, 0, 8, 458766, 0, 8, 393230, 0, 8, 327694, 0, 8, 262158, 0, 8, 196622, 0, 8, 131086, 0, 8, 65550, 0, 8, 14, 0, 8, -65522, 0, 8, -131058, 0, 8, 589837, 0, 8, 524301, 0, 8, 458765, 0, 8, 393229, 0, 8, 327693, 0, 8, 262157, 0, 8, 196621, 0, 8, 131085, 0, 8, 65549, 0, 8, 13, 0, 8, -65523, 0, 8, -131059, 0, 8, 589836, 0, 8, 524300, 0, 8, 458764, 0, 8, 393228, 0, 8, 589835, 0, 8, 524299, 0, 8, 458763, 0, 8, 393227, 0, 8, 589834, 0, 8, 524298, 0, 8, 458762, 0, 8, 393226, 0, 8, 589833, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 589832, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, -65528, 0, 8, -131064, 0, 8, 589831, 0, 8, 524295, 0, 8, 458759, 0, 8, 393223, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, -65529, 0, 8, -131065, 0, 8, 589830, 0, 8, 524294, 0, 8, 458758, 0, 8, 393222, 0, 8, 327686, 0, 8, 262150, 0, 8, 196614, 0, 8, 131078, 0, 8, 65542, 0, 8, 6, 0, 8, -65530, 0, 8, -131066, 0, 8, 589829, 0, 8, 524293, 0, 8, 458757, 0, 8, 393221, 0, 8, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, -65531, 0, 8, -131067, 0, 8, 589828, 0, 8, 524292, 0, 8, 458756, 0, 8, 393220, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, -131068, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, -65533, 0, 8, -131069, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, -65534, 0, 8, -131070, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, -131071, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, 655359, 0, 8, 589823, 0, 8, 524287, 0, 8, 458751, 0, 8, 393215, 0, 8, 327679, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, 655358, 0, 8, 589822, 0, 8, 524286, 0, 8, 458750, 0, 8, 393214, 0, 8, 327678, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, 655357, 0, 8, 589821, 0, 8, 524285, 0, 8, 458749, 0, 8, 393213, 0, 8, 327677, 0, 8, 262141, 0, 8, 196605, 0, 8, 131069, 0, 8, 65533, 0, 8, -3, 0, 8, -65539, 0, 8, 655356, 0, 8, 589820, 0, 8, 524284, 0, 8, 458748, 0, 8, 393212, 0, 8, 327676, 0, 8, 262140, 0, 8, 196604, 0, 8, 131068, 0, 8, 65532, 0, 8, -4, 0, 8, -65540, 0, 8, -5, 196608, 3, -65541, 196608, 3, -131077, 196608, 4, -131076, 131072, 7, -131075, 131072, 7, 65531, 196608, 3, 131067, 196608, 3, 196603, 196608, 3, 262139, 196608, 3, 327675, 196608, 3, 393211, 196608, 3, 458747, 196608, 3, 524283, 196608, 3, 589819, 196608, 3, 655355, 196608, 3, 720893, 131072, 2, 720892, 131072, 2, 720891, 720896, 2, -131074, 131072, 7, 720894, 131072, 2, -131073, 131072, 7, 720895, 131072, 2, -196608, 131072, 7, -196607, 131072, 7, -196606, 131072, 7, -196605, 131072, 7, -196604, 131072, 7, 655364, 131072, 2, -196603, 131072, 7, 655365, 131072, 2, -196602, 131072, 7, 655366, 131072, 2, -196601, 131072, 7, 655367, 131072, 2, -196600, 131072, 7, 655368, 131072, 2, 655369, 131072, 2, 655370, 131072, 2, 655371, 131072, 2, 655372, 131072, 2, -196595, 131072, 7, 655373, 131072, 2, -196594, 131072, 7, 655374, 131072, 2, -196593, 131072, 7, 655375, 131072, 2, -196592, 131072, 7, 655376, 131072, 2, -131055, 65536, 3, -65519, 65536, 3, -196591, 65536, 4, 17, 65536, 3, 65553, 65536, 3, 131089, 65536, 3, 196625, 65536, 3, 262161, 65536, 3, 327697, 65536, 3, 393233, 65536, 3, 458769, 65536, 3, 524305, 65536, 3, 589841, 65536, 3, 655377, 851968, 2, 327691, 0, 8, 327692, 0, 8, 327690, 0, 8, 327689, 0, 8, 262153, 65536, 7, 262154, 131072, 7, 262155, 131072, 7, 262156, 196608, 7, -131063, 65536, 3, -65527, 65536, 3, -196599, 65536, 4, 9, 65536, 3, 65545, 65536, 3, 131081, 65536, 3, 196617, 65536, 3, -65524, 196608, 3, -131060, 196608, 3, -196596, 196608, 4, 12, 196608, 3, 65548, 196608, 3, 131084, 196608, 3, 196620, 196608, 3, 196608, 65536, 2, 196609, 131072, 2, 196610, 131072, 2, 196611, 196608, 2, 262147, 196608, 3, 327683, 196608, 3, 393219, 196608, 3, 458755, 196608, 3, 524291, 196608, 3, 589827, 196608, 3, 655363, 720896, 2, 262144, 65536, 3, 327680, 65536, 3, 393216, 65536, 3, 458752, 65536, 3, 524288, 65536, 3, 589824, 65536, 3, 655360, 851968, 2) -script = ExtResource("dungeonRoomTemplate") - -[node name="EnemyMark" type="Node2D" parent="."] -position = Vector2(-23, 7) -script = ExtResource("3_tgvyr") -Type = 3 -ItemId = "0001" -Layer = 1 -BirthRect = Vector2i(50, 50) - -[node name="EnemyMark2" type="Node2D" parent="."] -position = Vector2(232, 119) -script = ExtResource("3_tgvyr") -Type = 3 -ItemId = "0001" -Layer = 1 -BirthRect = Vector2i(50, 50) - -[node name="WeaponMark" type="Node2D" parent="."] -position = Vector2(105, 45) -script = ExtResource("4_x0odx") -CurrAmmon = 30 -Type = 4 -ItemId = "0001" -DelayTime = 1.0 -Altitude = 8 - -[node name="WeaponMark2" type="Node2D" parent="."] -position = Vector2(106, 103) -script = ExtResource("4_x0odx") -CurrAmmon = 15 -Type = 4 -ItemId = "0002" -DelayTime = 1.0 -Altitude = 8 - -[node name="EnemyMark3" type="Node2D" parent="."] -position = Vector2(102, 8) -script = ExtResource("3_tgvyr") -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -DelayTime = 1.0 -BirthRect = Vector2i(50, 50) - -[node name="EnemyMark4" type="Node2D" parent="."] -position = Vector2(103, 121) -script = ExtResource("3_tgvyr") -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -DelayTime = 2.0 -BirthRect = Vector2i(50, 50) diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn deleted file mode 100644 index 3907e22..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn +++ /dev/null @@ -1,59 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://c83qc7utiy3pd"] - -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="1_n5qca"] -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_ngr66"] -[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_jwvnp"] -[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_6je2e"] - -[node name="Room3" type="TileMap"] -tile_set = ExtResource("1_ngr66") -format = 2 -layer_0/tile_data = PackedInt32Array(196613, 196608, 4, 262149, 196608, 3, 524293, 196608, 3, 589829, 196608, 3, 655365, 196608, 3, 720901, 196608, 3, 786437, 196608, 3, 1048581, 196608, 3, 1114117, 196608, 3, 1179653, 196608, 3, 1245189, 196608, 3, 1310725, 196608, 3, 196614, 131072, 7, 262150, 0, 8, 524294, 0, 8, 589830, 0, 8, 655366, 0, 8, 720902, 0, 8, 786438, 0, 8, 1048582, 0, 8, 1114118, 0, 8, 1179654, 0, 8, 1245190, 0, 8, 1310726, 0, 8, 196615, 131072, 7, 262151, 0, 8, 524295, 0, 8, 589831, 0, 8, 655367, 0, 8, 720903, 0, 8, 786439, 0, 8, 1048583, 0, 8, 1114119, 0, 8, 1179655, 0, 8, 1245191, 0, 8, 1310727, 0, 8, 196616, 131072, 7, 262152, 0, 8, 327688, 0, 8, 393224, 0, 8, 458760, 0, 8, 524296, 0, 8, 589832, 0, 8, 655368, 0, 8, 720904, 0, 8, 786440, 0, 8, 851976, 0, 8, 917512, 0, 8, 983048, 0, 8, 1048584, 0, 8, 1114120, 0, 8, 1179656, 0, 8, 1245192, 0, 8, 1310728, 0, 8, 196617, 131072, 7, 262153, 0, 8, 327689, 0, 8, 393225, 0, 8, 458761, 65536, 2, 524297, 65536, 3, 589833, 65536, 3, 655369, 65536, 3, 720905, 65536, 7, 786441, 0, 8, 851977, 0, 8, 917513, 0, 8, 983049, 65536, 2, 1048585, 65536, 3, 1114121, 65536, 3, 1179657, 65536, 3, 1245193, 65536, 7, 1310729, 0, 8, 196618, 131072, 7, 262154, 0, 8, 327690, 0, 8, 393226, 0, 8, 458762, 131072, 2, 720906, 131072, 7, 786442, 0, 8, 851978, 0, 8, 917514, 0, 8, 983050, 131072, 2, 1245194, 131072, 7, 1310730, 0, 8, 196619, 131072, 7, 262155, 0, 8, 327691, 0, 8, 393227, 0, 8, 458763, 131072, 2, 720907, 131072, 7, 786443, 0, 8, 851979, 0, 8, 917515, 0, 8, 983051, 131072, 2, 1245195, 131072, 7, 1310731, 0, 8, 196620, 131072, 7, 262156, 0, 8, 327692, 0, 8, 393228, 0, 8, 458764, 131072, 2, 720908, 131072, 7, 786444, 0, 8, 851980, 0, 8, 917516, 0, 8, 983052, 131072, 2, 1245196, 131072, 7, 1310732, 0, 8, 196621, 131072, 7, 262157, 0, 8, 524301, 196608, 3, 589837, 196608, 3, 655373, 196608, 3, 720909, 196608, 7, 786445, 0, 8, 1048589, 196608, 3, 1114125, 196608, 3, 1179661, 196608, 3, 1245197, 196608, 7, 1310733, 0, 8, 196622, 131072, 7, 262158, 0, 8, 524302, 0, 8, 589838, 0, 8, 655374, 0, 8, 720910, 0, 8, 786446, 0, 8, 1048590, 0, 8, 1114126, 0, 8, 1179662, 0, 8, 1245198, 0, 8, 1310734, 0, 8, 196623, 131072, 7, 262159, 0, 8, 524303, 0, 8, 589839, 0, 8, 655375, 0, 8, 720911, 0, 8, 786447, 0, 8, 1048591, 0, 8, 1114127, 0, 8, 1179663, 0, 8, 1245199, 0, 8, 1310735, 0, 8, 196624, 131072, 7, 262160, 0, 8, 327696, 0, 8, 393232, 0, 8, 458768, 0, 8, 524304, 0, 8, 589840, 0, 8, 655376, 0, 8, 720912, 0, 8, 786448, 0, 8, 851984, 0, 8, 917520, 0, 8, 983056, 0, 8, 1048592, 0, 8, 1114128, 0, 8, 1179664, 0, 8, 1245200, 0, 8, 1310736, 0, 8, 196625, 131072, 7, 262161, 0, 8, 327697, 0, 8, 393233, 0, 8, 458769, 65536, 2, 524305, 65536, 3, 589841, 65536, 3, 655377, 65536, 3, 720913, 65536, 7, 786449, 0, 8, 851985, 0, 8, 917521, 0, 8, 983057, 65536, 2, 1048593, 65536, 3, 1114129, 65536, 3, 1179665, 65536, 3, 1245201, 65536, 7, 1310737, 0, 8, 196626, 131072, 7, 262162, 0, 8, 327698, 0, 8, 393234, 0, 8, 458770, 131072, 2, 720914, 131072, 7, 786450, 0, 8, 851986, 0, 8, 917522, 0, 8, 983058, 131072, 2, 1245202, 131072, 7, 1310738, 0, 8, 196627, 131072, 7, 262163, 0, 8, 327699, 0, 8, 393235, 0, 8, 458771, 131072, 2, 720915, 131072, 7, 786451, 0, 8, 851987, 0, 8, 917523, 0, 8, 983059, 131072, 2, 1245203, 131072, 7, 1310739, 0, 8, 196628, 131072, 7, 262164, 0, 8, 327700, 0, 8, 393236, 0, 8, 458772, 131072, 2, 720916, 131072, 7, 786452, 0, 8, 851988, 0, 8, 917524, 0, 8, 983060, 131072, 2, 1245204, 131072, 7, 1310740, 0, 8, 327685, 196608, 3, 393221, 196608, 3, 458757, 196608, 3, 851973, 196608, 3, 917509, 196608, 3, 983045, 196608, 3, 1376261, 196608, 3, 1441797, 196608, 3, 1507333, 720896, 2, 327686, 0, 8, 393222, 0, 8, 458758, 0, 8, 851974, 0, 8, 917510, 0, 8, 983046, 0, 8, 1376262, 0, 8, 1441798, 0, 8, 1507334, 131072, 2, 327687, 0, 8, 393223, 0, 8, 458759, 0, 8, 851975, 0, 8, 917511, 0, 8, 983047, 0, 8, 1376263, 0, 8, 1441799, 0, 8, 1507335, 131072, 2, 1376264, 0, 8, 1441800, 0, 8, 1507336, 131072, 2, 1376265, 0, 8, 1441801, 0, 8, 1507337, 131072, 2, 1376266, 0, 8, 1441802, 0, 8, 1507338, 131072, 2, 1376267, 0, 8, 1441803, 0, 8, 1507339, 131072, 2, 1376268, 0, 8, 1441804, 0, 8, 1507340, 131072, 2, 327693, 0, 8, 393229, 0, 8, 458765, 196608, 2, 851981, 0, 8, 917517, 0, 8, 983053, 196608, 2, 1376269, 0, 8, 1441805, 0, 8, 1507341, 131072, 2, 327694, 0, 8, 393230, 0, 8, 458766, 0, 8, 851982, 0, 8, 917518, 0, 8, 983054, 0, 8, 1376270, 0, 8, 1441806, 0, 8, 1507342, 131072, 2, 327695, 0, 8, 393231, 0, 8, 458767, 0, 8, 851983, 0, 8, 917519, 0, 8, 983055, 0, 8, 1376271, 0, 8, 1441807, 0, 8, 1507343, 131072, 2, 1376272, 0, 8, 1441808, 0, 8, 1507344, 131072, 2, 1376273, 0, 8, 1441809, 0, 8, 1507345, 131072, 2, 1376274, 0, 8, 1441810, 0, 8, 1507346, 131072, 2, 1376275, 0, 8, 1441811, 0, 8, 1507347, 131072, 2, 1376276, 0, 8, 1441812, 0, 8, 1507348, 131072, 2, 196629, 131072, 7, 262165, 0, 8, 327701, 0, 8, 393237, 0, 8, 458773, 196608, 2, 524309, 196608, 3, 589845, 196608, 3, 655381, 196608, 3, 720917, 196608, 7, 786453, 0, 8, 851989, 0, 8, 917525, 0, 8, 983061, 196608, 2, 1048597, 196608, 3, 1114133, 196608, 3, 1179669, 196608, 3, 1245205, 196608, 7, 1310741, 0, 8, 1376277, 0, 8, 1441813, 0, 8, 1507349, 131072, 2, 196630, 131072, 7, 262166, 0, 8, 327702, 0, 8, 393238, 0, 8, 458774, 0, 8, 524310, 0, 8, 589846, 0, 8, 655382, 0, 8, 720918, 0, 8, 786454, 0, 8, 851990, 0, 8, 917526, 0, 8, 983062, 0, 8, 1048598, 0, 8, 1114134, 0, 8, 1179670, 0, 8, 1245206, 0, 8, 1310742, 0, 8, 1376278, 0, 8, 1441814, 0, 8, 1507350, 131072, 2, 196631, 131072, 7, 262167, 0, 8, 327703, 0, 8, 393239, 0, 8, 458775, 0, 8, 524311, 0, 8, 589847, 0, 8, 655383, 0, 8, 720919, 0, 8, 786455, 0, 8, 851991, 0, 8, 917527, 0, 8, 983063, 0, 8, 1048599, 0, 8, 1114135, 0, 8, 1179671, 0, 8, 1245207, 0, 8, 1310743, 0, 8, 1376279, 0, 8, 1441815, 0, 8, 1507351, 131072, 2, 196632, 131072, 7, 262168, 0, 8, 327704, 0, 8, 393240, 0, 8, 458776, 0, 8, 524312, 0, 8, 589848, 0, 8, 655384, 0, 8, 720920, 0, 8, 786456, 0, 8, 851992, 0, 8, 917528, 0, 8, 983064, 0, 8, 1048600, 0, 8, 1114136, 0, 8, 1179672, 0, 8, 1245208, 0, 8, 1310744, 0, 8, 1376280, 0, 8, 1441816, 0, 8, 1507352, 131072, 2, 196633, 65536, 4, 262169, 65536, 3, 327705, 65536, 3, 393241, 65536, 3, 458777, 65536, 3, 524313, 65536, 3, 589849, 65536, 3, 655385, 65536, 3, 720921, 65536, 3, 786457, 65536, 3, 851993, 65536, 3, 917529, 65536, 3, 983065, 65536, 3, 1048601, 65536, 3, 1114137, 65536, 3, 1179673, 65536, 3, 1245209, 65536, 3, 1310745, 65536, 3, 1376281, 65536, 3, 1441817, 65536, 3, 1507353, 851968, 2) -script = ExtResource("1_n5qca") - -[node name="EnemyMark" type="Node2D" parent="."] -position = Vector2(230, 215) -script = ExtResource("3_jwvnp") -Type = 3 -ItemId = "0001" -Layer = 1 -BirthRect = Vector2i(200, 20) -DrawColor = Color(1, 0, 0, 1) - -[node name="EnemyMark2" type="Node2D" parent="."] -position = Vector2(261, 217) -script = ExtResource("3_jwvnp") -Type = 3 -ItemId = "0001" -Layer = 1 -BirthRect = Vector2i(200, 20) - -[node name="WeaponMark" type="Node2D" parent="."] -position = Vector2(248, 160) -script = ExtResource("4_6je2e") -ResidueAmmo = 12 -Type = 4 -ItemId = "0002" -DrawColor = Color(0, 0, 1, 1) -Altitude = 16 - -[node name="WeaponMark2" type="Node2D" parent="."] -position = Vector2(249, 268) -script = ExtResource("4_6je2e") -ResidueAmmo = 7 -Type = 4 -ItemId = "0003" -DrawColor = Color(0, 0, 1, 1) -Altitude = 16 - -[node name="EnemyMark3" type="Node2D" parent="."] -position = Vector2(246, 215) -script = ExtResource("3_jwvnp") -Weapon1Id = "0001" -Weapon1Ammo = 30 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -BirthRect = Vector2i(200, 20) -DrawColor = Color(1, 0, 0, 1) diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn deleted file mode 100644 index 3bf0a43..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn +++ /dev/null @@ -1,82 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://b8wy4ni1nkrvp"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_pxj2g"] -[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_k574h"] -[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_5hiyo"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] - -[node name="Room4" type="TileMap"] -tile_set = ExtResource("1_pxj2g") -format = 2 -layer_0/tile_data = PackedInt32Array(1179686, 0, 8, 1114150, 0, 8, 1048614, 0, 8, 983078, 0, 8, 917542, 0, 8, 852006, 0, 8, 786470, 0, 8, 720934, 0, 8, 655398, 0, 8, 589862, 0, 8, 524326, 0, 8, 458790, 0, 8, 1179685, 0, 8, 1114149, 0, 8, 1048613, 0, 8, 983077, 0, 8, 917541, 0, 8, 852005, 0, 8, 786469, 0, 8, 720933, 0, 8, 655397, 0, 8, 589861, 0, 8, 524325, 0, 8, 458789, 0, 8, 1179684, 0, 8, 1114148, 0, 8, 1048612, 0, 8, 983076, 0, 8, 917540, 0, 8, 852004, 0, 8, 786468, 0, 8, 720932, 0, 8, 655396, 0, 8, 589860, 0, 8, 524324, 0, 8, 458788, 0, 8, 1179683, 0, 8, 1114147, 0, 8, 1048611, 0, 8, 983075, 0, 8, 917539, 0, 8, 852003, 0, 8, 786467, 0, 8, 720931, 0, 8, 655395, 0, 8, 589859, 0, 8, 524323, 0, 8, 458787, 0, 8, 1179682, 0, 8, 1114146, 0, 8, 1048610, 0, 8, 983074, 0, 8, 917538, 0, 8, 852002, 0, 8, 786466, 0, 8, 720930, 0, 8, 655394, 0, 8, 589858, 0, 8, 524322, 0, 8, 458786, 0, 8, 1507361, 0, 8, 1441825, 0, 8, 1376289, 0, 8, 1310753, 0, 8, 1245217, 0, 8, 1179681, 0, 8, 1114145, 0, 8, 1048609, 0, 8, 983073, 0, 8, 917537, 0, 8, 852001, 0, 8, 786465, 0, 8, 720929, 0, 8, 655393, 0, 8, 589857, 0, 8, 524321, 0, 8, 458785, 0, 8, 393249, 0, 8, 327713, 0, 8, 262177, 0, 8, 196641, 0, 8, 131105, 0, 8, 1507360, 0, 8, 1441824, 0, 8, 1376288, 0, 8, 1310752, 0, 8, 1245216, 0, 8, 1179680, 0, 8, 1114144, 0, 8, 1048608, 0, 8, 983072, 0, 8, 917536, 0, 8, 852000, 0, 8, 786464, 0, 8, 720928, 0, 8, 655392, 0, 8, 589856, 0, 8, 524320, 0, 8, 458784, 0, 8, 393248, 0, 8, 327712, 0, 8, 262176, 0, 8, 196640, 0, 8, 131104, 0, 8, 1507359, 0, 8, 1441823, 0, 8, 1376287, 0, 8, 1310751, 0, 8, 1245215, 0, 8, 1179679, 0, 8, 1114143, 0, 8, 1048607, 0, 8, 983071, 0, 8, 917535, 0, 8, 851999, 0, 8, 786463, 0, 8, 720927, 0, 8, 655391, 0, 8, 589855, 0, 8, 524319, 0, 8, 458783, 0, 8, 393247, 0, 8, 327711, 0, 8, 262175, 0, 8, 196639, 0, 8, 131103, 0, 8, 1507358, 0, 8, 1441822, 0, 8, 1376286, 0, 8, 1310750, 0, 8, 1245214, 0, 8, 1179678, 0, 8, 1114142, 0, 8, 1048606, 0, 8, 983070, 0, 8, 917534, 0, 8, 851998, 0, 8, 786462, 0, 8, 720926, 0, 8, 655390, 0, 8, 589854, 0, 8, 524318, 0, 8, 458782, 0, 8, 393246, 0, 8, 327710, 0, 8, 262174, 0, 8, 196638, 0, 8, 131102, 0, 8, 1507357, 0, 8, 1441821, 0, 8, 1376285, 0, 8, 1310749, 0, 8, 1245213, 0, 8, 1179677, 0, 8, 1114141, 0, 8, 1048605, 0, 8, 983069, 0, 8, 917533, 0, 8, 851997, 0, 8, 786461, 0, 8, 720925, 0, 8, 655389, 0, 8, 589853, 0, 8, 524317, 0, 8, 458781, 0, 8, 393245, 0, 8, 327709, 0, 8, 262173, 0, 8, 196637, 0, 8, 131101, 0, 8, 1507356, 0, 8, 1441820, 0, 8, 1376284, 0, 8, 1310748, 0, 8, 1245212, 0, 8, 1179676, 0, 8, 1114140, 0, 8, 1048604, 0, 8, 983068, 0, 8, 917532, 0, 8, 851996, 0, 8, 786460, 0, 8, 720924, 0, 8, 655388, 0, 8, 589852, 0, 8, 524316, 0, 8, 458780, 0, 8, 393244, 0, 8, 327708, 0, 8, 262172, 0, 8, 196636, 0, 8, 131100, 0, 8, 1507355, 0, 8, 1441819, 0, 8, 1376283, 0, 8, 1310747, 0, 8, 1245211, 0, 8, 1179675, 0, 8, 1114139, 0, 8, 1048603, 0, 8, 983067, 0, 8, 917531, 0, 8, 851995, 0, 8, 786459, 0, 8, 720923, 0, 8, 655387, 0, 8, 589851, 0, 8, 524315, 0, 8, 458779, 0, 8, 393243, 0, 8, 327707, 0, 8, 262171, 0, 8, 196635, 0, 8, 131099, 0, 8, 1507354, 0, 8, 1441818, 0, 8, 1376282, 0, 8, 1310746, 0, 8, 1245210, 0, 8, 1179674, 0, 8, 1114138, 0, 8, 1048602, 0, 8, 983066, 0, 8, 917530, 0, 8, 851994, 0, 8, 786458, 0, 8, 720922, 0, 8, 655386, 0, 8, 589850, 0, 8, 524314, 0, 8, 458778, 0, 8, 393242, 0, 8, 327706, 0, 8, 262170, 0, 8, 196634, 0, 8, 131098, 0, 8, 1507353, 0, 8, 1441817, 0, 8, 1376281, 0, 8, 1310745, 0, 8, 1245209, 0, 8, 1179673, 0, 8, 1114137, 0, 8, 1048601, 0, 8, 983065, 0, 8, 917529, 0, 8, 851993, 0, 8, 786457, 0, 8, 720921, 0, 8, 655385, 0, 8, 589849, 0, 8, 524313, 0, 8, 458777, 0, 8, 393241, 0, 8, 327705, 0, 8, 262169, 0, 8, 196633, 0, 8, 131097, 0, 8, 917528, 0, 8, 851992, 0, 8, 786456, 0, 8, 720920, 0, 8, 655384, 0, 8, 917527, 0, 8, 851991, 0, 8, 786455, 0, 8, 720919, 0, 8, 655383, 0, 8, 917526, 0, 8, 851990, 0, 8, 786454, 0, 8, 720918, 0, 8, 655382, 0, 8, 917525, 0, 8, 851989, 0, 8, 786453, 0, 8, 720917, 0, 8, 655381, 0, 8, 917524, 0, 8, 851988, 0, 8, 786452, 0, 8, 720916, 0, 8, 655380, 0, 8, 917523, 0, 8, 851987, 0, 8, 786451, 0, 8, 720915, 0, 8, 655379, 0, 8, 917522, 0, 8, 851986, 0, 8, 786450, 0, 8, 720914, 0, 8, 655378, 0, 8, 917521, 0, 8, 851985, 0, 8, 786449, 0, 8, 720913, 0, 8, 655377, 0, 8, 917520, 0, 8, 851984, 0, 8, 786448, 0, 8, 720912, 0, 8, 655376, 0, 8, 589840, 0, 8, 524304, 0, 8, 458768, 0, 8, 393232, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 131088, 0, 8, 1507343, 0, 8, 1441807, 0, 8, 1376271, 0, 8, 1310735, 0, 8, 1245199, 0, 8, 1179663, 0, 8, 1114127, 0, 8, 1048591, 0, 8, 983055, 0, 8, 917519, 0, 8, 851983, 0, 8, 786447, 0, 8, 720911, 0, 8, 655375, 0, 8, 589839, 0, 8, 524303, 0, 8, 458767, 0, 8, 393231, 0, 8, 327695, 0, 8, 262159, 0, 8, 196623, 0, 8, 131087, 0, 8, 1507342, 0, 8, 1441806, 0, 8, 1376270, 0, 8, 1310734, 0, 8, 1245198, 0, 8, 1179662, 0, 8, 1114126, 0, 8, 1048590, 0, 8, 983054, 0, 8, 917518, 0, 8, 851982, 0, 8, 786446, 0, 8, 720910, 0, 8, 655374, 0, 8, 589838, 0, 8, 524302, 0, 8, 458766, 0, 8, 393230, 0, 8, 327694, 0, 8, 262158, 0, 8, 196622, 0, 8, 131086, 0, 8, 1507341, 0, 8, 1441805, 0, 8, 1376269, 0, 8, 1310733, 0, 8, 1245197, 0, 8, 1179661, 0, 8, 1114125, 0, 8, 1048589, 0, 8, 983053, 0, 8, 917517, 0, 8, 851981, 0, 8, 786445, 0, 8, 720909, 0, 8, 655373, 0, 8, 589837, 0, 8, 524301, 0, 8, 458765, 0, 8, 393229, 0, 8, 327693, 0, 8, 262157, 0, 8, 196621, 0, 8, 131085, 0, 8, 1507340, 0, 8, 1441804, 0, 8, 1376268, 0, 8, 1310732, 0, 8, 1245196, 0, 8, 1179660, 0, 8, 1114124, 0, 8, 1048588, 0, 8, 983052, 0, 8, 917516, 0, 8, 851980, 0, 8, 786444, 0, 8, 720908, 0, 8, 655372, 0, 8, 589836, 0, 8, 524300, 0, 8, 458764, 0, 8, 393228, 0, 8, 327692, 0, 8, 262156, 0, 8, 196620, 0, 8, 131084, 0, 8, 1507339, 0, 8, 1441803, 0, 8, 1376267, 0, 8, 1310731, 0, 8, 1245195, 0, 8, 1179659, 0, 8, 1114123, 0, 8, 1048587, 0, 8, 983051, 0, 8, 917515, 0, 8, 851979, 0, 8, 786443, 0, 8, 720907, 0, 8, 655371, 0, 8, 589835, 0, 8, 524299, 0, 8, 458763, 0, 8, 393227, 0, 8, 327691, 0, 8, 262155, 0, 8, 196619, 0, 8, 131083, 0, 8, 1507338, 0, 8, 1441802, 0, 8, 1376266, 0, 8, 1310730, 0, 8, 1245194, 0, 8, 1179658, 0, 8, 1114122, 0, 8, 1048586, 0, 8, 983050, 0, 8, 917514, 0, 8, 851978, 0, 8, 786442, 0, 8, 720906, 0, 8, 655370, 0, 8, 589834, 0, 8, 524298, 0, 8, 458762, 0, 8, 393226, 0, 8, 327690, 0, 8, 262154, 0, 8, 196618, 0, 8, 131082, 0, 8, 1507337, 0, 8, 1441801, 0, 8, 1376265, 0, 8, 1310729, 0, 8, 1245193, 0, 8, 1179657, 0, 8, 1114121, 0, 8, 1048585, 0, 8, 983049, 0, 8, 917513, 0, 8, 851977, 0, 8, 786441, 0, 8, 720905, 0, 8, 655369, 0, 8, 589833, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 1507336, 0, 8, 1441800, 0, 8, 1376264, 0, 8, 1310728, 0, 8, 1245192, 0, 8, 1179656, 0, 8, 1114120, 0, 8, 1048584, 0, 8, 983048, 0, 8, 917512, 0, 8, 851976, 0, 8, 786440, 0, 8, 720904, 0, 8, 655368, 0, 8, 589832, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 1179655, 0, 8, 1114119, 0, 8, 1048583, 0, 8, 983047, 0, 8, 917511, 0, 8, 851975, 0, 8, 786439, 0, 8, 720903, 0, 8, 655367, 0, 8, 589831, 0, 8, 524295, 0, 8, 458759, 0, 8, 1179654, 0, 8, 1114118, 0, 8, 1048582, 0, 8, 983046, 0, 8, 917510, 0, 8, 851974, 0, 8, 786438, 0, 8, 720902, 0, 8, 655366, 0, 8, 589830, 0, 8, 524294, 0, 8, 458758, 0, 8, 1179653, 0, 8, 1114117, 0, 8, 1048581, 0, 8, 983045, 0, 8, 917509, 0, 8, 851973, 0, 8, 786437, 0, 8, 720901, 0, 8, 655365, 0, 8, 589829, 0, 8, 524293, 0, 8, 458757, 0, 8, 1179652, 0, 8, 1114116, 0, 8, 1048580, 0, 8, 983044, 0, 8, 917508, 0, 8, 851972, 0, 8, 786436, 0, 8, 720900, 0, 8, 655364, 0, 8, 589828, 0, 8, 524292, 0, 8, 458756, 0, 8, 1179651, 0, 8, 1114115, 0, 8, 1048579, 0, 8, 983043, 0, 8, 917507, 0, 8, 851971, 0, 8, 786435, 0, 8, 720899, 0, 8, 655363, 0, 8, 589827, 0, 8, 524291, 0, 8, 458755, 0, 8, 65543, 131072, 7, 65544, 131072, 7, 1572872, 131072, 2, 65545, 131072, 7, 1572873, 131072, 2, 65546, 131072, 7, 1572874, 131072, 2, 65547, 131072, 7, 1572875, 131072, 2, 65548, 131072, 7, 1572876, 131072, 2, 65549, 131072, 7, 1572877, 131072, 2, 65550, 131072, 7, 1572878, 131072, 2, 65551, 131072, 7, 1572879, 131072, 2, 65552, 131072, 7, 65561, 131072, 7, 1572889, 131072, 2, 65562, 131072, 7, 1572890, 131072, 2, 65563, 131072, 7, 1572891, 131072, 2, 65564, 131072, 7, 1572892, 131072, 2, 65565, 131072, 7, 1572893, 131072, 2, 65566, 131072, 7, 1572894, 131072, 2, 65567, 131072, 7, 1572895, 131072, 2, 65568, 131072, 7, 1572896, 131072, 2, 65569, 131072, 7, 1572897, 131072, 2, 458791, 65536, 3, 524327, 65536, 3, 589863, 65536, 3, 655399, 65536, 3, 720935, 65536, 3, 786471, 65536, 3, 852007, 65536, 3, 917543, 65536, 3, 983079, 65536, 3, 1048615, 65536, 3, 1114151, 65536, 3, 1179687, 65536, 3, 983064, 0, 8, 983063, 0, 8, 983062, 0, 8, 983061, 0, 8, 983060, 0, 8, 983059, 0, 8, 983058, 0, 8, 983057, 0, 8, 1572880, 131072, 2, 1507344, 0, 8, 1441808, 0, 8, 1376272, 0, 8, 1310736, 0, 8, 1245200, 0, 8, 1179664, 0, 8, 1114128, 0, 8, 1048592, 0, 8, 983056, 0, 8, 1048593, 65536, 2, 1048594, 131072, 2, 1048595, 131072, 2, 1048596, 131072, 2, 1048597, 131072, 2, 1048598, 131072, 2, 1048599, 131072, 2, 1048600, 196608, 2, 1114136, 196608, 3, 1179672, 196608, 3, 1245208, 196608, 3, 1310744, 196608, 3, 1376280, 196608, 3, 1441816, 196608, 3, 1507352, 196608, 3, 1572888, 720896, 2, 1114129, 65536, 3, 1179665, 65536, 3, 1245201, 65536, 3, 1310737, 65536, 3, 1376273, 65536, 3, 1441809, 65536, 3, 1507345, 65536, 3, 1572881, 851968, 2, 589841, 65536, 7, 524305, 65536, 3, 458769, 65536, 3, 393233, 65536, 3, 196625, 65536, 3, 131089, 65536, 3, 589842, 131072, 7, 589843, 131072, 7, 589844, 131072, 7, 589845, 131072, 7, 589846, 131072, 7, 589847, 131072, 7, 196632, 196608, 3, 131096, 196608, 3, 65560, 196608, 4, 65553, 65536, 4, 131106, 65536, 3, 196642, 65536, 3, 65570, 65536, 4, 262178, 65536, 3, 327714, 65536, 3, 393250, 65536, 7, 393252, 131072, 7, 393253, 131072, 7, 393254, 131072, 7, 393255, 65536, 4, 393251, 131072, 7, 1245223, 851968, 2, 1245222, 131072, 2, 1245221, 131072, 2, 1245220, 131072, 2, 1245219, 131072, 2, 1245218, 65536, 2, 1310754, 65536, 3, 1376290, 65536, 3, 1441826, 65536, 3, 1507362, 65536, 3, 1572898, 851968, 2, 458754, 196608, 3, 196615, 0, 8, 131079, 0, 8, 262151, 0, 8, 327687, 0, 8, 393223, 0, 8, 393222, 0, 8, 393221, 0, 8, 393220, 0, 8, 393219, 0, 8, 524290, 196608, 3, 393218, 196608, 3, 589826, 196608, 3, 655362, 196608, 3, 720898, 196608, 3, 786434, 196608, 3, 851970, 196608, 3, 917506, 196608, 3, 983042, 196608, 3, 1048578, 196608, 3, 1114114, 196608, 3, 1179650, 196608, 3, 1245188, 131072, 2, 1245187, 131072, 2, 1245186, 720896, 2, 1245189, 131072, 2, 1245190, 131072, 2, 1245191, 196608, 2, 1310727, 196608, 3, 1376263, 196608, 3, 1441799, 196608, 3, 1507335, 196608, 3, 1572871, 720896, 2, 131075, 0, 8, 196611, 0, 8, 262147, 0, 8, 327683, 0, 8, 327682, 196608, 3, 327684, 0, 8, 262146, 196608, 3, 262148, 0, 8, 196610, 196608, 3, 196612, 0, 8, 131074, 196608, 3, 131076, 0, 8, 65538, 196608, 4, 65539, 131072, 7, 65540, 131072, 7, 131078, 0, 8, 131077, 0, 8, 196613, 0, 8, 65541, 131072, 7, 196614, 0, 8, 65542, 131072, 7, 262149, 0, 8, 262150, 0, 8, 327686, 0, 8, 327685, 0, 8, 262161, 65536, 3, 327697, 65536, 3, 589848, 196608, 7, 524312, 196608, 3, 458776, 196608, 3, 393240, 196608, 3, 327704, 196608, 3, 262168, 196608, 3) -script = ExtResource("dungeonRoomTemplate") - -[node name="Level1" type="Node" parent="."] - -[node name="EnemyMark" type="Node2D" parent="Level1"] -position = Vector2(198, 94) -script = ExtResource("3_k574h") -Weapon1Id = "0003" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="EnemyMark2" type="Node2D" parent="Level1"] -position = Vector2(195, 331) -script = ExtResource("3_k574h") -Weapon1Id = "0003" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="EnemyMark3" type="Node2D" parent="Level1"] -position = Vector2(480, 334) -script = ExtResource("3_k574h") -Weapon1Id = "0003" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="EnemyMark4" type="Node2D" parent="Level1"] -position = Vector2(470, 98) -script = ExtResource("3_k574h") -Weapon1Id = "0003" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="Level2" type="Node" parent="."] - -[node name="EnemyMark" type="Node2D" parent="Level2"] -position = Vector2(120, 204) -script = ExtResource("3_k574h") -Weapon1Id = "0001" -Weapon1Ammo = 45 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -DelayTime = 1.5 - -[node name="EnemyMark2" type="Node2D" parent="Level2"] -position = Vector2(561, 207) -script = ExtResource("3_k574h") -Weapon1Id = "0001" -Weapon1Ammo = 45 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -DelayTime = 1.5 - -[node name="WeaponMark" type="Node2D" parent="."] -position = Vector2(331, 208) -script = ExtResource("4_5hiyo") -Type = 4 -ItemId = "0001" -WaveNumber = 3 -DelayTime = 1.0 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room5.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room5.tscn deleted file mode 100644 index 32570c6..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room5.tscn +++ /dev/null @@ -1,10 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://ctbfg0p66xirw"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_mx0vc"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] - -[node name="Room5" type="TileMap"] -tile_set = ExtResource("1_mx0vc") -format = 2 -layer_0/tile_data = PackedInt32Array(65533, 0, 8, 131069, 0, 8, 196605, 0, 8, 262141, 0, 8, 327677, 131072, 2, 65534, 0, 8, 131070, 0, 8, 196606, 0, 8, 262142, 0, 8, 327678, 196608, 2, 393214, 720896, 2, -1, 0, 8, 65535, 0, 8, 131071, 0, 8, 196607, 0, 8, 262143, 0, 8, 327679, 0, 8, 393215, 196608, 2, 458751, 196608, 3, -196608, 0, 8, -131072, 0, 8, -65536, 0, 8, 0, 0, 8, 65536, 0, 8, 131072, 0, 8, 196608, 0, 8, 262144, 0, 8, 327680, 0, 8, 393216, 0, 8, 458752, 131072, 2, -196607, 0, 8, -131071, 0, 8, -65535, 0, 8, 1, 0, 8, 65537, 65536, 2, 131073, 65536, 7, 196609, 0, 8, 262145, 0, 8, 327681, 0, 8, 393217, 0, 8, 458753, 131072, 2, -196606, 0, 8, -131070, 0, 8, -65534, 0, 8, 2, 0, 8, 65538, 196608, 2, 131074, 196608, 7, 196610, 0, 8, 262146, 0, 8, 327682, 0, 8, 393218, 0, 8, 458754, 131072, 2, -196605, 0, 8, -131069, 0, 8, -65533, 0, 8, 3, 0, 8, 65539, 0, 8, 131075, 0, 8, 196611, 0, 8, 262147, 0, 8, 327683, 0, 8, 393219, 0, 8, 458755, 131072, 2, -196604, 65536, 3, -131068, 65536, 7, -65532, 0, 8, 4, 0, 8, 65540, 0, 8, 131076, 0, 8, 196612, 0, 8, 262148, 0, 8, 327684, 65536, 2, 393220, 65536, 3, 458756, 851968, 2, -131067, 65536, 4, -65531, 65536, 7, 5, 0, 8, 65541, 0, 8, 131077, 0, 8, 196613, 0, 8, 262149, 65536, 2, 327685, 851968, 2, -65530, 131072, 7, 6, 0, 8, 65542, 0, 8, 131078, 0, 8, 196614, 0, 8, 262150, 131072, 2, 7, 65536, 3, 65543, 65536, 3, 131079, 65536, 3, 196615, 65536, 3, 262151, 851968, 2, -4, 196608, 4, 65532, 196608, 3, 131068, 196608, 3, 196604, 196608, 3, 262140, 196608, 3, 327676, 720896, 2, -3, 131072, 7, -65538, 196608, 4, -2, 196608, 7, -196609, 196608, 4, -131073, 196608, 3, -65537, 196608, 7, 524287, 720896, 2, -262144, 131072, 7, -262143, 131072, 7, -262142, 131072, 7, -262141, 131072, 7, -262140, 65536, 4, -65529, 65536, 4) -script = ExtResource("dungeonRoomTemplate") diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room6.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room6.tscn deleted file mode 100644 index 3c52dac..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room6.tscn +++ /dev/null @@ -1,42 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://enbdu7o247o2"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_0o1o2"] -[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_mis0j"] -[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_cu8vs"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] - -[node name="Room6" type="TileMap"] -tile_set = ExtResource("1_0o1o2") -format = 2 -layer_0/tile_data = PackedInt32Array(196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, -65531, 0, 8, -131067, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, -131068, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, -65533, 0, 8, -131069, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, -65534, 0, 8, -131070, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, -131071, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -3, 196608, 3, -65539, 196608, 3, -131075, 196608, 4, -131074, 131072, 7, -131073, 131072, 7, 65533, 196608, 3, 131069, 196608, 3, 196605, 196608, 3, 262141, 196608, 3, 327679, 131072, 2, 327678, 131072, 2, 327677, 720896, 2, -196608, 131072, 7, 262144, 131072, 2, -196607, 131072, 7, 262145, 131072, 2, -196606, 131072, 7, 262146, 131072, 2, -196605, 131072, 7, 262147, 196608, 2, -196604, 131072, 7, 262148, 0, 8, -196603, 131072, 7, 262149, 0, 8, -131066, 65536, 3, -65530, 65536, 3, -196602, 65536, 4, 6, 65536, 3, 65542, 65536, 7, 131078, 0, 8, 196614, 0, 8, 262150, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 458759, 0, 8, 393223, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 458758, 0, 8, 393222, 0, 8, 327686, 0, 8, 458757, 0, 8, 393221, 0, 8, 327685, 0, 8, 458756, 0, 8, 393220, 0, 8, 327684, 0, 8, 327683, 196608, 3, 393219, 196608, 3, 458755, 196608, 3, 524293, 131072, 2, 524292, 131072, 2, 524291, 720896, 2, 524294, 131072, 2, 65543, 131072, 7, 524295, 131072, 2, 65544, 131072, 7, 524296, 131072, 2, 65545, 131072, 7, 524297, 131072, 2, 131082, 65536, 3, 196618, 65536, 3, 65546, 65536, 4, 262154, 65536, 3, 327690, 65536, 3, 393226, 65536, 3, 458762, 65536, 3, 524298, 851968, 2) -script = ExtResource("dungeonRoomTemplate") - -[node name="EnemyMark" type="Node2D" parent="."] -position = Vector2(20, 12) -script = ExtResource("3_mis0j") -Weapon1Id = "0003" -Weapon1Ammo = 25 -Type = 3 -ItemId = "0001" -Layer = 1 -BirthRect = Vector2i(40, 40) - -[node name="EnemyMark2" type="Node2D" parent="."] -position = Vector2(113, 79) -script = ExtResource("3_mis0j") -Weapon1Id = "0003" -Weapon1Ammo = 25 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -BirthRect = Vector2i(40, 40) - -[node name="WeaponMark" type="Node2D" parent="."] -position = Vector2(63, 14) -script = ExtResource("4_cu8vs") -Type = 4 -ItemId = "0001" -WaveNumber = 3 -DrawColor = Color(0.0196078, 0.627451, 0.768627, 1) -Altitude = 8 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room7.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room7.tscn deleted file mode 100644 index 2f6a681..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room7.tscn +++ /dev/null @@ -1,10 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://bgygwfm4wwuyo"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_phigy"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] - -[node name="Room7" type="TileMap"] -tile_set = ExtResource("1_phigy") -format = 2 -layer_0/tile_data = PackedInt32Array(196617, 0, 8, 131081, 0, 8, 65545, 0, 8, 9, 0, 8, -65527, 0, 8, -131063, 0, 8, -196599, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, -65528, 0, 8, -131064, 0, 8, -196600, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, -65529, 0, 8, -131065, 0, 8, -196601, 0, 8, 196614, 0, 8, 131078, 0, 8, 65542, 0, 8, 6, 0, 8, -65530, 0, 8, -131066, 0, 8, -196602, 0, 8, 196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, -65531, 0, 8, -131067, 0, 8, -196603, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, -131068, 0, 8, -196604, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, -65533, 0, 8, -131069, 0, 8, -196605, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, -65534, 0, 8, -131070, 0, 8, -196606, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, -131071, 0, 8, -196607, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, -196608, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, -131073, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -131074, 0, 8, -65539, 196608, 3, -131075, 196608, 3, -196611, 196608, 4, -196610, 131072, 7, -196609, 131072, 7, -3, 196608, 3, 65533, 196608, 3, 131069, 196608, 3, 196605, 196608, 3, 262141, 196608, 3, 327679, 131072, 2, 327678, 131072, 2, 327677, 720896, 2, -262144, 131072, 7, 262144, 131072, 2, -262143, 131072, 7, 262145, 131072, 2, -262142, 131072, 7, 262146, 131072, 2, -262141, 131072, 7, 262147, 131072, 2, -262140, 131072, 7, 262148, 131072, 2, -262139, 131072, 7, 262149, 131072, 2, -262138, 131072, 7, 262150, 131072, 2, -262137, 131072, 7, 262151, 131072, 2, -262136, 131072, 7, 262152, 131072, 2, -262135, 131072, 7, 262153, 131072, 2, -196598, 65536, 3, -131062, 65536, 3, -262134, 65536, 4, -65526, 65536, 3, 10, 65536, 3, 65546, 65536, 3, 131082, 65536, 3, 196618, 65536, 3, 262154, 851968, 2) -script = ExtResource("dungeonRoomTemplate") diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room8.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room8.tscn new file mode 100644 index 0000000..d4ef309 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room8.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=5 format=3 uid="uid://da8uytgy0hroo"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_n27nn"] +[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_y6it6"] +[ext_resource type="Script" path="res://src/framework/map/mark/ActivityMark.cs" id="4_5ha7k"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room8" type="TileMap"] +tile_set = ExtResource("1_n27nn") +format = 2 +layer_0/tile_data = PackedInt32Array(720914, 0, 8, 655378, 0, 8, 589842, 0, 8, 524306, 0, 8, 458770, 0, 8, 393234, 0, 8, 327698, 0, 8, 262162, 0, 8, 196626, 0, 8, 131090, 0, 8, 65554, 0, 8, 18, 0, 8, -65518, 0, 8, -131054, 0, 8, 720913, 0, 8, 655377, 0, 8, 589841, 0, 8, 524305, 0, 8, 458769, 0, 8, 393233, 0, 8, 327697, 0, 8, 262161, 0, 8, 196625, 0, 8, 131089, 0, 8, 65553, 0, 8, 17, 0, 8, -65519, 0, 8, -131055, 0, 8, 720912, 0, 8, 655376, 0, 8, 589840, 0, 8, 524304, 0, 8, 458768, 0, 8, 393232, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 131088, 0, 8, 65552, 0, 8, 16, 0, 8, -65520, 0, 8, -131056, 0, 8, 720911, 0, 8, 655375, 0, 8, 589839, 0, 8, 524303, 0, 8, 458767, 0, 8, 393231, 0, 8, 327695, 0, 8, 262159, 0, 8, 196623, 0, 8, 131087, 0, 8, 65551, 0, 8, 15, 0, 8, -65521, 0, 8, -131057, 0, 8, 720910, 0, 8, 655374, 0, 8, 589838, 0, 8, 524302, 0, 8, 458766, 0, 8, 393230, 0, 8, 327694, 0, 8, 262158, 0, 8, 196622, 0, 8, 131086, 0, 8, 65550, 0, 8, 14, 0, 8, -65522, 0, 8, -131058, 0, 8, 720909, 0, 8, 655373, 0, 8, 589837, 0, 8, 524301, 0, 8, 458765, 0, 8, 393229, 0, 8, 327693, 0, 8, 262157, 0, 8, 196621, 0, 8, 131085, 0, 8, 65549, 0, 8, 13, 0, 8, -65523, 0, 8, -131059, 0, 8, 720908, 0, 8, 655372, 0, 8, 589836, 0, 8, 524300, 0, 8, 458764, 0, 8, 393228, 0, 8, 327692, 0, 8, 262156, 0, 8, 196620, 0, 8, 131084, 0, 8, 65548, 0, 8, 12, 0, 8, -65524, 0, 8, -131060, 0, 8, 720907, 0, 8, 655371, 0, 8, 589835, 0, 8, 524299, 0, 8, 458763, 0, 8, 393227, 0, 8, 327691, 0, 8, 262155, 0, 8, 196619, 0, 8, 131083, 0, 8, 65547, 0, 8, 11, 0, 8, -65525, 0, 8, -131061, 0, 8, 720906, 0, 8, 655370, 0, 8, 589834, 0, 8, 524298, 0, 8, 458762, 0, 8, 393226, 0, 8, 327690, 0, 8, 262154, 0, 8, 196618, 0, 8, 131082, 0, 8, 65546, 0, 8, 10, 0, 8, -65526, 0, 8, -131062, 0, 8, 720905, 0, 8, 655369, 0, 8, 589833, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 65545, 0, 8, 9, 0, 8, -65527, 0, 8, -131063, 0, 8, 720904, 0, 8, 655368, 0, 8, 589832, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, -65528, 0, 8, -131064, 0, 8, 720903, 0, 8, 655367, 0, 8, 589831, 0, 8, 524295, 0, 8, 458759, 0, 8, 393223, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, -65529, 0, 8, -131065, 0, 8, 720902, 0, 8, 655366, 0, 8, 589830, 0, 8, 524294, 0, 8, 458758, 0, 8, 393222, 0, 8, 327686, 0, 8, 262150, 0, 8, 196614, 0, 8, 131078, 0, 8, 65542, 0, 8, 6, 0, 8, -65530, 0, 8, -131066, 0, 8, 720901, 0, 8, 655365, 0, 8, 589829, 0, 8, 524293, 0, 8, 458757, 0, 8, 393221, 0, 8, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, -65531, 0, 8, -131067, 0, 8, 720900, 0, 8, 655364, 0, 8, 589828, 0, 8, 524292, 0, 8, 458756, 0, 8, 393220, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, -131068, 0, 8, 720899, 0, 8, 655363, 0, 8, 589827, 0, 8, 524291, 0, 8, 458755, 0, 8, 393219, 0, 8, 327683, 0, 8, 262147, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, -65533, 0, 8, -131069, 0, 8, 720898, 0, 8, 655362, 0, 8, 589826, 0, 8, 524290, 0, 8, 458754, 0, 8, 393218, 0, 8, 327682, 0, 8, 262146, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, -65534, 0, 8, -131070, 0, 8, 720897, 0, 8, 655361, 0, 8, 589825, 0, 8, 524289, 0, 8, 458753, 0, 8, 393217, 0, 8, 327681, 0, 8, 262145, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, -131071, 0, 8, 720896, 0, 8, 655360, 0, 8, 589824, 0, 8, 524288, 0, 8, 458752, 0, 8, 393216, 0, 8, 327680, 0, 8, 262144, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, 786431, 0, 8, 720895, 0, 8, 655359, 0, 8, 589823, 0, 8, 524287, 0, 8, 458751, 0, 8, 393215, 0, 8, 327679, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, 786430, 0, 8, 720894, 0, 8, 655358, 0, 8, 589822, 0, 8, 524286, 0, 8, 458750, 0, 8, 393214, 0, 8, 327678, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, 786429, 0, 8, 720893, 0, 8, 655357, 0, 8, 589821, 0, 8, 524285, 0, 8, 458749, 0, 8, 393213, 0, 8, 327677, 0, 8, 262141, 0, 8, 196605, 0, 8, 131069, 0, 8, 65533, 0, 8, -3, 0, 8, -65539, 0, 8, 786428, 0, 8, 720892, 0, 8, 655356, 0, 8, 589820, 0, 8, 524284, 0, 8, 458748, 0, 8, 393212, 0, 8, 327676, 0, 8, 262140, 0, 8, 196604, 0, 8, 131068, 0, 8, 65532, 0, 8, -4, 0, 8, -65540, 0, 8, -5, 196608, 3, -65541, 196608, 3, -131077, 196608, 4, -131076, 131072, 7, -131075, 131072, 7, 65531, 196608, 3, 131067, 196608, 3, 196603, 196608, 3, 262139, 196608, 3, 327675, 196608, 3, 393211, 196608, 3, 458747, 196608, 3, 524283, 196608, 3, 589819, 196608, 3, 655355, 196608, 3, 720891, 196608, 3, 786427, 196608, 3, 851965, 131072, 2, 851964, 131072, 2, 851963, 720896, 2, -131074, 131072, 7, 851966, 131072, 2, -131073, 131072, 7, 851967, 131072, 2, -196608, 131072, 7, 786432, 131072, 2, -196607, 131072, 7, 786433, 131072, 2, -196606, 131072, 7, 786434, 131072, 2, -196605, 131072, 7, 786435, 131072, 2, -196604, 131072, 7, 786436, 131072, 2, -196603, 131072, 7, 786437, 131072, 2, -196602, 131072, 7, 786438, 131072, 2, -196601, 131072, 7, 786439, 131072, 2, -196600, 131072, 7, 786440, 131072, 2, -196599, 131072, 7, 786441, 131072, 2, -196598, 131072, 7, 786442, 131072, 2, -196597, 131072, 7, 786443, 131072, 2, -196596, 131072, 7, 786444, 131072, 2, -196595, 131072, 7, 786445, 131072, 2, -196594, 131072, 7, 786446, 131072, 2, -196593, 131072, 7, 786447, 131072, 2, -196592, 131072, 7, 786448, 131072, 2, -196591, 131072, 7, 786449, 131072, 2, -196590, 131072, 7, 786450, 131072, 2, -131053, 65536, 3, -65517, 65536, 3, -196589, 65536, 4, 19, 65536, 3, 65555, 65536, 3, 131091, 65536, 3, 196627, 65536, 3, 262163, 65536, 3, 327699, 65536, 3, 393235, 65536, 3, 458771, 65536, 3, 524307, 65536, 3, 589843, 65536, 3, 655379, 65536, 3, 720915, 65536, 3, 786451, 851968, 2) +script = ExtResource("dungeonRoomTemplate") + +[node name="EnemyMark" type="Node2D" parent="."] +script = ExtResource("3_y6it6") +Weapon1Id = "0001(ResidueAmmo:30,CurrAmmon:10)" +Weapon2Id = "null; +0003(ResidueAmmo:12,CurrAmmon:12)" +Type = 4 +ItemExpression = "0001; +null" +Layer = 1 +Altitude = 0 + +[node name="ActivityMark" type="Node2D" parent="."] +position = Vector2(202, 95) +script = ExtResource("4_5ha7k") +Type = 5 +ItemExpression = "0002(ResidueAmmo:15,CurrAmmon:0)" +WaveNumber = 2 +BirthRect = Vector2i(150, 150) + +[node name="EnemyMark2" type="Node2D" parent="."] +position = Vector2(56, 112) +script = ExtResource("3_y6it6") +Weapon1Id = "0003(ResidueAmmo:12,CurrAmmon:7)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 3 +Altitude = 0 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn index 87a5beb..0e0932d 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=4 format=3 uid="uid://dmeb88jotqro6"] [ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_gh7sf"] -[ext_resource type="Script" path="res://src/framework/map/mark/PlayerBirthMark.cs" id="3_3iyr5"] +[ext_resource type="Script" path="res://src/framework/map/mark/ActivityMark.cs" id="3_pf56w"] [ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] [node name="Room1" type="TileMap"] @@ -10,6 +10,35 @@ layer_0/tile_data = PackedInt32Array(327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 65545, 0, 8, 9, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, 327686, 0, 8, 262150, 0, 8, 196614, 0, 8, 131078, 0, 8, 65542, 0, 8, 6, 0, 8, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, 327683, 0, 8, 262147, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, 327682, 0, 8, 262146, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, 327681, 0, 8, 262145, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, 327680, 0, 8, 262144, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, 131071, 196608, 3, 65535, 196608, 3, -1, 196608, 4, -65536, 131072, 7, -65535, 131072, 7, 196607, 196608, 3, 262143, 196608, 3, 327679, 196608, 3, 393215, 196608, 3, 393217, 131072, 2, 393216, 131072, 2, 458751, 720896, 2, -65534, 131072, 7, 393218, 131072, 2, -65533, 131072, 7, 393219, 131072, 2, -65532, 131072, 7, 393220, 131072, 2, -65531, 131072, 7, 393221, 131072, 2, -65530, 131072, 7, 393222, 131072, 2, -65529, 131072, 7, 393223, 131072, 2, -65528, 131072, 7, 393224, 131072, 2, -65527, 131072, 7, 393225, 131072, 2, 10, 65536, 3, 65546, 65536, 3, -65526, 65536, 4, 131082, 65536, 3, 196618, 65536, 3, 262154, 65536, 3, 327690, 65536, 3, 393226, 851968, 2) script = ExtResource("dungeonRoomTemplate") -[node name="PlayerBirthMark" type="Node2D" parent="."] -position = Vector2(80, 48) -script = ExtResource("3_3iyr5") +[node name="Player" type="Node2D" parent="."] +position = Vector2(80, 47) +script = ExtResource("3_pf56w") +Type = 1 +Altitude = 0 + +[node name="ActivityMark" type="Node2D" parent="."] +position = Vector2(126, 21) +script = ExtResource("3_pf56w") +Type = 5 +ItemExpression = "0002(ResidueAmmo:15,CurrAmmon:0)" + +[node name="ActivityMark2" type="Node2D" parent="."] +position = Vector2(39, 75) +script = ExtResource("3_pf56w") +Type = 5 +ItemExpression = "0001(ResidueAmmo:15,CurrAmmon:0)" +WaveNumber = 2 + +[node name="ActivityMark3" type="Node2D" parent="."] +position = Vector2(128, 74) +script = ExtResource("3_pf56w") +Type = 5 +ItemExpression = "0003(ResidueAmmo:15,CurrAmmon:0)" +WaveNumber = 3 + +[node name="ActivityMark4" type="Node2D" parent="."] +position = Vector2(39, 23) +script = ExtResource("3_pf56w") +Type = 5 +ItemExpression = "0004(ResidueAmmo:15,CurrAmmon:0)" +WaveNumber = 4 diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room1.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room1.json deleted file mode 100644 index bd65f7d..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room1.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "Position": { - "X": -3, - "Y": -5 - }, - "Size": { - "X": 17, - "Y": 10 - }, - "DoorAreaInfos": [], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": -24, - "Y": -56 - }, - { - "X": 200, - "Y": -56 - }, - { - "X": 200, - "Y": 56 - }, - { - "X": -24, - "Y": 56 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 8, - "Y": -40 - }, - { - "X": 168, - "Y": -40 - }, - { - "X": 168, - "Y": 40 - }, - { - "X": 8, - "Y": 40 - } - ] - } - ], - "GroupName": "testGroup", - "RoomType": 0, - "FileName": "Room1", - "Weight": 100 -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room2.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room2.json deleted file mode 100644 index ad5c14f..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room2.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "Position": { - "X": -5, - "Y": -3 - }, - "Size": { - "X": 23, - "Y": 14 - }, - "DoorAreaInfos": [ - { - "Direction": 3, - "Start": 16, - "End": 224 - }, - { - "Direction": 3, - "Start": 288, - "End": 352 - }, - { - "Direction": 0, - "Start": 16, - "End": 208 - }, - { - "Direction": 2, - "Start": 144, - "End": 352 - }, - { - "Direction": 2, - "Start": 16, - "End": 80 - }, - { - "Direction": 1, - "Start": 16, - "End": 208 - } - ], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": -56, - "Y": -24 - }, - { - "X": 136, - "Y": -24 - }, - { - "X": 136, - "Y": 88 - }, - { - "X": 216, - "Y": 88 - }, - { - "X": 216, - "Y": -24 - }, - { - "X": 264, - "Y": -24 - }, - { - "X": 264, - "Y": 152 - }, - { - "X": 72, - "Y": 152 - }, - { - "X": 72, - "Y": 40 - }, - { - "X": -8, - "Y": 40 - }, - { - "X": -8, - "Y": 152 - }, - { - "X": -56, - "Y": 152 - } - ] - } - ], - "GroupName": "testGroup", - "RoomType": 0, - "FileName": "Room2", - "Weight": 100 -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room3.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room3.json deleted file mode 100644 index 7e6a611..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room3.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "Position": { - "X": 5, - "Y": 3 - }, - "Size": { - "X": 21, - "Y": 21 - }, - "DoorAreaInfos": [], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": 104, - "Y": 72 - }, - { - "X": 392, - "Y": 72 - }, - { - "X": 392, - "Y": 360 - }, - { - "X": 104, - "Y": 360 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 136, - "Y": 104 - }, - { - "X": 232, - "Y": 104 - }, - { - "X": 232, - "Y": 200 - }, - { - "X": 136, - "Y": 200 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 264, - "Y": 104 - }, - { - "X": 360, - "Y": 104 - }, - { - "X": 360, - "Y": 200 - }, - { - "X": 264, - "Y": 200 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 136, - "Y": 232 - }, - { - "X": 232, - "Y": 232 - }, - { - "X": 232, - "Y": 328 - }, - { - "X": 136, - "Y": 328 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 264, - "Y": 232 - }, - { - "X": 360, - "Y": 232 - }, - { - "X": 360, - "Y": 328 - }, - { - "X": 264, - "Y": 328 - } - ] - } - ], - "GroupName": "testGroup", - "RoomType": 0, - "FileName": "Room3", - "Weight": 100 -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json deleted file mode 100644 index 281fc9a..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "Position": { - "X": 2, - "Y": 1 - }, - "Size": { - "X": 38, - "Y": 24 - }, - "DoorAreaInfos": [ - { - "Direction": 3, - "Start": 16, - "End": 240 - }, - { - "Direction": 3, - "Start": 368, - "End": 512 - }, - { - "Direction": 0, - "Start": 96, - "End": 288 - }, - { - "Direction": 2, - "Start": 368, - "End": 512 - }, - { - "Direction": 2, - "Start": 96, - "End": 240 - }, - { - "Direction": 1, - "Start": 16, - "End": 288 - } - ], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": 56, - "Y": 40 - }, - { - "X": 264, - "Y": 40 - }, - { - "X": 264, - "Y": 168 - }, - { - "X": 408, - "Y": 168 - }, - { - "X": 408, - "Y": 40 - }, - { - "X": 536, - "Y": 40 - }, - { - "X": 536, - "Y": 120 - }, - { - "X": 616, - "Y": 120 - }, - { - "X": 616, - "Y": 296 - }, - { - "X": 536, - "Y": 296 - }, - { - "X": 536, - "Y": 376 - }, - { - "X": 408, - "Y": 376 - }, - { - "X": 408, - "Y": 248 - }, - { - "X": 264, - "Y": 248 - }, - { - "X": 264, - "Y": 376 - }, - { - "X": 136, - "Y": 376 - }, - { - "X": 136, - "Y": 296 - }, - { - "X": 56, - "Y": 296 - } - ] - } - ], - "GroupName": "testGroup", - "RoomType": 0, - "FileName": "Room4", - "Weight": 100 -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room5.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room5.json deleted file mode 100644 index 6290559..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room5.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "Position": { - "X": -4, - "Y": -4 - }, - "Size": { - "X": 12, - "Y": 12 - }, - "DoorAreaInfos": [ - { - "Direction": 3, - "Start": 64, - "End": 128 - }, - { - "Direction": 0, - "Start": 64, - "End": 128 - }, - { - "Direction": 2, - "Start": 64, - "End": 128 - }, - { - "Direction": 1, - "Start": 64, - "End": 128 - } - ], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": 8, - "Y": -40 - }, - { - "X": 56, - "Y": -40 - }, - { - "X": 56, - "Y": -8 - }, - { - "X": 72, - "Y": -8 - }, - { - "X": 72, - "Y": 8 - }, - { - "X": 104, - "Y": 8 - }, - { - "X": 104, - "Y": 56 - }, - { - "X": 72, - "Y": 56 - }, - { - "X": 72, - "Y": 72 - }, - { - "X": 56, - "Y": 72 - }, - { - "X": 56, - "Y": 104 - }, - { - "X": 8, - "Y": 104 - }, - { - "X": 8, - "Y": 72 - }, - { - "X": -8, - "Y": 72 - }, - { - "X": -8, - "Y": 56 - }, - { - "X": -40, - "Y": 56 - }, - { - "X": -40, - "Y": 8 - }, - { - "X": -8, - "Y": 8 - }, - { - "X": -8, - "Y": -8 - }, - { - "X": 8, - "Y": -8 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 8, - "Y": 8 - }, - { - "X": 56, - "Y": 8 - }, - { - "X": 56, - "Y": 56 - }, - { - "X": 8, - "Y": 56 - } - ] - } - ], - "GroupName": "testGroup", - "RoomType": 0, - "FileName": "Room5", - "Weight": 100 -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room6.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room6.json deleted file mode 100644 index c0ce6ce..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room6.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "Position": { - "X": -3, - "Y": -3 - }, - "Size": { - "X": 14, - "Y": 12 - }, - "DoorAreaInfos": [ - { - "Direction": 3, - "Start": 16, - "End": 144 - }, - { - "Direction": 0, - "Start": 80, - "End": 176 - }, - { - "Direction": 2, - "Start": 112, - "End": 208 - }, - { - "Direction": 1, - "Start": 16, - "End": 112 - } - ], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": -24, - "Y": -24 - }, - { - "X": 88, - "Y": -24 - }, - { - "X": 88, - "Y": 40 - }, - { - "X": 152, - "Y": 40 - }, - { - "X": 152, - "Y": 120 - }, - { - "X": 72, - "Y": 120 - }, - { - "X": 72, - "Y": 56 - }, - { - "X": -24, - "Y": 56 - } - ] - } - ], - "GroupName": "testGroup", - "RoomType": 0, - "FileName": "Room6", - "Weight": 100 -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room7.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room7.json deleted file mode 100644 index aa28b2f..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room7.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "Position": { - "X": -3, - "Y": -4 - }, - "Size": { - "X": 14, - "Y": 9 - }, - "DoorAreaInfos": [], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": -24, - "Y": -40 - }, - { - "X": 152, - "Y": -40 - }, - { - "X": 152, - "Y": 56 - }, - { - "X": -24, - "Y": 56 - } - ] - } - ], - "GroupName": "testGroup", - "RoomType": 0, - "FileName": "Room7", - "Weight": 100 -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room8.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room8.json new file mode 100644 index 0000000..6cd97e7 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room8.json @@ -0,0 +1,38 @@ +{ + "Position": { + "X": -5, + "Y": -3 + }, + "Size": { + "X": 25, + "Y": 16 + }, + "DoorAreaInfos": [], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": -56, + "Y": -24 + }, + { + "X": 296, + "Y": -24 + }, + { + "X": 296, + "Y": 192 + }, + { + "X": -56, + "Y": 192 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room8", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json index 84e63f0..6c3fba1 100644 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json @@ -22,11 +22,11 @@ }, { "X": 152, - "Y": 88 + "Y": 96 }, { "X": 8, - "Y": 88 + "Y": 96 } ] } diff --git a/DungeonShooting_Godot/resource/map/tileset/TileSet1.tres b/DungeonShooting_Godot/resource/map/tileset/TileSet1.tres index ec53c65..a8fe7bb 100644 --- a/DungeonShooting_Godot/resource/map/tileset/TileSet1.tres +++ b/DungeonShooting_Godot/resource/map/tileset/TileSet1.tres @@ -41,9 +41,6 @@ 11:0/0 = 0 11:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) 11:0/0/physics_layer_0/angular_velocity = 0.0 -11:0/1 = 1 -11:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) -11:0/1/physics_layer_0/angular_velocity = 0.0 12:0/0 = 0 12:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) 12:0/0/physics_layer_0/angular_velocity = 0.0 @@ -51,9 +48,6 @@ 13:0/0 = 0 13:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) 13:0/0/physics_layer_0/angular_velocity = 0.0 -13:0/1 = 1 -13:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) -13:0/1/physics_layer_0/angular_velocity = 0.0 14:0/0 = 0 14:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) 14:0/0/physics_layer_0/angular_velocity = 0.0 @@ -115,6 +109,7 @@ 1:2/0/terrain_set = 0 1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) 1:2/0/physics_layer_0/angular_velocity = 0.0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 0, 8, 0, 8, 8, -8, 8) 1:2/0/terrains_peering_bit/bottom_left_corner = 0 1:2/0/terrains_peering_bit/top_left_corner = 0 1:2/0/terrains_peering_bit/top_right_corner = 0 @@ -122,12 +117,14 @@ 2:2/0/terrain_set = 0 2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) 2:2/0/physics_layer_0/angular_velocity = 0.0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 0, 8, 0, 8, 8, -8, 8) 2:2/0/terrains_peering_bit/top_left_corner = 0 2:2/0/terrains_peering_bit/top_right_corner = 0 3:2/0 = 0 3:2/0/terrain_set = 0 3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) 3:2/0/physics_layer_0/angular_velocity = 0.0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 0, 8, 0, 8, 8, -8, 8) 3:2/0/terrains_peering_bit/bottom_right_corner = 0 3:2/0/terrains_peering_bit/top_left_corner = 0 3:2/0/terrains_peering_bit/top_right_corner = 0 @@ -156,6 +153,7 @@ 11:2/0/terrain_set = 0 11:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) 11:2/0/physics_layer_0/angular_velocity = 0.0 +11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 11:2/0/terrains_peering_bit/top_right_corner = 0 12:2/0 = 0 12:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) @@ -164,6 +162,7 @@ 13:2/0/terrain_set = 0 13:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) 13:2/0/physics_layer_0/angular_velocity = 0.0 +13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 13:2/0/terrains_peering_bit/top_left_corner = 0 14:2/0 = 0 14:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) @@ -178,15 +177,18 @@ 1:3/0/terrain_set = 0 1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) 1:3/0/physics_layer_0/angular_velocity = 0.0 +1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 1:3/0/terrains_peering_bit/bottom_left_corner = 0 1:3/0/terrains_peering_bit/top_left_corner = 0 2:3/0 = 0 2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) 2:3/0/physics_layer_0/angular_velocity = 0.0 +2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 3:3/0 = 0 3:3/0/terrain_set = 0 3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) 3:3/0/physics_layer_0/angular_velocity = 0.0 +3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 3:3/0/terrains_peering_bit/bottom_right_corner = 0 3:3/0/terrains_peering_bit/top_right_corner = 0 4:3/0 = 0 @@ -232,14 +234,17 @@ 1:4/0/terrain_set = 0 1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) 1:4/0/physics_layer_0/angular_velocity = 0.0 +1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 1:4/0/terrains_peering_bit/bottom_left_corner = 0 2:4/0 = 0 2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) 2:4/0/physics_layer_0/angular_velocity = 0.0 +2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 3:4/0 = 0 3:4/0/terrain_set = 0 3:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) 3:4/0/physics_layer_0/angular_velocity = 0.0 +3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 3:4/0/terrains_peering_bit/bottom_right_corner = 0 4:4/0 = 0 4:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) @@ -283,12 +288,15 @@ 1:5/0 = 0 1:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) 1:5/0/physics_layer_0/angular_velocity = 0.0 +1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 2:5/0 = 0 2:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) 2:5/0/physics_layer_0/angular_velocity = 0.0 +2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 3:5/0 = 0 3:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) 3:5/0/physics_layer_0/angular_velocity = 0.0 +3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 4:5/0 = 0 4:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) 4:5/0/physics_layer_0/angular_velocity = 0.0 @@ -332,23 +340,17 @@ 1:6/0 = 0 1:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) 1:6/0/physics_layer_0/angular_velocity = 0.0 -1:6/2 = 2 -1:6/2/physics_layer_0/linear_velocity = Vector2(0, 0) -1:6/2/physics_layer_0/angular_velocity = 0.0 +1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 2:6/next_alternative_id = 3 2:6/0 = 0 2:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) 2:6/0/physics_layer_0/angular_velocity = 0.0 -2:6/2 = 2 -2:6/2/physics_layer_0/linear_velocity = Vector2(0, 0) -2:6/2/physics_layer_0/angular_velocity = 0.0 +2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 3:6/next_alternative_id = 3 3:6/0 = 0 3:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) 3:6/0/physics_layer_0/angular_velocity = 0.0 -3:6/2 = 2 -3:6/2/physics_layer_0/linear_velocity = Vector2(0, 0) -3:6/2/physics_layer_0/angular_velocity = 0.0 +3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 4:6/0 = 0 4:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) 4:6/0/physics_layer_0/angular_velocity = 0.0 @@ -400,12 +402,14 @@ 2:7/0/terrain_set = 0 2:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) 2:7/0/physics_layer_0/angular_velocity = 0.0 +2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 2:7/0/terrains_peering_bit/bottom_right_corner = 0 2:7/0/terrains_peering_bit/bottom_left_corner = 0 3:7/0 = 0 3:7/0/terrain_set = 0 3:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) 3:7/0/physics_layer_0/angular_velocity = 0.0 +3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 3:7/0/terrains_peering_bit/bottom_right_corner = 0 3:7/0/terrains_peering_bit/bottom_left_corner = 0 3:7/0/terrains_peering_bit/top_right_corner = 0 diff --git a/DungeonShooting_Godot/resource/map/tileset/TileSet_old.tres b/DungeonShooting_Godot/resource/map/tileset/TileSet_old.tres new file mode 100644 index 0000000..8f15fc4 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileset/TileSet_old.tres @@ -0,0 +1,559 @@ +[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://bn21mn0gu6jel"] + +[ext_resource type="Texture2D" uid="uid://dj8nrd5od4fcl" path="res://resource/sprite/environment/itch-io-DungeonTileset4/16x16 dungeon ii wall reconfig v04 spritesheet.png" id="1_vqd0o"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rkmbu"] +texture = ExtResource("1_vqd0o") +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +1:0/0 = 0 +1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/0/physics_layer_0/angular_velocity = 0.0 +2:0/0 = 0 +2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/0/physics_layer_0/angular_velocity = 0.0 +3:0/0 = 0 +3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:0/0/physics_layer_0/angular_velocity = 0.0 +4:0/0 = 0 +4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:0/0/physics_layer_0/angular_velocity = 0.0 +5:0/0 = 0 +5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:0/0/physics_layer_0/angular_velocity = 0.0 +6:0/0 = 0 +6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:0/0/physics_layer_0/angular_velocity = 0.0 +7:0/0 = 0 +7:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:0/0/physics_layer_0/angular_velocity = 0.0 +8:0/0 = 0 +8:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:0/0/physics_layer_0/angular_velocity = 0.0 +9:0/0 = 0 +9:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:0/0/physics_layer_0/angular_velocity = 0.0 +10:0/0 = 0 +10:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:0/0/physics_layer_0/angular_velocity = 0.0 +11:0/0 = 0 +11:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:0/0/physics_layer_0/angular_velocity = 0.0 +12:0/0 = 0 +12:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:0/0/physics_layer_0/angular_velocity = 0.0 +13:0/0 = 0 +13:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:0/0/physics_layer_0/angular_velocity = 0.0 +14:0/0 = 0 +14:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:0/0/physics_layer_0/angular_velocity = 0.0 +15:0/0 = 0 +15:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:0/0/physics_layer_0/angular_velocity = 0.0 +0:1/0 = 0 +0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/0/physics_layer_0/angular_velocity = 0.0 +1:1/0 = 0 +1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/0/physics_layer_0/angular_velocity = 0.0 +2:1/0 = 0 +2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:1/0/physics_layer_0/angular_velocity = 0.0 +3:1/0 = 0 +3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:1/0/physics_layer_0/angular_velocity = 0.0 +4:1/0 = 0 +4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:1/0/physics_layer_0/angular_velocity = 0.0 +5:1/0 = 0 +5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:1/0/physics_layer_0/angular_velocity = 0.0 +6:1/0 = 0 +6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:1/0/physics_layer_0/angular_velocity = 0.0 +7:1/0 = 0 +7:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:1/0/physics_layer_0/angular_velocity = 0.0 +8:1/0 = 0 +8:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:1/0/physics_layer_0/angular_velocity = 0.0 +9:1/0 = 0 +9:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:1/0/physics_layer_0/angular_velocity = 0.0 +10:1/0 = 0 +10:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:1/0/physics_layer_0/angular_velocity = 0.0 +11:1/0 = 0 +11:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:1/0/physics_layer_0/angular_velocity = 0.0 +12:1/0 = 0 +12:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:1/0/physics_layer_0/angular_velocity = 0.0 +13:1/0 = 0 +13:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:1/0/physics_layer_0/angular_velocity = 0.0 +14:1/0 = 0 +14:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:1/0/physics_layer_0/angular_velocity = 0.0 +15:1/0 = 0 +15:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:1/0/physics_layer_0/angular_velocity = 0.0 +0:2/0 = 0 +0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/0/physics_layer_0/angular_velocity = 0.0 +1:2/0 = 0 +1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/0/physics_layer_0/angular_velocity = 0.0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 0, 8, 0, 8, 8, -8, 8) +2:2/0 = 0 +2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:2/0/physics_layer_0/angular_velocity = 0.0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 0, 8, 0, 8, 8, -8, 8) +3:2/0 = 0 +3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/0/physics_layer_0/angular_velocity = 0.0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 0, 8, 0, 8, 8, -8, 8) +4:2/0 = 0 +4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:2/0/physics_layer_0/angular_velocity = 0.0 +5:2/0 = 0 +5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:2/0/physics_layer_0/angular_velocity = 0.0 +6:2/0 = 0 +6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:2/0/physics_layer_0/angular_velocity = 0.0 +7:2/0 = 0 +7:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:2/0/physics_layer_0/angular_velocity = 0.0 +8:2/0 = 0 +8:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:2/0/physics_layer_0/angular_velocity = 0.0 +9:2/0 = 0 +9:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:2/0/physics_layer_0/angular_velocity = 0.0 +10:2/0 = 0 +10:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:2/0/physics_layer_0/angular_velocity = 0.0 +11:2/0 = 0 +11:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:2/0/physics_layer_0/angular_velocity = 0.0 +11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +12:2/0 = 0 +12:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:2/0/physics_layer_0/angular_velocity = 0.0 +13:2/0 = 0 +13:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:2/0/physics_layer_0/angular_velocity = 0.0 +13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +14:2/0 = 0 +14:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:2/0/physics_layer_0/angular_velocity = 0.0 +15:2/0 = 0 +15:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:2/0/physics_layer_0/angular_velocity = 0.0 +0:3/0 = 0 +0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/0/physics_layer_0/angular_velocity = 0.0 +1:3/0 = 0 +1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/0/physics_layer_0/angular_velocity = 0.0 +1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +2:3/0 = 0 +2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:3/0/physics_layer_0/angular_velocity = 0.0 +2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:3/0 = 0 +3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:3/0/physics_layer_0/angular_velocity = 0.0 +3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:3/0 = 0 +4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:3/0/physics_layer_0/angular_velocity = 0.0 +5:3/0 = 0 +5:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:3/0/physics_layer_0/angular_velocity = 0.0 +6:3/0 = 0 +6:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:3/0/physics_layer_0/angular_velocity = 0.0 +7:3/0 = 0 +7:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:3/0/physics_layer_0/angular_velocity = 0.0 +8:3/0 = 0 +8:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:3/0/physics_layer_0/angular_velocity = 0.0 +9:3/0 = 0 +9:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:3/0/physics_layer_0/angular_velocity = 0.0 +10:3/0 = 0 +10:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:3/0/physics_layer_0/angular_velocity = 0.0 +11:3/0 = 0 +11:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:3/0/physics_layer_0/angular_velocity = 0.0 +12:3/0 = 0 +12:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:3/0/physics_layer_0/angular_velocity = 0.0 +13:3/0 = 0 +13:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:3/0/physics_layer_0/angular_velocity = 0.0 +14:3/0 = 0 +14:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:3/0/physics_layer_0/angular_velocity = 0.0 +15:3/0 = 0 +15:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:3/0/physics_layer_0/angular_velocity = 0.0 +0:4/0 = 0 +0:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:4/0/physics_layer_0/angular_velocity = 0.0 +1:4/0 = 0 +1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:4/0/physics_layer_0/angular_velocity = 0.0 +1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +2:4/0 = 0 +2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:4/0/physics_layer_0/angular_velocity = 0.0 +2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:4/0 = 0 +3:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:4/0/physics_layer_0/angular_velocity = 0.0 +3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:4/0 = 0 +4:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:4/0/physics_layer_0/angular_velocity = 0.0 +5:4/0 = 0 +5:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:4/0/physics_layer_0/angular_velocity = 0.0 +6:4/0 = 0 +6:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:4/0/physics_layer_0/angular_velocity = 0.0 +7:4/0 = 0 +7:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:4/0/physics_layer_0/angular_velocity = 0.0 +8:4/0 = 0 +8:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:4/0/physics_layer_0/angular_velocity = 0.0 +9:4/0 = 0 +9:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:4/0/physics_layer_0/angular_velocity = 0.0 +10:4/0 = 0 +10:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:4/0/physics_layer_0/angular_velocity = 0.0 +11:4/0 = 0 +11:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:4/0/physics_layer_0/angular_velocity = 0.0 +12:4/0 = 0 +12:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:4/0/physics_layer_0/angular_velocity = 0.0 +13:4/0 = 0 +13:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:4/0/physics_layer_0/angular_velocity = 0.0 +14:4/0 = 0 +14:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:4/0/physics_layer_0/angular_velocity = 0.0 +15:4/0 = 0 +15:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:4/0/physics_layer_0/angular_velocity = 0.0 +0:5/0 = 0 +0:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:5/0/physics_layer_0/angular_velocity = 0.0 +1:5/0 = 0 +1:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:5/0/physics_layer_0/angular_velocity = 0.0 +1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +2:5/0 = 0 +2:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:5/0/physics_layer_0/angular_velocity = 0.0 +2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:5/0 = 0 +3:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:5/0/physics_layer_0/angular_velocity = 0.0 +3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:5/0 = 0 +4:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:5/0/physics_layer_0/angular_velocity = 0.0 +5:5/0 = 0 +5:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:5/0/physics_layer_0/angular_velocity = 0.0 +6:5/0 = 0 +6:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:5/0/physics_layer_0/angular_velocity = 0.0 +7:5/0 = 0 +7:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:5/0/physics_layer_0/angular_velocity = 0.0 +8:5/0 = 0 +8:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:5/0/physics_layer_0/angular_velocity = 0.0 +9:5/0 = 0 +9:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:5/0/physics_layer_0/angular_velocity = 0.0 +10:5/0 = 0 +10:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:5/0/physics_layer_0/angular_velocity = 0.0 +11:5/0 = 0 +11:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:5/0/physics_layer_0/angular_velocity = 0.0 +12:5/0 = 0 +12:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:5/0/physics_layer_0/angular_velocity = 0.0 +13:5/0 = 0 +13:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:5/0/physics_layer_0/angular_velocity = 0.0 +14:5/0 = 0 +14:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:5/0/physics_layer_0/angular_velocity = 0.0 +15:5/0 = 0 +15:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:5/0/physics_layer_0/angular_velocity = 0.0 +0:6/0 = 0 +0:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/0/physics_layer_0/angular_velocity = 0.0 +1:6/0 = 0 +1:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:6/0/physics_layer_0/angular_velocity = 0.0 +1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +2:6/0 = 0 +2:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:6/0/physics_layer_0/angular_velocity = 0.0 +2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:6/0 = 0 +3:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:6/0/physics_layer_0/angular_velocity = 0.0 +3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:6/0 = 0 +4:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:6/0/physics_layer_0/angular_velocity = 0.0 +5:6/0 = 0 +5:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:6/0/physics_layer_0/angular_velocity = 0.0 +6:6/0 = 0 +6:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:6/0/physics_layer_0/angular_velocity = 0.0 +7:6/0 = 0 +7:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:6/0/physics_layer_0/angular_velocity = 0.0 +8:6/0 = 0 +8:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:6/0/physics_layer_0/angular_velocity = 0.0 +9:6/0 = 0 +9:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:6/0/physics_layer_0/angular_velocity = 0.0 +10:6/0 = 0 +10:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:6/0/physics_layer_0/angular_velocity = 0.0 +11:6/0 = 0 +11:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:6/0/physics_layer_0/angular_velocity = 0.0 +12:6/0 = 0 +12:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:6/0/physics_layer_0/angular_velocity = 0.0 +13:6/0 = 0 +13:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:6/0/physics_layer_0/angular_velocity = 0.0 +14:6/0 = 0 +14:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:6/0/physics_layer_0/angular_velocity = 0.0 +15:6/0 = 0 +15:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:6/0/physics_layer_0/angular_velocity = 0.0 +0:7/0 = 0 +0:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:7/0/physics_layer_0/angular_velocity = 0.0 +1:7/0 = 0 +1:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:7/0/physics_layer_0/angular_velocity = 0.0 +1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +2:7/0 = 0 +2:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:7/0/physics_layer_0/angular_velocity = 0.0 +2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:7/0 = 0 +3:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:7/0/physics_layer_0/angular_velocity = 0.0 +3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:7/0 = 0 +4:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:7/0/physics_layer_0/angular_velocity = 0.0 +5:7/0 = 0 +5:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:7/0/physics_layer_0/angular_velocity = 0.0 +6:7/0 = 0 +6:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:7/0/physics_layer_0/angular_velocity = 0.0 +7:7/0 = 0 +7:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:7/0/physics_layer_0/angular_velocity = 0.0 +8:7/0 = 0 +8:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:7/0/physics_layer_0/angular_velocity = 0.0 +9:7/0 = 0 +9:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:7/0/physics_layer_0/angular_velocity = 0.0 +10:7/0 = 0 +10:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:7/0/physics_layer_0/angular_velocity = 0.0 +11:7/0 = 0 +11:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:7/0/physics_layer_0/angular_velocity = 0.0 +12:7/0 = 0 +12:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:7/0/physics_layer_0/angular_velocity = 0.0 +13:7/0 = 0 +13:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:7/0/physics_layer_0/angular_velocity = 0.0 +14:7/0 = 0 +14:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:7/0/physics_layer_0/angular_velocity = 0.0 +15:7/0 = 0 +15:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:7/0/physics_layer_0/angular_velocity = 0.0 +0:8/0 = 0 +0:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:8/0/physics_layer_0/angular_velocity = 0.0 +1:8/0 = 0 +1:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:8/0/physics_layer_0/angular_velocity = 0.0 +2:8/0 = 0 +2:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:8/0/physics_layer_0/angular_velocity = 0.0 +3:8/0 = 0 +3:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:8/0/physics_layer_0/angular_velocity = 0.0 +4:8/0 = 0 +4:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:8/0/physics_layer_0/angular_velocity = 0.0 +5:8/0 = 0 +5:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:8/0/physics_layer_0/angular_velocity = 0.0 +6:8/0 = 0 +6:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:8/0/physics_layer_0/angular_velocity = 0.0 +7:8/0 = 0 +7:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:8/0/physics_layer_0/angular_velocity = 0.0 +8:8/0 = 0 +8:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:8/0/physics_layer_0/angular_velocity = 0.0 +9:8/0 = 0 +9:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:8/0/physics_layer_0/angular_velocity = 0.0 +10:8/0 = 0 +10:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:8/0/physics_layer_0/angular_velocity = 0.0 +11:8/0 = 0 +11:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:8/0/physics_layer_0/angular_velocity = 0.0 +12:8/0 = 0 +12:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:8/0/physics_layer_0/angular_velocity = 0.0 +13:8/0 = 0 +13:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:8/0/physics_layer_0/angular_velocity = 0.0 +14:8/0 = 0 +14:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:8/0/physics_layer_0/angular_velocity = 0.0 +15:8/0 = 0 +15:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:8/0/physics_layer_0/angular_velocity = 0.0 +0:9/0 = 0 +0:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:9/0/physics_layer_0/angular_velocity = 0.0 +1:9/0 = 0 +1:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:9/0/physics_layer_0/angular_velocity = 0.0 +2:9/0 = 0 +2:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:9/0/physics_layer_0/angular_velocity = 0.0 +3:9/0 = 0 +3:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:9/0/physics_layer_0/angular_velocity = 0.0 +4:9/0 = 0 +4:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:9/0/physics_layer_0/angular_velocity = 0.0 +5:9/0 = 0 +5:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:9/0/physics_layer_0/angular_velocity = 0.0 +6:9/0 = 0 +6:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:9/0/physics_layer_0/angular_velocity = 0.0 +7:9/0 = 0 +7:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:9/0/physics_layer_0/angular_velocity = 0.0 +10:9/0 = 0 +10:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:9/0/physics_layer_0/angular_velocity = 0.0 +11:9/0 = 0 +11:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:9/0/physics_layer_0/angular_velocity = 0.0 +12:9/0 = 0 +12:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +12:9/0/physics_layer_0/angular_velocity = 0.0 +13:9/0 = 0 +13:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:9/0/physics_layer_0/angular_velocity = 0.0 +14:9/0 = 0 +14:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:9/0/physics_layer_0/angular_velocity = 0.0 +15:9/0 = 0 +15:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:9/0/physics_layer_0/angular_velocity = 0.0 +0:10/0 = 0 +0:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:10/0/physics_layer_0/angular_velocity = 0.0 +1:10/0 = 0 +1:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:10/0/physics_layer_0/angular_velocity = 0.0 +2:10/0 = 0 +2:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:10/0/physics_layer_0/angular_velocity = 0.0 +3:10/0 = 0 +3:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:10/0/physics_layer_0/angular_velocity = 0.0 +5:10/0 = 0 +5:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:10/0/physics_layer_0/angular_velocity = 0.0 +6:10/0 = 0 +6:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:10/0/physics_layer_0/angular_velocity = 0.0 +7:10/0 = 0 +7:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:10/0/physics_layer_0/angular_velocity = 0.0 +13:10/0 = 0 +13:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:10/0/physics_layer_0/angular_velocity = 0.0 +14:10/0 = 0 +14:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:10/0/physics_layer_0/angular_velocity = 0.0 +15:10/0 = 0 +15:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:10/0/physics_layer_0/angular_velocity = 0.0 +0:11/0 = 0 +0:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:11/0/physics_layer_0/angular_velocity = 0.0 +1:11/0 = 0 +1:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:11/0/physics_layer_0/angular_velocity = 0.0 +2:11/0 = 0 +2:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:11/0/physics_layer_0/angular_velocity = 0.0 +3:11/0 = 0 +3:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:11/0/physics_layer_0/angular_velocity = 0.0 +4:11/0 = 0 +4:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:11/0/physics_layer_0/angular_velocity = 0.0 +13:11/0 = 0 +13:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +13:11/0/physics_layer_0/angular_velocity = 0.0 +14:11/0 = 0 +14:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +14:11/0/physics_layer_0/angular_velocity = 0.0 +15:11/0 = 0 +15:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +15:11/0/physics_layer_0/angular_velocity = 0.0 + +[resource] +physics_layer_0/collision_layer = 1 +physics_layer_0/collision_mask = 0 +sources/1 = SubResource("TileSetAtlasSource_rkmbu") diff --git a/DungeonShooting_Godot/resource/material/Blend.gdshader b/DungeonShooting_Godot/resource/material/Blend.gdshader new file mode 100644 index 0000000..68a6001 --- /dev/null +++ b/DungeonShooting_Godot/resource/material/Blend.gdshader @@ -0,0 +1,10 @@ +shader_type canvas_item; + +uniform vec4 blend : source_color = vec4(1.0, 1.0, 1.0, 1.0); +uniform float schedule = 1.0; + +void fragment() { + vec4 textureColor = texture(TEXTURE, UV); + vec4 col = mix(textureColor, blend, schedule); + COLOR = mix(vec4(0.0, 0.0, 0.0, 0.0), col, textureColor.a); +} diff --git a/DungeonShooting_Godot/resource/material/Blend.tres b/DungeonShooting_Godot/resource/material/Blend.tres new file mode 100644 index 0000000..02c6b22 --- /dev/null +++ b/DungeonShooting_Godot/resource/material/Blend.tres @@ -0,0 +1,11 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3] + +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1"] + + +[resource] +resource_local_to_scene = true +render_priority = 4 +shader = ExtResource( 1 ) +shader_param/blend = Color( 0, 0, 0, 0.470588 ) +shader_param/schedule = 1 diff --git a/DungeonShooting_Godot/resource/material/SmokeParticleMaterial.tres b/DungeonShooting_Godot/resource/material/SmokeParticleMaterial.tres new file mode 100644 index 0000000..1bbb83e --- /dev/null +++ b/DungeonShooting_Godot/resource/material/SmokeParticleMaterial.tres @@ -0,0 +1,17 @@ +[gd_resource type="ParticleProcessMaterial" load_steps=2 format=3 uid="uid://c1chld6lkpgji"] + +[ext_resource type="Texture2D" uid="uid://bs1lan5uwxyfg" path="res://resource/curve/Curve1.tres" id="1_yr5l8"] + +[resource] +particle_flag_disable_z = true +spread = 180.0 +gravity = Vector3(0, 0, 0) +initial_velocity_min = 5.0 +initial_velocity_max = 35.0 +orbit_velocity_min = 0.0 +orbit_velocity_max = 0.0 +scale_min = 0.8 +scale_max = 0.8 +scale_curve = ExtResource("1_yr5l8") +color = Color(1, 1, 1, 0.533333) +anim_offset_max = 1.0 diff --git a/DungeonShooting_Godot/resource/materlal/Blend.gdshader b/DungeonShooting_Godot/resource/materlal/Blend.gdshader deleted file mode 100644 index 68a6001..0000000 --- a/DungeonShooting_Godot/resource/materlal/Blend.gdshader +++ /dev/null @@ -1,10 +0,0 @@ -shader_type canvas_item; - -uniform vec4 blend : source_color = vec4(1.0, 1.0, 1.0, 1.0); -uniform float schedule = 1.0; - -void fragment() { - vec4 textureColor = texture(TEXTURE, UV); - vec4 col = mix(textureColor, blend, schedule); - COLOR = mix(vec4(0.0, 0.0, 0.0, 0.0), col, textureColor.a); -} diff --git a/DungeonShooting_Godot/resource/materlal/Blend.tres b/DungeonShooting_Godot/resource/materlal/Blend.tres deleted file mode 100644 index 1bfd155..0000000 --- a/DungeonShooting_Godot/resource/materlal/Blend.tres +++ /dev/null @@ -1,10 +0,0 @@ -[gd_resource type="ShaderMaterial" load_steps=2 format=2] - -[ext_resource path="res://resource/materlal/Blend.gdshader" type="Shader" id=1] - -[resource] -resource_local_to_scene = true -render_priority = 4 -shader = ExtResource( 1 ) -shader_param/blend = Color( 0, 0, 0, 0.470588 ) -shader_param/schedule = 1 diff --git a/DungeonShooting_Godot/resource/sprite/map/door1_down.png b/DungeonShooting_Godot/resource/sprite/map/door1_down.png new file mode 100644 index 0000000..a5014a4 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/map/door1_down.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/map/door1_down.png.import b/DungeonShooting_Godot/resource/sprite/map/door1_down.png.import new file mode 100644 index 0000000..de95af2 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/map/door1_down.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dviv44fhwvkb1" +path="res://.godot/imported/door1_down.png-59ffc0993731fd627318f9402b22d199.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/map/door1_down.png" +dest_files=["res://.godot/imported/door1_down.png-59ffc0993731fd627318f9402b22d199.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/DungeonShooting_Godot/resource/theme/mainTheme.tres b/DungeonShooting_Godot/resource/theme/mainTheme.tres index fb564f6..f0db64e 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_tbn6v"] +[sub_resource type="Image" id="Image_151oh"] 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_tbn6v") +image = SubResource("Image_151oh") [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_voo5a"] +[sub_resource type="Image" id="Image_ev2o0"] 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_voo5a") +image = SubResource("Image_ev2o0") [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_ivjvr"] +[sub_resource type="Image" id="Image_22as7"] 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_ivjvr") +image = SubResource("Image_22as7") [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_dntx8"] +[sub_resource type="Image" id="Image_xsoii"] 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_dntx8") +image = SubResource("Image_xsoii") [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_4pwn7"] +[sub_resource type="Image" id="Image_g5uvy"] 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_4pwn7") +image = SubResource("Image_g5uvy") [sub_resource type="StyleBoxFlat" id="57"] content_margin_left = 6.0 diff --git a/DungeonShooting_Godot/scene/Room.tscn b/DungeonShooting_Godot/scene/Room.tscn index 6db29d2..cfa9de3 100644 --- a/DungeonShooting_Godot/scene/Room.tscn +++ b/DungeonShooting_Godot/scene/Room.tscn @@ -1,569 +1,13 @@ -[gd_scene load_steps=6 format=3 uid="uid://bqf2vks5ggnsp"] +[gd_scene load_steps=4 format=3 uid="uid://bqf2vks5ggnsp"] -[ext_resource type="Texture2D" uid="uid://dj8nrd5od4fcl" path="res://resource/sprite/environment/itch-io-DungeonTileset4/16x16 dungeon ii wall reconfig v04 spritesheet.png" id="1"] [ext_resource type="Script" path="res://src/game/room/RoomManager.cs" id="1_3w1c7"] +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="2_30rar"] [sub_resource type="Environment" id="Environment_ji6mi"] background_mode = 3 glow_enabled = true glow_intensity = 4.74 -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rkmbu"] -texture = ExtResource("1") -0:0/0 = 0 -0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:0/0/physics_layer_0/angular_velocity = 0.0 -1:0/0 = 0 -1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:0/0/physics_layer_0/angular_velocity = 0.0 -2:0/0 = 0 -2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:0/0/physics_layer_0/angular_velocity = 0.0 -3:0/0 = 0 -3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:0/0/physics_layer_0/angular_velocity = 0.0 -4:0/0 = 0 -4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:0/0/physics_layer_0/angular_velocity = 0.0 -5:0/0 = 0 -5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:0/0/physics_layer_0/angular_velocity = 0.0 -6:0/0 = 0 -6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:0/0/physics_layer_0/angular_velocity = 0.0 -7:0/0 = 0 -7:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:0/0/physics_layer_0/angular_velocity = 0.0 -8:0/0 = 0 -8:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -8:0/0/physics_layer_0/angular_velocity = 0.0 -9:0/0 = 0 -9:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -9:0/0/physics_layer_0/angular_velocity = 0.0 -10:0/0 = 0 -10:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:0/0/physics_layer_0/angular_velocity = 0.0 -11:0/0 = 0 -11:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:0/0/physics_layer_0/angular_velocity = 0.0 -12:0/0 = 0 -12:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:0/0/physics_layer_0/angular_velocity = 0.0 -13:0/0 = 0 -13:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:0/0/physics_layer_0/angular_velocity = 0.0 -14:0/0 = 0 -14:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:0/0/physics_layer_0/angular_velocity = 0.0 -15:0/0 = 0 -15:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:0/0/physics_layer_0/angular_velocity = 0.0 -0:1/0 = 0 -0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:1/0/physics_layer_0/angular_velocity = 0.0 -1:1/0 = 0 -1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:1/0/physics_layer_0/angular_velocity = 0.0 -2:1/0 = 0 -2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:1/0/physics_layer_0/angular_velocity = 0.0 -3:1/0 = 0 -3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:1/0/physics_layer_0/angular_velocity = 0.0 -4:1/0 = 0 -4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:1/0/physics_layer_0/angular_velocity = 0.0 -5:1/0 = 0 -5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:1/0/physics_layer_0/angular_velocity = 0.0 -6:1/0 = 0 -6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:1/0/physics_layer_0/angular_velocity = 0.0 -7:1/0 = 0 -7:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:1/0/physics_layer_0/angular_velocity = 0.0 -8:1/0 = 0 -8:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -8:1/0/physics_layer_0/angular_velocity = 0.0 -9:1/0 = 0 -9:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -9:1/0/physics_layer_0/angular_velocity = 0.0 -10:1/0 = 0 -10:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:1/0/physics_layer_0/angular_velocity = 0.0 -11:1/0 = 0 -11:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:1/0/physics_layer_0/angular_velocity = 0.0 -12:1/0 = 0 -12:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:1/0/physics_layer_0/angular_velocity = 0.0 -13:1/0 = 0 -13:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:1/0/physics_layer_0/angular_velocity = 0.0 -14:1/0 = 0 -14:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:1/0/physics_layer_0/angular_velocity = 0.0 -15:1/0 = 0 -15:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:1/0/physics_layer_0/angular_velocity = 0.0 -0:2/0 = 0 -0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:2/0/physics_layer_0/angular_velocity = 0.0 -1:2/0 = 0 -1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:2/0/physics_layer_0/angular_velocity = 0.0 -1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:2/0 = 0 -2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:2/0/physics_layer_0/angular_velocity = 0.0 -2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:2/0 = 0 -3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:2/0/physics_layer_0/angular_velocity = 0.0 -3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:2/0 = 0 -4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:2/0/physics_layer_0/angular_velocity = 0.0 -5:2/0 = 0 -5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:2/0/physics_layer_0/angular_velocity = 0.0 -6:2/0 = 0 -6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:2/0/physics_layer_0/angular_velocity = 0.0 -7:2/0 = 0 -7:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:2/0/physics_layer_0/angular_velocity = 0.0 -8:2/0 = 0 -8:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -8:2/0/physics_layer_0/angular_velocity = 0.0 -9:2/0 = 0 -9:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -9:2/0/physics_layer_0/angular_velocity = 0.0 -10:2/0 = 0 -10:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:2/0/physics_layer_0/angular_velocity = 0.0 -11:2/0 = 0 -11:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:2/0/physics_layer_0/angular_velocity = 0.0 -11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:2/0 = 0 -12:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:2/0/physics_layer_0/angular_velocity = 0.0 -13:2/0 = 0 -13:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:2/0/physics_layer_0/angular_velocity = 0.0 -13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:2/0 = 0 -14:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:2/0/physics_layer_0/angular_velocity = 0.0 -15:2/0 = 0 -15:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:2/0/physics_layer_0/angular_velocity = 0.0 -0:3/0 = 0 -0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:3/0/physics_layer_0/angular_velocity = 0.0 -1:3/0 = 0 -1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:3/0/physics_layer_0/angular_velocity = 0.0 -1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:3/0 = 0 -2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:3/0/physics_layer_0/angular_velocity = 0.0 -2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:3/0 = 0 -3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:3/0/physics_layer_0/angular_velocity = 0.0 -3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:3/0 = 0 -4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:3/0/physics_layer_0/angular_velocity = 0.0 -5:3/0 = 0 -5:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:3/0/physics_layer_0/angular_velocity = 0.0 -6:3/0 = 0 -6:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:3/0/physics_layer_0/angular_velocity = 0.0 -7:3/0 = 0 -7:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:3/0/physics_layer_0/angular_velocity = 0.0 -8:3/0 = 0 -8:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -8:3/0/physics_layer_0/angular_velocity = 0.0 -9:3/0 = 0 -9:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -9:3/0/physics_layer_0/angular_velocity = 0.0 -10:3/0 = 0 -10:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:3/0/physics_layer_0/angular_velocity = 0.0 -11:3/0 = 0 -11:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:3/0/physics_layer_0/angular_velocity = 0.0 -12:3/0 = 0 -12:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:3/0/physics_layer_0/angular_velocity = 0.0 -13:3/0 = 0 -13:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:3/0/physics_layer_0/angular_velocity = 0.0 -14:3/0 = 0 -14:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:3/0/physics_layer_0/angular_velocity = 0.0 -15:3/0 = 0 -15:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:3/0/physics_layer_0/angular_velocity = 0.0 -0:4/0 = 0 -0:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:4/0/physics_layer_0/angular_velocity = 0.0 -1:4/0 = 0 -1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:4/0/physics_layer_0/angular_velocity = 0.0 -1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:4/0 = 0 -2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:4/0/physics_layer_0/angular_velocity = 0.0 -2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:4/0 = 0 -3:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:4/0/physics_layer_0/angular_velocity = 0.0 -3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:4/0 = 0 -4:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:4/0/physics_layer_0/angular_velocity = 0.0 -5:4/0 = 0 -5:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:4/0/physics_layer_0/angular_velocity = 0.0 -6:4/0 = 0 -6:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:4/0/physics_layer_0/angular_velocity = 0.0 -7:4/0 = 0 -7:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:4/0/physics_layer_0/angular_velocity = 0.0 -8:4/0 = 0 -8:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -8:4/0/physics_layer_0/angular_velocity = 0.0 -9:4/0 = 0 -9:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -9:4/0/physics_layer_0/angular_velocity = 0.0 -10:4/0 = 0 -10:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:4/0/physics_layer_0/angular_velocity = 0.0 -11:4/0 = 0 -11:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:4/0/physics_layer_0/angular_velocity = 0.0 -12:4/0 = 0 -12:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:4/0/physics_layer_0/angular_velocity = 0.0 -13:4/0 = 0 -13:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:4/0/physics_layer_0/angular_velocity = 0.0 -14:4/0 = 0 -14:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:4/0/physics_layer_0/angular_velocity = 0.0 -15:4/0 = 0 -15:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:4/0/physics_layer_0/angular_velocity = 0.0 -0:5/0 = 0 -0:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:5/0/physics_layer_0/angular_velocity = 0.0 -1:5/0 = 0 -1:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:5/0/physics_layer_0/angular_velocity = 0.0 -1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:5/0 = 0 -2:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:5/0/physics_layer_0/angular_velocity = 0.0 -2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:5/0 = 0 -3:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:5/0/physics_layer_0/angular_velocity = 0.0 -3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:5/0 = 0 -4:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:5/0/physics_layer_0/angular_velocity = 0.0 -5:5/0 = 0 -5:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:5/0/physics_layer_0/angular_velocity = 0.0 -6:5/0 = 0 -6:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:5/0/physics_layer_0/angular_velocity = 0.0 -7:5/0 = 0 -7:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:5/0/physics_layer_0/angular_velocity = 0.0 -8:5/0 = 0 -8:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -8:5/0/physics_layer_0/angular_velocity = 0.0 -9:5/0 = 0 -9:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -9:5/0/physics_layer_0/angular_velocity = 0.0 -10:5/0 = 0 -10:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:5/0/physics_layer_0/angular_velocity = 0.0 -11:5/0 = 0 -11:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:5/0/physics_layer_0/angular_velocity = 0.0 -12:5/0 = 0 -12:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:5/0/physics_layer_0/angular_velocity = 0.0 -13:5/0 = 0 -13:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:5/0/physics_layer_0/angular_velocity = 0.0 -14:5/0 = 0 -14:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:5/0/physics_layer_0/angular_velocity = 0.0 -15:5/0 = 0 -15:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:5/0/physics_layer_0/angular_velocity = 0.0 -0:6/0 = 0 -0:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:6/0/physics_layer_0/angular_velocity = 0.0 -1:6/0 = 0 -1:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:6/0/physics_layer_0/angular_velocity = 0.0 -1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:6/0 = 0 -2:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:6/0/physics_layer_0/angular_velocity = 0.0 -2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:6/0 = 0 -3:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:6/0/physics_layer_0/angular_velocity = 0.0 -3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:6/0 = 0 -4:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:6/0/physics_layer_0/angular_velocity = 0.0 -5:6/0 = 0 -5:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:6/0/physics_layer_0/angular_velocity = 0.0 -6:6/0 = 0 -6:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:6/0/physics_layer_0/angular_velocity = 0.0 -7:6/0 = 0 -7:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:6/0/physics_layer_0/angular_velocity = 0.0 -8:6/0 = 0 -8:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -8:6/0/physics_layer_0/angular_velocity = 0.0 -9:6/0 = 0 -9:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -9:6/0/physics_layer_0/angular_velocity = 0.0 -10:6/0 = 0 -10:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:6/0/physics_layer_0/angular_velocity = 0.0 -11:6/0 = 0 -11:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:6/0/physics_layer_0/angular_velocity = 0.0 -12:6/0 = 0 -12:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:6/0/physics_layer_0/angular_velocity = 0.0 -13:6/0 = 0 -13:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:6/0/physics_layer_0/angular_velocity = 0.0 -14:6/0 = 0 -14:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:6/0/physics_layer_0/angular_velocity = 0.0 -15:6/0 = 0 -15:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:6/0/physics_layer_0/angular_velocity = 0.0 -0:7/0 = 0 -0:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:7/0/physics_layer_0/angular_velocity = 0.0 -1:7/0 = 0 -1:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:7/0/physics_layer_0/angular_velocity = 0.0 -1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:7/0 = 0 -2:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:7/0/physics_layer_0/angular_velocity = 0.0 -2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:7/0 = 0 -3:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:7/0/physics_layer_0/angular_velocity = 0.0 -3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:7/0 = 0 -4:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:7/0/physics_layer_0/angular_velocity = 0.0 -5:7/0 = 0 -5:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:7/0/physics_layer_0/angular_velocity = 0.0 -6:7/0 = 0 -6:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:7/0/physics_layer_0/angular_velocity = 0.0 -7:7/0 = 0 -7:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:7/0/physics_layer_0/angular_velocity = 0.0 -8:7/0 = 0 -8:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -8:7/0/physics_layer_0/angular_velocity = 0.0 -9:7/0 = 0 -9:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -9:7/0/physics_layer_0/angular_velocity = 0.0 -10:7/0 = 0 -10:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:7/0/physics_layer_0/angular_velocity = 0.0 -11:7/0 = 0 -11:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:7/0/physics_layer_0/angular_velocity = 0.0 -12:7/0 = 0 -12:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:7/0/physics_layer_0/angular_velocity = 0.0 -13:7/0 = 0 -13:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:7/0/physics_layer_0/angular_velocity = 0.0 -14:7/0 = 0 -14:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:7/0/physics_layer_0/angular_velocity = 0.0 -15:7/0 = 0 -15:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:7/0/physics_layer_0/angular_velocity = 0.0 -0:8/0 = 0 -0:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:8/0/physics_layer_0/angular_velocity = 0.0 -1:8/0 = 0 -1:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:8/0/physics_layer_0/angular_velocity = 0.0 -2:8/0 = 0 -2:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:8/0/physics_layer_0/angular_velocity = 0.0 -3:8/0 = 0 -3:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:8/0/physics_layer_0/angular_velocity = 0.0 -4:8/0 = 0 -4:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:8/0/physics_layer_0/angular_velocity = 0.0 -5:8/0 = 0 -5:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:8/0/physics_layer_0/angular_velocity = 0.0 -6:8/0 = 0 -6:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:8/0/physics_layer_0/angular_velocity = 0.0 -7:8/0 = 0 -7:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:8/0/physics_layer_0/angular_velocity = 0.0 -8:8/0 = 0 -8:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -8:8/0/physics_layer_0/angular_velocity = 0.0 -9:8/0 = 0 -9:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -9:8/0/physics_layer_0/angular_velocity = 0.0 -10:8/0 = 0 -10:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:8/0/physics_layer_0/angular_velocity = 0.0 -11:8/0 = 0 -11:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:8/0/physics_layer_0/angular_velocity = 0.0 -12:8/0 = 0 -12:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:8/0/physics_layer_0/angular_velocity = 0.0 -13:8/0 = 0 -13:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:8/0/physics_layer_0/angular_velocity = 0.0 -14:8/0 = 0 -14:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:8/0/physics_layer_0/angular_velocity = 0.0 -15:8/0 = 0 -15:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:8/0/physics_layer_0/angular_velocity = 0.0 -0:9/0 = 0 -0:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:9/0/physics_layer_0/angular_velocity = 0.0 -1:9/0 = 0 -1:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:9/0/physics_layer_0/angular_velocity = 0.0 -2:9/0 = 0 -2:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:9/0/physics_layer_0/angular_velocity = 0.0 -3:9/0 = 0 -3:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:9/0/physics_layer_0/angular_velocity = 0.0 -4:9/0 = 0 -4:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:9/0/physics_layer_0/angular_velocity = 0.0 -5:9/0 = 0 -5:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:9/0/physics_layer_0/angular_velocity = 0.0 -6:9/0 = 0 -6:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:9/0/physics_layer_0/angular_velocity = 0.0 -7:9/0 = 0 -7:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:9/0/physics_layer_0/angular_velocity = 0.0 -10:9/0 = 0 -10:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -10:9/0/physics_layer_0/angular_velocity = 0.0 -11:9/0 = 0 -11:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -11:9/0/physics_layer_0/angular_velocity = 0.0 -12:9/0 = 0 -12:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -12:9/0/physics_layer_0/angular_velocity = 0.0 -13:9/0 = 0 -13:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:9/0/physics_layer_0/angular_velocity = 0.0 -14:9/0 = 0 -14:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:9/0/physics_layer_0/angular_velocity = 0.0 -15:9/0 = 0 -15:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:9/0/physics_layer_0/angular_velocity = 0.0 -0:10/0 = 0 -0:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:10/0/physics_layer_0/angular_velocity = 0.0 -1:10/0 = 0 -1:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:10/0/physics_layer_0/angular_velocity = 0.0 -2:10/0 = 0 -2:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:10/0/physics_layer_0/angular_velocity = 0.0 -3:10/0 = 0 -3:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:10/0/physics_layer_0/angular_velocity = 0.0 -5:10/0 = 0 -5:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -5:10/0/physics_layer_0/angular_velocity = 0.0 -6:10/0 = 0 -6:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -6:10/0/physics_layer_0/angular_velocity = 0.0 -7:10/0 = 0 -7:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -7:10/0/physics_layer_0/angular_velocity = 0.0 -13:10/0 = 0 -13:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:10/0/physics_layer_0/angular_velocity = 0.0 -14:10/0 = 0 -14:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:10/0/physics_layer_0/angular_velocity = 0.0 -15:10/0 = 0 -15:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:10/0/physics_layer_0/angular_velocity = 0.0 -0:11/0 = 0 -0:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:11/0/physics_layer_0/angular_velocity = 0.0 -1:11/0 = 0 -1:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) -1:11/0/physics_layer_0/angular_velocity = 0.0 -2:11/0 = 0 -2:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) -2:11/0/physics_layer_0/angular_velocity = 0.0 -3:11/0 = 0 -3:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) -3:11/0/physics_layer_0/angular_velocity = 0.0 -4:11/0 = 0 -4:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) -4:11/0/physics_layer_0/angular_velocity = 0.0 -13:11/0 = 0 -13:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) -13:11/0/physics_layer_0/angular_velocity = 0.0 -14:11/0 = 0 -14:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) -14:11/0/physics_layer_0/angular_velocity = 0.0 -15:11/0 = 0 -15:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) -15:11/0/physics_layer_0/angular_velocity = 0.0 - -[sub_resource type="TileSet" id="TileSet_bspf4"] -physics_layer_0/collision_layer = 1 -physics_layer_0/collision_mask = 0 -sources/1 = SubResource("TileSetAtlasSource_rkmbu") - [node name="Room" type="Node2D" node_paths=PackedStringArray("NormalLayer", "YSortLayer", "TileRoot")] script = ExtResource("1_3w1c7") NormalLayer = NodePath("NormalLayer") @@ -576,7 +20,7 @@ [node name="TileRoot" type="TileMap" parent="."] y_sort_enabled = true -tile_set = SubResource("TileSet_bspf4") +tile_set = ExtResource("2_30rar") format = 2 layer_0/name = "Floor" layer_0/z_index = -10 diff --git a/DungeonShooting_Godot/scene/test/TestExpression.tscn b/DungeonShooting_Godot/scene/test/TestExpression.tscn new file mode 100644 index 0000000..13731e2 --- /dev/null +++ b/DungeonShooting_Godot/scene/test/TestExpression.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://blp7bo6tyoqlr"] + +[ext_resource type="Script" path="res://src/test/TestExpression.cs" id="1_qmchi"] + +[node name="TestExpression" type="Node2D"] +script = ExtResource("1_qmchi") +Str = "0003; +0001(w:100,ca:15,ra:30); +0002(w:120,ca:10,ra:20);" diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs index bf322d7..33060d8 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs @@ -142,6 +142,37 @@ /// public bool EnableVerticalMotion { get; set; } = true; + /// + /// 是否启用物体更新行为, 默认 true, 如果禁用, 则会停止当前物体的 Process(), PhysicsProcess() 调用, 并且禁用 Collision 节点, 禁用后所有组件也同样被禁用行为 + /// + public bool EnableBehavior + { + get => _enableBehavior; + set + { + if (value != _enableBehavior) + { + _enableBehavior = value; + SetProcess(value); + SetPhysicsProcess(value); + if (value) + { + Collision.Disabled = _enableBehaviorCollisionDisabledFlag; + } + else + { + _enableBehaviorCollisionDisabledFlag = Collision.Disabled; + Collision.Disabled = true; + } + } + } + } + + /// + /// 是否启用自定义行为, 默认 true, 如果禁用, 则会停止调用子类重写的 Process(), PhysicsProcess() 函数, 并且当前物体除 MoveController 以外的组件 Process(), PhysicsProcess() 也会停止调用 + /// + public bool EnableCustomBehavior { get; set; } = true; + // -------------------------------------------------------------------------------- //组件集合 @@ -192,7 +223,11 @@ //落到地上回弹的速度 private float _resilienceVerticalSpeed = 0; private bool _hasResilienceVerticalSpeed = false; - + + //是否启用物体行为 + private bool _enableBehavior = true; + private bool _enableBehaviorCollisionDisabledFlag; + // -------------------------------------------------------------------------------- //实例索引 @@ -521,9 +556,9 @@ /// 将该节点投抛出去 /// /// 初始高度 - /// 旋转速度 - /// 移动速率 /// 纵轴速度 + /// 移动速率 + /// 旋转速度 public void Throw(float altitude, float verticalSpeed, Vector2 velocity, float rotate) { var parent = GetParent(); @@ -555,9 +590,9 @@ /// /// 初始位置 /// 初始高度 - /// 旋转速度 - /// 移动速率 /// 纵轴速度 + /// 移动速率 + /// 旋转速度 public void Throw(Vector2 position, float altitude, float verticalSpeed, Vector2 velocity, float rotate) { GlobalPosition = position; @@ -628,6 +663,39 @@ if (component == null) return null; return (T)component; } + + /// + /// 设置混色材质的颜色 + /// + public void SetBlendColor(Color color) + { + _blendShaderMaterial.SetShaderParameter("blend", color); + } + + /// + /// 获取混色材质的颜色 + /// + public Color GetBlendColor() + { + return _blendShaderMaterial.GetShaderParameter("blend").AsColor(); + } + + /// + /// 设置混色材质的强度 + /// + public void SetBlendSchedule(float value) + { + _blendShaderMaterial.SetShaderParameter("schedule", value); + } + + /// + /// 获取混色材质的强度 + /// + public float GetBlendSchedule() + { + return _blendShaderMaterial.GetShaderParameter("schedule").AsSingle(); + } + /// /// 每帧调用一次, 为了防止子类覆盖 _Process(), 给 _Process() 加上了 sealed, 子类需要帧循环函数请重写 Process() 函数 @@ -635,27 +703,42 @@ public sealed override void _Process(double delta) { var newDelta = (float)delta; - Process(newDelta); + if (EnableCustomBehavior) + { + Process(newDelta); + } //更新组件 if (_components.Count > 0) { - var arr = _components.ToArray(); - for (int i = 0; i < arr.Length; i++) + if (EnableCustomBehavior) //启用所有组件 { - if (IsDestroyed) return; - var temp = arr[i].Value; - if (temp != null && temp.ActivityInstance == this && temp.Enable) + var arr = _components.ToArray(); + for (int i = 0; i < arr.Length; i++) { - if (!temp.IsReady) + if (IsDestroyed) return; + var temp = arr[i].Value; + if (temp != null && temp.ActivityInstance == this && temp.Enable) { - temp.Ready(); - temp.IsReady = true; - } + if (!temp.IsReady) + { + temp.Ready(); + temp.IsReady = true; + } - temp.Process(newDelta); + temp.Process(newDelta); + } } } + else //只更新 MoveController 组件 + { + if (!MoveController.IsReady) + { + MoveController.Ready(); + MoveController.IsReady = true; + } + MoveController.Process(newDelta); + } } // 下坠判定 @@ -786,7 +869,7 @@ } // Hit 动画 - if (_playHit && _blendShaderMaterial != null) + if (_playHit) { if (_playHitSchedule < 0.05f) { @@ -829,27 +912,42 @@ public sealed override void _PhysicsProcess(double delta) { var newDelta = (float)delta; - PhysicsProcess(newDelta); + if (EnableCustomBehavior) + { + PhysicsProcess(newDelta); + } //更新组件 if (_components.Count > 0) { - var arr = _components.ToArray(); - for (int i = 0; i < arr.Length; i++) + if (EnableCustomBehavior) //启用所有组件 { - if (IsDestroyed) return; - var temp = arr[i].Value; - if (temp != null && temp.ActivityInstance == this && temp.Enable) + var arr = _components.ToArray(); + for (int i = 0; i < arr.Length; i++) { - if (!temp.IsReady) + if (IsDestroyed) return; + var temp = arr[i].Value; + if (temp != null && temp.ActivityInstance == this && temp.Enable) { - temp.Ready(); - temp.IsReady = true; - } + if (!temp.IsReady) + { + temp.Ready(); + temp.IsReady = true; + } - temp.PhysicsProcess(newDelta); + temp.PhysicsProcess(newDelta); + } } } + else //只更新 MoveController 组件 + { + if (!MoveController.IsReady) + { + MoveController.Ready(); + MoveController.IsReady = true; + } + MoveController.PhysicsProcess(newDelta); + } } PhysicsProcessOver(newDelta); @@ -942,6 +1040,19 @@ } /// + /// 继承指定物体的运动速率, 该速率可能会有衰减 + /// + public void InheritVelocity(ActivityObject other) + { + var velocity = other.Velocity; + if (velocity != Vector2.Zero) + { + var force = MoveController.AddConstantForce(velocity * 0.5f, 15); + force.EnableResistanceInTheAir = false; + } + } + + /// /// 触发投抛动作 /// private void Throw() @@ -1125,7 +1236,7 @@ } /// - /// 开启一个协程, 返回协程 id, 协程是在普通帧执行的, 支持: 协程嵌套, WaitForSeconds, WaitForFixedProcess + /// 开启一个协程, 返回协程 id, 协程是在普通帧执行的, 支持: 协程嵌套, WaitForSeconds, WaitForFixedProcess, Task, SignalAwaiter /// public long StartCoroutine(IEnumerator able) { diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs index 201d18d..30a1ce2 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs @@ -68,7 +68,7 @@ sprite.Name = "ShadowSprite"; sprite.ZIndex = -1; var material = - ResourceManager.Load(ResourcePath.resource_materlal_Blend_tres, false); + ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); material.SetShaderParameter("blend", new Color(0, 0, 0, 0.47058824F)); material.SetShaderParameter("schedule", 1); sprite.Material = material; @@ -78,7 +78,7 @@ else if (sprite.Material == null) { var material = - ResourceManager.Load(ResourcePath.resource_materlal_Blend_tres, false); + ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); material.SetShaderParameter("blend", new Color(0, 0, 0, 0.47058824F)); material.SetShaderParameter("schedule", 1); sprite.Material = material; @@ -91,7 +91,7 @@ animatedSprite = new AnimatedSprite2D(); animatedSprite.Name = "AnimatedSprite"; var material = - ResourceManager.Load(ResourcePath.resource_materlal_Blend_tres, false); + ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); material.SetShaderParameter("blend", new Color(1, 1, 1, 1)); material.SetShaderParameter("schedule", 0); animatedSprite.Material = material; @@ -101,7 +101,7 @@ else if (animatedSprite.Material == null) { var material = - ResourceManager.Load(ResourcePath.resource_materlal_Blend_tres, false); + ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); material.SetShaderParameter("blend", new Color(1, 1, 1, 1)); material.SetShaderParameter("schedule", 0); animatedSprite.Material = material; diff --git a/DungeonShooting_Godot/src/framework/activity/ExternalForce.cs b/DungeonShooting_Godot/src/framework/activity/ExternalForce.cs index 53fe1c9..25a62a3 100644 --- a/DungeonShooting_Godot/src/framework/activity/ExternalForce.cs +++ b/DungeonShooting_Godot/src/framework/activity/ExternalForce.cs @@ -22,6 +22,11 @@ public float Resistance { get; set; } = 0; /// + /// 是否在空中也会受到阻力 + /// + public bool EnableResistanceInTheAir { get; set; } = true; + + /// /// 当速度到达 0 后是否自动销毁, 默认 true /// public bool AutoDestroy { get; set; } = true; diff --git a/DungeonShooting_Godot/src/framework/activity/components/MoveController.cs b/DungeonShooting_Godot/src/framework/activity/components/MoveController.cs index 3d84323..b4b8ea4 100644 --- a/DungeonShooting_Godot/src/framework/activity/components/MoveController.cs +++ b/DungeonShooting_Godot/src/framework/activity/components/MoveController.cs @@ -66,6 +66,14 @@ } /// + /// 获取所有外力的数量 + /// + public int GetForceCount() + { + return _forceList.Count; + } + + /// /// 快速创建一个外力, 该外力为匿名外力, 当速率变为 0 时自动销毁 /// /// 外力速率 @@ -77,6 +85,18 @@ force.Resistance = resistance; return force; } + + /// + /// 快速创建一个外力, 该外力为匿名外力, 当速率变为 0 时自动销毁 + /// + /// 外力速率 + public ExternalForce AddConstantForce(Vector2 velocity) + { + var force = AddConstantForce("_anonymity_" + _index++); + force.Velocity = velocity; + return force; + } + /// /// 根据名称添加一个外力, 并返回创建的外力的对象, 如果存在这个名称的外力, 移除之前的外力, 当速率变为 0 时不会自动销毁 @@ -204,7 +224,9 @@ //计算移动 ActivityInstance.Velocity = finallyVelocity; ActivityInstance.MoveAndSlide(); + //新速度 var newVelocity = ActivityInstance.Velocity; + if (newVelocity.X == 0f && _basisVelocity.X * finallyVelocity.X > 0) { _basisVelocity.X = 0; @@ -214,29 +236,45 @@ { _basisVelocity.Y = 0; } - - //调整外力速率 - for (var i = 0; i < _forceList.Count; i++) + + //是否撞到物体 + var collision = ActivityInstance.GetLastSlideCollision(); + if (collision != null) //执行反弹操作 { - var force = _forceList[i]; - if (force.Enable) + var no = collision.GetNormal().Rotated(Mathf.Pi * 0.5f); + newVelocity = (finallyVelocity - _basisVelocity).Reflect(no); + var length = _forceList.Count; + var v = newVelocity / (length / ActivityInstance.BounceStrength); + for (var i = 0; i < _forceList.Count; i++) { - var velocity = force.Velocity; - force.Velocity = new Vector2( - newVelocity.X == 0f && velocity.X * finallyVelocity.X > 0 ? 0 : velocity.X, - newVelocity.Y == 0f && velocity.Y * finallyVelocity.Y > 0 ? 0 : velocity.Y - ); - - //力速度衰减 - if (force.Resistance != 0) + _forceList[i].Velocity = v; + } + } + else //没有撞到物体 + { + //调整外力速率 + for (var i = 0; i < _forceList.Count; i++) + { + var force = _forceList[i]; + if (force.Enable) { - force.Velocity = force.Velocity.MoveToward(Vector2.Zero, force.Resistance * delta); - } + var velocity = force.Velocity; + force.Velocity = new Vector2( + newVelocity.X == 0f && velocity.X * finallyVelocity.X > 0 ? 0 : velocity.X, + newVelocity.Y == 0f && velocity.Y * finallyVelocity.Y > 0 ? 0 : velocity.Y + ); - //自动销毁 - if (force.AutoDestroy && force.Velocity == Vector2.Zero) - { - _forceList.RemoveAt(i--); + //力速度衰减 + if (force.Resistance != 0 && (force.EnableResistanceInTheAir || !ActivityInstance.IsThrowing)) + { + force.Velocity = force.Velocity.MoveToward(Vector2.Zero, force.Resistance * delta); + } + + //自动销毁 + if (force.AutoDestroy && force.Velocity == Vector2.Zero) + { + _forceList.RemoveAt(i--); + } } } } diff --git a/DungeonShooting_Godot/src/framework/common/Utils.cs b/DungeonShooting_Godot/src/framework/common/Utils.cs index 4b27f8e..36abea1 100644 --- a/DungeonShooting_Godot/src/framework/common/Utils.cs +++ b/DungeonShooting_Godot/src/framework/common/Utils.cs @@ -95,6 +95,33 @@ list.RemoveAt(index); return result; } + + /// + /// 从权重列表中随机抽取下标值 + /// + public static int RandomWeight(List weightList) + { + // 计算总权重 + var totalWeight = 0; + foreach (var weight in weightList) + { + totalWeight += weight; + } + + var randomNumber = _random.Next(totalWeight); + var currentWeight = 0; + for (var i = 0; i < weightList.Count; i++) + { + var value = weightList[i]; + currentWeight += value; + if (randomNumber < currentWeight) + { + return i; + } + } + + return RandomRangeInt(0, weightList.Count - 1); + } /// /// 根据四个点计算出矩形 diff --git a/DungeonShooting_Godot/src/framework/coroutine/CoroutineData.cs b/DungeonShooting_Godot/src/framework/coroutine/CoroutineData.cs index 0d5ed90..03c678c 100644 --- a/DungeonShooting_Godot/src/framework/coroutine/CoroutineData.cs +++ b/DungeonShooting_Godot/src/framework/coroutine/CoroutineData.cs @@ -1,6 +1,8 @@ using System.Collections; using System.Collections.Generic; +using System.Threading.Tasks; +using Godot; /// /// 协程数据 @@ -14,15 +16,29 @@ None, WaitForSeconds, WaitForFixedProcess, + WaitForTask, + WaitForSignalAwaiter, } + /// + /// 协程ID + /// public readonly long Id; - public WaitTypeEnum WaitType = WaitTypeEnum.None; + /// + /// 当前协程等待状态 + /// + public WaitTypeEnum WaitState = WaitTypeEnum.None; + /// + /// 协程迭代器 + /// public IEnumerator Enumerator; + + // ---------------------------------------------- public Stack EnumeratorStack; - public WaitForSeconds WaitForSeconds; public WaitForFixedProcess WaitForFixedProcess; + public Task WaitTask; + public SignalAwaiter WaitSignalAwaiter; public CoroutineData(IEnumerator enumerator) { @@ -32,13 +48,25 @@ public void WaitFor(WaitForSeconds seconds) { - WaitType = WaitTypeEnum.WaitForSeconds; + WaitState = WaitTypeEnum.WaitForSeconds; WaitForSeconds = seconds; } public void WaitFor(WaitForFixedProcess process) { - WaitType = WaitTypeEnum.WaitForFixedProcess; + WaitState = WaitTypeEnum.WaitForFixedProcess; WaitForFixedProcess = process; } + + public void WaitFor(Task task) + { + WaitState = WaitTypeEnum.WaitForTask; + WaitTask = task; + } + + public void WaitFor(SignalAwaiter task) + { + WaitState = WaitTypeEnum.WaitForSignalAwaiter; + WaitSignalAwaiter = task; + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/coroutine/ProxyCoroutineHandler.cs b/DungeonShooting_Godot/src/framework/coroutine/ProxyCoroutineHandler.cs index c9e1ecd..1e1c6b7 100644 --- a/DungeonShooting_Godot/src/framework/coroutine/ProxyCoroutineHandler.cs +++ b/DungeonShooting_Godot/src/framework/coroutine/ProxyCoroutineHandler.cs @@ -1,6 +1,8 @@  using System.Collections; using System.Collections.Generic; +using System.Threading.Tasks; +using Godot; /// /// 协程代理类 @@ -18,7 +20,7 @@ var item = pairs[i]; var canNext = true; - if (item.WaitType == CoroutineData.WaitTypeEnum.WaitForSeconds) //等待秒数 + if (item.WaitState == CoroutineData.WaitTypeEnum.WaitForSeconds) //等待秒数 { if (!item.WaitForSeconds.NextStep(delta)) { @@ -26,11 +28,11 @@ } else { - item.WaitType = CoroutineData.WaitTypeEnum.None; + item.WaitState = CoroutineData.WaitTypeEnum.None; item.WaitForSeconds = null; } } - else if (item.WaitType == CoroutineData.WaitTypeEnum.WaitForFixedProcess) //等待帧数 + else if (item.WaitState == CoroutineData.WaitTypeEnum.WaitForFixedProcess) //等待帧数 { if (!item.WaitForFixedProcess.NextStep()) { @@ -38,10 +40,34 @@ } else { - item.WaitType = CoroutineData.WaitTypeEnum.None; + item.WaitState = CoroutineData.WaitTypeEnum.None; item.WaitForFixedProcess = null; } } + else if (item.WaitState == CoroutineData.WaitTypeEnum.WaitForTask) //等待Task + { + if (!item.WaitTask.IsCompleted) + { + canNext = false; + } + else + { + item.WaitState = CoroutineData.WaitTypeEnum.None; + item.WaitTask = null; + } + } + else if (item.WaitState == CoroutineData.WaitTypeEnum.WaitForSignalAwaiter) //等待信号 + { + if (!item.WaitSignalAwaiter.IsCompleted) + { + canNext = false; + } + else + { + item.WaitState = CoroutineData.WaitTypeEnum.None; + item.WaitSignalAwaiter = null; + } + } if (canNext) { @@ -76,6 +102,14 @@ { item.WaitFor(process); } + else if (next is Task task) //Task对象 + { + item.WaitFor(task); + } + else if (next is SignalAwaiter awaiter) //等待信号 + { + item.WaitFor(awaiter); + } } else { @@ -93,7 +127,7 @@ } /// - /// 代理协程, 开启一个协程, 返回协程 id, 协程是在普通帧执行的, 支持: 协程嵌套, WaitForSeconds, WaitForFixedProcess + /// 代理协程, 开启一个协程, 返回协程 id, 协程是在普通帧执行的, 支持: 协程嵌套, WaitForSeconds, WaitForFixedProcess, Task, SignalAwaiter /// public static long ProxyStartCoroutine(ref List coroutineList, IEnumerator able) { diff --git a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs index 35bf2d9..0d581c1 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs @@ -42,11 +42,11 @@ //房间横轴分散程度 private float _roomHorizontalMinDispersion = 0f; - private float _roomHorizontalMaxDispersion = 0.9f; + private float _roomHorizontalMaxDispersion = 0.7f; //房间纵轴分散程度 private float _roomVerticalMinDispersion = 0f; - private float _roomVerticalMaxDispersion = 0.9f; + private float _roomVerticalMaxDispersion = 0.7f; //区域限制 private bool _enableLimitRange = true; diff --git a/DungeonShooting_Godot/src/framework/map/DungeonTile.cs b/DungeonShooting_Godot/src/framework/map/DungeonTile.cs index 1ff05b9..eaabe0c 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonTile.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonTile.cs @@ -7,28 +7,6 @@ /// public class DungeonTile { - /// - /// TileMap 底板的层级 - /// - public const int FloorMapLayer = 0; - /// - /// TileMap 中层的层级 - /// - public const int MiddleMapLayer = 1; - /// - /// TileMap 上层的层级 - /// - public const int TopMapLayer = 2; - /// - /// 连接房间的过道的地板层级 - /// - public const int AisleFloorMapLayer = 3; - - /// - /// 配置层级的自定义数据名称 - /// - public const string CustomTileLayerName = "TileLayer"; - //--------------------- 导航 ------------------------- //已经标记过的点 @@ -72,24 +50,24 @@ //铺房间 if (roomInfo.RoomSplit == null) { - FillRect(FloorMapLayer, config.Floor, roomInfo.Position + Vector2.One, + FillRect(GameConfig.FloorMapLayer, config.Floor, roomInfo.Position + Vector2.One, roomInfo.Size - new Vector2(2, 2)); - FillRect(TopMapLayer, config.IN_LT, roomInfo.Position, Vector2.One); - FillRect(TopMapLayer, config.L, roomInfo.Position + new Vector2(0, 1), + FillRect(GameConfig.TopMapLayer, config.IN_LT, roomInfo.Position, Vector2.One); + FillRect(GameConfig.TopMapLayer, config.L, roomInfo.Position + new Vector2(0, 1), new Vector2(1, roomInfo.Size.Y - 2)); - FillRect(TopMapLayer, config.IN_LB, roomInfo.Position + new Vector2(0, roomInfo.Size.Y - 1), + FillRect(GameConfig.TopMapLayer, config.IN_LB, roomInfo.Position + new Vector2(0, roomInfo.Size.Y - 1), new Vector2(1, 1)); - FillRect(TopMapLayer, config.B, roomInfo.Position + new Vector2(1, roomInfo.Size.Y - 1), + FillRect(GameConfig.TopMapLayer, config.B, roomInfo.Position + new Vector2(1, roomInfo.Size.Y - 1), new Vector2(roomInfo.Size.X - 2, 1)); - FillRect(TopMapLayer, config.IN_RB, + FillRect(GameConfig.TopMapLayer, config.IN_RB, roomInfo.Position + new Vector2(roomInfo.Size.X - 1, roomInfo.Size.Y - 1), Vector2.One); - FillRect(TopMapLayer, config.R, roomInfo.Position + new Vector2(roomInfo.Size.X - 1, 1), + FillRect(GameConfig.TopMapLayer, config.R, roomInfo.Position + new Vector2(roomInfo.Size.X - 1, 1), new Vector2(1, roomInfo.Size.Y - 2)); - FillRect(TopMapLayer, config.IN_RT, roomInfo.Position + new Vector2(roomInfo.Size.X - 1, 0), + FillRect(GameConfig.TopMapLayer, config.IN_RT, roomInfo.Position + new Vector2(roomInfo.Size.X - 1, 0), Vector2.One); - FillRect(MiddleMapLayer, config.T, roomInfo.Position + Vector2.Right, + FillRect(GameConfig.MiddleMapLayer, config.T, roomInfo.Position + Vector2.Right, new Vector2(roomInfo.Size.X - 2, 1)); } else @@ -98,20 +76,42 @@ var rectPos = roomInfo.RoomSplit.RoomInfo.Position; var template = ResourceManager.Load(roomInfo.RoomSplit.ScenePath); var tileInstance = template.Instantiate(); - //物体标记 - var activityMarks = tileInstance.GetMarks(); - var offset = roomInfo.GetOffsetPosition(); - foreach (var activityMark in activityMarks) - { - activityMark.GetParent().RemoveChild(activityMark); - var pos = activityMark.GlobalPosition - offset; - activityMark.Owner = null; - //_tileRoot.AddChild(activityMark); - activityMark.Position = roomInfo.GetWorldPosition() + pos; - activityMark.TileRoot = _tileRoot; - } - roomInfo.ActivityMarks.AddRange(activityMarks); + var offset = roomInfo.GetOffsetPosition(); + //其它物体 + var childCount = tileInstance.GetChildCount(); + for (var i = 0; i < childCount; i++) + { + var item = tileInstance.GetChild(i); + if (!(item is ActivityMark)) + { + item.GetParent().RemoveChild(item); + item.Owner = null; + _tileRoot.AddChild(item); + if (item is Node2D node) + { + node.Position = roomInfo.GetWorldPosition() + (node.GlobalPosition - offset); + } + } + + i--; + childCount--; + } + + //物体标记 + var activityMarks = tileInstance.GetMarks(); + foreach (var activityMark in activityMarks) + { + activityMark.GetParent().RemoveChild(activityMark); + activityMark.Owner = null; + //_tileRoot.AddChild(activityMark); + activityMark.Position = roomInfo.GetWorldPosition() + (activityMark.GlobalPosition - offset); + activityMark.TileRoot = _tileRoot; + //执行预处理操作 + activityMark.Pretreatment(); + } + roomInfo.ActivityMarks.AddRange(activityMarks); + //填充tile操作 for (int i = 0; i < rectSize.X; i++) { @@ -125,20 +125,20 @@ //获取自定义层级 // var customData = tileInstance.GetCellTileData(0, coords).GetCustomData(CustomTileLayerName); // var layer = customData.AsInt32(); - // layer = Mathf.Clamp(layer, FloorMapLayer, TopMapLayer); + // layer = Mathf.Clamp(layer, GameConfig.FloorMapLayer, GameConfig.TopMapLayer); - var layer = FloorMapLayer; + var layer = GameConfig.FloorMapLayer; if (config.MiddleLayerAtlasCoords.Contains(atlasCoords)) { - layer = MiddleMapLayer; + layer = GameConfig.MiddleMapLayer; } else if (config.TopLayerAtlasCoords.Contains(atlasCoords)) { - layer = TopMapLayer; + layer = GameConfig.TopMapLayer; } _tileRoot.SetCell(layer, new Vector2I(roomInfo.Position.X + i, roomInfo.Position.Y + j), - 1, atlasCoords); + 0, atlasCoords); } } } @@ -286,7 +286,7 @@ break; } - FillRect(AisleFloorMapLayer, config.Floor, doorInfo.Cross + Vector2.One, + FillRect(GameConfig.AisleFloorMapLayer, config.Floor, doorInfo.Cross + Vector2.One, new Vector2(GameConfig.CorridorWidth - 2, GameConfig.CorridorWidth - 2)); //墙壁, 0横向, 1纵向 @@ -319,50 +319,50 @@ if ((doorDir1 == DoorDirection.N && doorDir2 == DoorDirection.E) || //↑→ (doorDir2 == DoorDirection.N && doorDir1 == DoorDirection.E)) { - FillRect(TopMapLayer, config.OUT_RT, + FillRect(GameConfig.TopMapLayer, config.OUT_RT, doorInfo.Cross + new Vector2(0, GameConfig.CorridorWidth - 1), Vector2.One); - FillRect(TopMapLayer, config.IN_RT, doorInfo.Cross + new Vector2(GameConfig.CorridorWidth - 1, 0), + FillRect(GameConfig.TopMapLayer, config.IN_RT, doorInfo.Cross + new Vector2(GameConfig.CorridorWidth - 1, 0), Vector2.One); - FillRect(MiddleMapLayer, config.T, doorInfo.Cross, new Vector2(GameConfig.CorridorWidth - 1, 1)); - FillRect(TopMapLayer, config.R, doorInfo.Cross + new Vector2(GameConfig.CorridorWidth - 1, 1), + FillRect(GameConfig.MiddleMapLayer, config.T, doorInfo.Cross, new Vector2(GameConfig.CorridorWidth - 1, 1)); + FillRect(GameConfig.TopMapLayer, config.R, doorInfo.Cross + new Vector2(GameConfig.CorridorWidth - 1, 1), new Vector2(1, GameConfig.CorridorWidth - 1)); } else if ((doorDir1 == DoorDirection.E && doorDir2 == DoorDirection.S) || //→↓ (doorDir2 == DoorDirection.E && doorDir1 == DoorDirection.S)) { - FillRect(MiddleMapLayer, config.OUT_RB, doorInfo.Cross, Vector2.One); - FillRect(TopMapLayer, config.IN_RB, + FillRect(GameConfig.MiddleMapLayer, config.OUT_RB, doorInfo.Cross, Vector2.One); + FillRect(GameConfig.TopMapLayer, config.IN_RB, doorInfo.Cross + new Vector2(GameConfig.CorridorWidth - 1, GameConfig.CorridorWidth - 1), Vector2.One); - FillRect(TopMapLayer, config.R, doorInfo.Cross + new Vector2(GameConfig.CorridorWidth - 1, 0), + FillRect(GameConfig.TopMapLayer, config.R, doorInfo.Cross + new Vector2(GameConfig.CorridorWidth - 1, 0), new Vector2(1, GameConfig.CorridorWidth - 1)); - FillRect(TopMapLayer, config.B, doorInfo.Cross + new Vector2(0, GameConfig.CorridorWidth - 1), + FillRect(GameConfig.TopMapLayer, config.B, doorInfo.Cross + new Vector2(0, GameConfig.CorridorWidth - 1), new Vector2(GameConfig.CorridorWidth - 1, 1)); } else if ((doorDir1 == DoorDirection.S && doorDir2 == DoorDirection.W) || //↓← (doorDir2 == DoorDirection.S && doorDir1 == DoorDirection.W)) { - FillRect(MiddleMapLayer, config.OUT_LB, + FillRect(GameConfig.MiddleMapLayer, config.OUT_LB, doorInfo.Cross + new Vector2(GameConfig.CorridorWidth - 1, 0), Vector2.One); - FillRect(TopMapLayer, config.IN_LB, doorInfo.Cross + new Vector2(0, GameConfig.CorridorWidth - 1), + FillRect(GameConfig.TopMapLayer, config.IN_LB, doorInfo.Cross + new Vector2(0, GameConfig.CorridorWidth - 1), Vector2.One); - FillRect(TopMapLayer, config.L, doorInfo.Cross, new Vector2(1, GameConfig.CorridorWidth - 1)); - FillRect(TopMapLayer, config.B, doorInfo.Cross + new Vector2(1, GameConfig.CorridorWidth - 1), + FillRect(GameConfig.TopMapLayer, config.L, doorInfo.Cross, new Vector2(1, GameConfig.CorridorWidth - 1)); + FillRect(GameConfig.TopMapLayer, config.B, doorInfo.Cross + new Vector2(1, GameConfig.CorridorWidth - 1), new Vector2(GameConfig.CorridorWidth - 1, 1)); } else if ((doorDir1 == DoorDirection.W && doorDir2 == DoorDirection.N) || //←↑ (doorDir2 == DoorDirection.W && doorDir1 == DoorDirection.N)) { - FillRect(TopMapLayer, config.OUT_LT, + FillRect(GameConfig.TopMapLayer, config.OUT_LT, doorInfo.Cross + new Vector2(GameConfig.CorridorWidth - 1, GameConfig.CorridorWidth - 1), Vector2.One); - FillRect(TopMapLayer, config.IN_LT, doorInfo.Cross, Vector2.One); - FillRect(MiddleMapLayer, config.T, doorInfo.Cross + new Vector2(1, 0), + FillRect(GameConfig.TopMapLayer, config.IN_LT, doorInfo.Cross, Vector2.One); + FillRect(GameConfig.MiddleMapLayer, config.T, doorInfo.Cross + new Vector2(1, 0), new Vector2(GameConfig.CorridorWidth - 1, 1)); - FillRect(TopMapLayer, config.L, doorInfo.Cross + new Vector2(0, 1), + FillRect(GameConfig.TopMapLayer, config.L, doorInfo.Cross + new Vector2(0, 1), new Vector2(1, GameConfig.CorridorWidth - 1)); } @@ -370,19 +370,19 @@ switch (doorDir1) { case DoorDirection.E: //→ - ClearRect(TopMapLayer, doorInfo.OriginPosition + new Vector2(-1, 1), + ClearRect(GameConfig.TopMapLayer, doorInfo.OriginPosition + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2)); break; case DoorDirection.W: //← - ClearRect(TopMapLayer, doorInfo.OriginPosition + new Vector2(0, 1), + ClearRect(GameConfig.TopMapLayer, doorInfo.OriginPosition + new Vector2(0, 1), new Vector2(1, rect.Size.Y - 2)); break; case DoorDirection.S: //↓ - ClearRect(TopMapLayer, doorInfo.OriginPosition + new Vector2(1, -1), + ClearRect(GameConfig.TopMapLayer, doorInfo.OriginPosition + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1)); break; case DoorDirection.N: //↑ - ClearRect(MiddleMapLayer, doorInfo.OriginPosition + new Vector2(1, 2), + ClearRect(GameConfig.MiddleMapLayer, doorInfo.OriginPosition + new Vector2(1, 2), new Vector2(rect.Size.X - 2, 1)); break; } @@ -390,19 +390,19 @@ switch (doorDir2) { case DoorDirection.E: //→ - ClearRect(TopMapLayer, doorInfo.ConnectDoor.OriginPosition + new Vector2(-1, 1), + ClearRect(GameConfig.TopMapLayer, doorInfo.ConnectDoor.OriginPosition + new Vector2(-1, 1), new Vector2(1, rect2.Size.Y - 2)); break; case DoorDirection.W: //← - ClearRect(TopMapLayer, doorInfo.ConnectDoor.OriginPosition + new Vector2(0, 1), + ClearRect(GameConfig.TopMapLayer, doorInfo.ConnectDoor.OriginPosition + new Vector2(0, 1), new Vector2(1, rect2.Size.Y - 2)); break; case DoorDirection.S: //↓ - ClearRect(TopMapLayer, doorInfo.ConnectDoor.OriginPosition + new Vector2(1, -1), + ClearRect(GameConfig.TopMapLayer, doorInfo.ConnectDoor.OriginPosition + new Vector2(1, -1), new Vector2(rect2.Size.X - 2, 1)); break; case DoorDirection.N: //↑ - ClearRect(MiddleMapLayer, doorInfo.ConnectDoor.OriginPosition + new Vector2(1, 0), + ClearRect(GameConfig.MiddleMapLayer, doorInfo.ConnectDoor.OriginPosition + new Vector2(1, 0), new Vector2(rect2.Size.X - 2, 1)); break; } @@ -418,7 +418,7 @@ { for (int j = 0; j < size.Y; j++) { - _tileRoot.SetCell(layer, new Vector2I((int)pos.X + i, (int)pos.Y + j), 1, info.AutotileCoord); + _tileRoot.SetCell(layer, new Vector2I((int)pos.X + i, (int)pos.Y + j), 0, info.AutotileCoord); } } } @@ -430,7 +430,7 @@ { for (int j = 0; j < size.Y; j++) { - _tileRoot.SetCell(layer, new Vector2I((int)pos.X + i, (int)pos.Y + j), -1); + _tileRoot.SetCell(layer, new Vector2I((int)pos.X + i, (int)pos.Y + j), 0); } } } @@ -438,44 +438,44 @@ //横向过道 private void FullHorizontalAisle(AutoTileConfig config, Rect2 rect) { - FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(0, 1), rect.Size - new Vector2(0, 2)); - FillRect(MiddleMapLayer, config.T, rect.Position, new Vector2(rect.Size.X, 1)); - FillRect(TopMapLayer, config.B, rect.Position + new Vector2(0, rect.Size.Y - 1), new Vector2(rect.Size.X, 1)); + FillRect(GameConfig.AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(0, 1), rect.Size - new Vector2(0, 2)); + FillRect(GameConfig.MiddleMapLayer, config.T, rect.Position, new Vector2(rect.Size.X, 1)); + FillRect(GameConfig.TopMapLayer, config.B, rect.Position + new Vector2(0, rect.Size.Y - 1), new Vector2(rect.Size.X, 1)); } //纵向过道 private void FullVerticalAisle(AutoTileConfig config, Rect2 rect) { - FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(1, 0), rect.Size - new Vector2(2, 0)); - FillRect(TopMapLayer, config.L, rect.Position, new Vector2(1, rect.Size.Y)); - FillRect(TopMapLayer, config.R, rect.Position + new Vector2(rect.Size.X - 1, 0), new Vector2(1, rect.Size.Y)); + FillRect(GameConfig.AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(1, 0), rect.Size - new Vector2(2, 0)); + FillRect(GameConfig.TopMapLayer, config.L, rect.Position, new Vector2(1, rect.Size.Y)); + FillRect(GameConfig.TopMapLayer, config.R, rect.Position + new Vector2(rect.Size.X - 1, 0), new Vector2(1, rect.Size.Y)); } //横向过道, 门朝右, 连接方向向左 private void FullHorizontalAisleLeft(AutoTileConfig config, Rect2 rect, RoomDoorInfo doorInfo = null) { //左 - ClearRect(TopMapLayer, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2)); + ClearRect(GameConfig.TopMapLayer, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2)); if (doorInfo == null) { - FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(-1, 1), + FillRect(GameConfig.AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2)); } else { - ClearRect(TopMapLayer, rect.Position + new Vector2(-1, 0), Vector2.One); - FillRect(MiddleMapLayer, config.OUT_LB, rect.Position + new Vector2(-1, 0), Vector2.One); - FillRect(TopMapLayer, config.OUT_LT, rect.Position + new Vector2(-1, 3), Vector2.One); + ClearRect(GameConfig.TopMapLayer, rect.Position + new Vector2(-1, 0), Vector2.One); + FillRect(GameConfig.MiddleMapLayer, config.OUT_LB, rect.Position + new Vector2(-1, 0), Vector2.One); + FillRect(GameConfig.TopMapLayer, config.OUT_LT, rect.Position + new Vector2(-1, 3), Vector2.One); - FillRect(FloorMapLayer, config.Floor, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2)); + FillRect(GameConfig.FloorMapLayer, config.Floor, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2)); //生成门的导航区域 var x = rect.Position.X * GameConfig.TileCellSize; var y = rect.Position.Y * GameConfig.TileCellSize; var op1 = new SerializeVector2(x - GameConfig.TileCellSize * 1.5f, y + GameConfig.TileCellSize * 1.5f); var op2 = new SerializeVector2(x + GameConfig.TileCellSize * 0.5f, y + GameConfig.TileCellSize * 1.5f); - var op3 = new SerializeVector2(x + GameConfig.TileCellSize * 0.5f, y + GameConfig.TileCellSize * 2.5f); - var op4 = new SerializeVector2(x - GameConfig.TileCellSize * 1.5f, y + GameConfig.TileCellSize * 2.5f); + var op3 = new SerializeVector2(x + GameConfig.TileCellSize * 0.5f, y + GameConfig.TileCellSize * 3f); + var op4 = new SerializeVector2(x - GameConfig.TileCellSize * 1.5f, y + GameConfig.TileCellSize * 3f); AddDoorNavigation( doorInfo, op1, op2, op3, op4, new SerializeVector2(op1), @@ -490,26 +490,26 @@ private void FullHorizontalAisleRight(AutoTileConfig config, Rect2 rect, RoomDoorInfo doorInfo = null) { //右 - ClearRect(TopMapLayer, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2)); + ClearRect(GameConfig.TopMapLayer, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2)); if (doorInfo == null) { - FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2)); + FillRect(GameConfig.AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2)); } else { - ClearRect(TopMapLayer, rect.Position + new Vector2(rect.Size.X, 0), Vector2.One); - FillRect(MiddleMapLayer, config.OUT_RB, rect.Position + new Vector2(rect.Size.X, 0), Vector2.One); - FillRect(TopMapLayer, config.OUT_RT, rect.Position + new Vector2(rect.Size.X, 3), Vector2.One); + ClearRect(GameConfig.TopMapLayer, rect.Position + new Vector2(rect.Size.X, 0), Vector2.One); + FillRect(GameConfig.MiddleMapLayer, config.OUT_RB, rect.Position + new Vector2(rect.Size.X, 0), Vector2.One); + FillRect(GameConfig.TopMapLayer, config.OUT_RT, rect.Position + new Vector2(rect.Size.X, 3), Vector2.One); - FillRect(FloorMapLayer, config.Floor, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2)); + FillRect(GameConfig.FloorMapLayer, config.Floor, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2)); //生成门的导航区域 var x = rect.Position.X * GameConfig.TileCellSize; var y = rect.Position.Y * GameConfig.TileCellSize; var op1 = new SerializeVector2(x - GameConfig.TileCellSize * 1.5f + (rect.Size.X + 1) * GameConfig.TileCellSize, y + GameConfig.TileCellSize * 1.5f); var op2 = new SerializeVector2(x + GameConfig.TileCellSize * 0.5f + (rect.Size.X + 1) * GameConfig.TileCellSize, y + GameConfig.TileCellSize * 1.5f); - var op3 = new SerializeVector2(x + GameConfig.TileCellSize * 0.5f + (rect.Size.X + 1) * GameConfig.TileCellSize, y + GameConfig.TileCellSize * 2.5f); - var op4 = new SerializeVector2(x - GameConfig.TileCellSize * 1.5f + (rect.Size.X + 1) * GameConfig.TileCellSize, y + GameConfig.TileCellSize * 2.5f); + var op3 = new SerializeVector2(x + GameConfig.TileCellSize * 0.5f + (rect.Size.X + 1) * GameConfig.TileCellSize, y + GameConfig.TileCellSize * 3f); + var op4 = new SerializeVector2(x - GameConfig.TileCellSize * 1.5f + (rect.Size.X + 1) * GameConfig.TileCellSize, y + GameConfig.TileCellSize * 3f); AddDoorNavigation( doorInfo, op1, op2, op3, op4, new SerializeVector2(op2.X - GameConfig.TileCellSize, op1.Y), @@ -524,24 +524,24 @@ private void FullVerticalAisleUp(AutoTileConfig config, Rect2 rect, RoomDoorInfo doorInfo = null) { //上 - ClearRect(TopMapLayer, rect.Position + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1)); + ClearRect(GameConfig.TopMapLayer, rect.Position + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1)); if (doorInfo == null) { - FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(1, -1), + FillRect(GameConfig.AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1)); } else { - FillRect(TopMapLayer, config.OUT_RT, rect.Position + new Vector2(0, -1), Vector2.One); - FillRect(TopMapLayer, config.OUT_LT, rect.Position + new Vector2(3, -1), Vector2.One); + FillRect(GameConfig.TopMapLayer, config.OUT_RT, rect.Position + new Vector2(0, -1), Vector2.One); + FillRect(GameConfig.TopMapLayer, config.OUT_LT, rect.Position + new Vector2(3, -1), Vector2.One); - FillRect(FloorMapLayer, config.Floor, rect.Position + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1)); + FillRect(GameConfig.FloorMapLayer, config.Floor, rect.Position + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1)); //生成门的导航区域 var x = rect.Position.X * GameConfig.TileCellSize; var y = rect.Position.Y * GameConfig.TileCellSize; - var op1 = new SerializeVector2(x + GameConfig.TileCellSize * 1.5f, y - GameConfig.TileCellSize * 1.5f); - var op2 = new SerializeVector2(x + GameConfig.TileCellSize * 2.5f, y - GameConfig.TileCellSize * 1.5f); + var op1 = new SerializeVector2(x + GameConfig.TileCellSize * 1.5f, y - GameConfig.TileCellSize * 1f); + var op2 = new SerializeVector2(x + GameConfig.TileCellSize * 2.5f, y - GameConfig.TileCellSize * 1f); var op3 = new SerializeVector2(x + GameConfig.TileCellSize * 2.5f, y + GameConfig.TileCellSize * 0.5f); var op4 = new SerializeVector2(x + GameConfig.TileCellSize * 1.5f, y + GameConfig.TileCellSize * 0.5f); AddDoorNavigation( @@ -558,23 +558,23 @@ private void FullVerticalAisleDown(AutoTileConfig config, Rect2 rect, RoomDoorInfo doorInfo = null) { //下 - ClearRect(MiddleMapLayer, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1)); + ClearRect(GameConfig.MiddleMapLayer, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1)); if (doorInfo == null) { - FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1)); + FillRect(GameConfig.AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1)); } else { - FillRect(MiddleMapLayer, config.OUT_RB, rect.Position + new Vector2(0, rect.Size.Y), Vector2.One); - FillRect(MiddleMapLayer, config.OUT_LB, rect.Position + new Vector2(3, rect.Size.Y), Vector2.One); + FillRect(GameConfig.MiddleMapLayer, config.OUT_RB, rect.Position + new Vector2(0, rect.Size.Y), Vector2.One); + FillRect(GameConfig.MiddleMapLayer, config.OUT_LB, rect.Position + new Vector2(3, rect.Size.Y), Vector2.One); - FillRect(FloorMapLayer, config.Floor, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1)); + FillRect(GameConfig.FloorMapLayer, config.Floor, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1)); //生成门的导航区域 var x = rect.Position.X * GameConfig.TileCellSize; var y = rect.Position.Y * GameConfig.TileCellSize; - var op1 = new SerializeVector2(x + GameConfig.TileCellSize * 1.5f, y - GameConfig.TileCellSize * 1.5f + (rect.Size.Y + 1) * GameConfig.TileCellSize); - var op2 = new SerializeVector2(x + GameConfig.TileCellSize * 2.5f, y - GameConfig.TileCellSize * 1.5f + (rect.Size.Y + 1) * GameConfig.TileCellSize); + var op1 = new SerializeVector2(x + GameConfig.TileCellSize * 1.5f, y - GameConfig.TileCellSize * 1f + (rect.Size.Y + 1) * GameConfig.TileCellSize); + var op2 = new SerializeVector2(x + GameConfig.TileCellSize * 2.5f, y - GameConfig.TileCellSize * 1f + (rect.Size.Y + 1) * GameConfig.TileCellSize); var op3 = new SerializeVector2(x + GameConfig.TileCellSize * 2.5f, y + GameConfig.TileCellSize * 0.5f + (rect.Size.Y + 1) * GameConfig.TileCellSize); var op4 = new SerializeVector2(x + GameConfig.TileCellSize * 1.5f, y + GameConfig.TileCellSize * 0.5f + (rect.Size.Y + 1) * GameConfig.TileCellSize); AddDoorNavigation( @@ -835,7 +835,7 @@ return polygonData; } - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); PutUsePoint(pos); tempJ++; @@ -889,7 +889,8 @@ return polygonData; } - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); PutUsePoint(pos); tempI--; @@ -910,7 +911,8 @@ return polygonData; } - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); PutUsePoint(pos); tempJ++; @@ -920,7 +922,8 @@ { if (points.Count == 0) { - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); } var pos = new Vector2(tempI, tempJ); @@ -943,7 +946,8 @@ return polygonData; } - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); PutUsePoint(pos); tempJ--; @@ -964,7 +968,8 @@ return polygonData; } - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); PutUsePoint(pos); tempI--; @@ -1041,7 +1046,8 @@ return polygonData; } - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); PutUsePoint(pos); tempJ++; @@ -1051,7 +1057,8 @@ { if (points.Count == 0) { - points.Add(new SerializeVector2((tempI - 1) * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2((tempI - 1) * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2((tempI - 1) * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); } var pos = new Vector2(tempI, tempJ); @@ -1074,7 +1081,8 @@ return polygonData; } - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); PutUsePoint(pos); tempJ--; @@ -1128,7 +1136,8 @@ return polygonData; } - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); PutUsePoint(pos); tempI++; @@ -1203,7 +1212,8 @@ return polygonData; } - points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + //points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y)); + points.Add(new SerializeVector2(tempI * size.X + offset.X, tempJ * size.Y + offset.Y * 2)); PutUsePoint(pos); tempI++; diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityExpression.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityExpression.cs new file mode 100644 index 0000000..040dd1d --- /dev/null +++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityExpression.cs @@ -0,0 +1,10 @@ +using System; + +/// +/// 用于 ActivityMark 字段上, 表示当前字段是一个表达式字段 +/// +[AttributeUsage(AttributeTargets.Field)] +public class ActivityExpression : Attribute +{ + +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityExpressionData.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityExpressionData.cs new file mode 100644 index 0000000..9fc30b9 --- /dev/null +++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityExpressionData.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; + +/// +/// +/// +public class ActivityExpressionData +{ + /// + /// 物体名称 + /// + public string Id; + + /// + /// 传入参数 + /// + public Dictionary Args = new Dictionary(); + + public ActivityExpressionData(string id) + { + Id = id; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs index 4eb45d0..7c71e58 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs @@ -1,4 +1,9 @@  +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; +using System.Text.RegularExpressions; using Godot; /// @@ -14,10 +19,11 @@ public ActivityIdPrefix.ActivityPrefixType Type = ActivityIdPrefix.ActivityPrefixType.NonePrefix; /// - /// 物体id + /// 创建物体的表达式, 该表达式计算出的id会自动加上 Type 前缀 + /// 例如: 0001(w:100,ca:15,ra:30);0002(w:120,ca:10,ra:20) /// - [Export] - public string ItemId; + [Export(PropertyHint.Expression), ActivityExpression] + public string ItemExpression; /// /// 所在层级 @@ -54,8 +60,8 @@ /// 物体初始海拔高度 /// [ExportGroup("Vertical")] - [Export(PropertyHint.Range, "0, 36")] - public int Altitude = 0; + [Export(PropertyHint.Range, "0, 128")] + public int Altitude = 8; /// /// 物体初始纵轴速度 @@ -70,21 +76,47 @@ //是否已经结束 private bool _isOver = true; - private float _overTimer = 0; + private float _overTimer = 1; private float _timer = 0; private RoomInfo _tempRoom; //绘制的字体 private static Font _drawFont; - + + //已经计算好要生成的物体 + private Dictionary _currentExpression = new Dictionary(); + + //存储所有 ActivityMark 和子类中被 [ActivityExpression] 标记的字段名称 + private static Dictionary> _activityExpressionMap = new Dictionary>(); + /// - /// 获取物体Id + /// 对生成的物体执行后续操作 /// - public string GetItemId() + public virtual void Doing(ActivityObjectResult result, RoomInfo roomInfo) { - return ActivityIdPrefix.GetNameByPrefixType(Type) + ItemId; } + public ActivityMark() + { + //扫描所有 ActivityExpression + var type = GetType(); + if (!_activityExpressionMap.ContainsKey(type)) + { + // 获取类型信息 + var fieldInfos = new List(); + var tempList = type.GetFields(BindingFlags.Instance | BindingFlags.Public); + foreach (var s in tempList) + { + if (s.GetCustomAttribute() != null) + { + fieldInfos.Add(s.Name); + } + } + + _activityExpressionMap.Add(type, fieldInfos); + } + } + public override void _Process(double delta) { #if TOOLS @@ -122,6 +154,10 @@ /// public void BeReady(RoomInfo roomInfo) { + if (_currentExpression == null || Type == ActivityIdPrefix.ActivityPrefixType.Player) + { + return; + } _isOver = false; _overTimer = 0; SetActive(true); @@ -145,36 +181,69 @@ return _isOver && _overTimer >= 1; } - /// - /// 调用该函数表示该标记可以生成物体了 - /// - public virtual void Doing(RoomInfo roomInfo) + private void Doing(RoomInfo roomInfo) { - CreateActivityObject().PutDown(Layer); - } + var result = CreateActivityObjectFromExpression(Type, nameof(ItemExpression)); - /// - /// 实例化ItemId指定的物体, 并返回对象实例, 函数会自动设置位置 - /// - protected ActivityObject CreateActivityObject() - { - var instance = ActivityObject.Create(GetItemId()); + if (result == null || result.ActivityObject == null) + { + return; + } + + result.ActivityObject.VerticalSpeed = VerticalSpeed; + result.ActivityObject.Altitude = Altitude; var pos = Position; if (BirthRect != Vector2I.Zero) { - instance.Position = new Vector2( + result.ActivityObject.Position = new Vector2( Utils.RandomRangeInt((int)pos.X - BirthRect.X / 2, (int)pos.X + BirthRect.X / 2), Utils.RandomRangeInt((int)pos.Y - BirthRect.Y / 2, (int)pos.Y + BirthRect.Y / 2) ); } else { - instance.Position = pos; + result.ActivityObject.Position = pos; + } + + result.ActivityObject.StartCoroutine(OnActivityObjectBirth(result.ActivityObject)); + result.ActivityObject.PutDown(Layer); + + var effect1 = ResourceManager.LoadAndInstantiate(ResourcePath.prefab_effect_Effect1_tscn); + effect1.Position = result.ActivityObject.Position + new Vector2(0, -Altitude); + effect1.AddToActivityRoot(RoomLayerEnum.NormalLayer); + + Doing(result, roomInfo); + } + + /// + /// 生成 ActivityObject 时调用, 用于出生时的动画效果 + /// + private IEnumerator OnActivityObjectBirth(ActivityObject instance) + { + var a = 1.0f; + instance.SetBlendColor(Colors.White); + //禁用自定义行为 + instance.EnableCustomBehavior = false; + //禁用下坠 + instance.EnableVerticalMotion = false; + + for (var i = 0; i < 10; i++) + { + instance.SetBlendSchedule(a); + yield return 0; } - instance.VerticalSpeed = VerticalSpeed; - instance.Altitude = Altitude; - return instance; + while (a > 0) + { + instance.SetBlendSchedule(a); + a -= 0.05f; + yield return 0; + } + + //启用自定义行为 + instance.EnableCustomBehavior = true; + //启用下坠 + instance.EnableVerticalMotion = true; } #if TOOLS @@ -182,14 +251,25 @@ { if (Engine.IsEditorHint() || GameApplication.Instance.Debug) { - DrawLine(new Vector2(-2, -2), new Vector2(2, 2), DrawColor, 1f); - DrawLine(new Vector2(-2, 2), new Vector2(2, -2), DrawColor, 1f); + var drawColor = DrawColor; + + //如果在编辑器中选中了该节点, 则绘更改绘制颜色的透明度 + var selectedNodes = Plugin.Plugin.Instance?.GetEditorInterface()?.GetSelection()?.GetSelectedNodes(); + if (selectedNodes != null && selectedNodes.Contains(this)) + { + drawColor.A = 1f; + } + else + { + drawColor.A = 0.5f; + } + + DrawLine(new Vector2(-2, -2), new Vector2(2, 2), drawColor, 1f); + DrawLine(new Vector2(-2, 2), new Vector2(2, -2), drawColor, 1f); if (BirthRect != Vector2.Zero) { - var c = DrawColor; - c.A = 0.5f; - DrawRect(new Rect2(-BirthRect / 2, BirthRect), c, false, 0.5f); + DrawRect(new Rect2(-BirthRect / 2, BirthRect), drawColor, false, 0.5f); } if (_drawFont == null) @@ -204,7 +284,7 @@ /// /// 设置当前节点是否是活动状态 /// - public void SetActive(bool flag) + private void SetActive(bool flag) { // SetProcess(flag); // SetPhysicsProcess(flag); @@ -234,4 +314,103 @@ } } } + + //----------------------------------------------------------------------------------------------------- + + /// + /// 执行预处理操作 + /// + public void Pretreatment() + { + if (_activityExpressionMap.TryGetValue(GetType(), out var list)) + { + foreach (var field in list) + { + Pretreatment(field); + } + } + } + + private void Pretreatment(string field) + { + var expressionStr = GetType().GetField(field)?.GetValue(this) as string; + if (string.IsNullOrEmpty(expressionStr)) + { + _currentExpression.Add(field, new ActivityExpressionData("")); + return; + } + var activityExpression = Parse(expressionStr); + if (activityExpression.Count > 0) + { + //权重列表 + var list = new List(); + for (var i = 0; i < activityExpression.Count; i++) + { + var item = activityExpression[i]; + if (item.Args.TryGetValue("weight", out var weight)) //获取自定义权重值 + { + list.Add(int.Parse(weight)); + } + else //默认权重100 + { + item.Args.Add("weight", "100"); + list.Add(100); + } + } + //根据权重随机值 + var index = Utils.RandomWeight(list); + _currentExpression.Add(field, activityExpression[index]); + } + else + { + _currentExpression.Add(field, new ActivityExpressionData("")); + } + } + + private List Parse(string str) + { + var list = new List(); + var exps = str.Split(';'); + + for (var i = 0; i < exps.Length; i++) + { + var exp = exps[i]; + //去除空格 + exp = Regex.Replace(exp, "\\s", ""); + if (string.IsNullOrEmpty(exp)) + { + continue; + } + + //验证语法 + if (Regex.IsMatch(exp, "^\\w+(\\((\\w+:\\w+)*(,\\w+:\\w+)*\\))?$")) + { + if (!exp.Contains('(')) //没有参数 + { + list.Add(new ActivityExpressionData(exp)); + } + else + { + var name = Regex.Match(exp, "^\\w+").Value; + var activityExpression = new ActivityExpressionData(name); + var paramsResult = Regex.Matches(exp, "\\w+:\\w+"); + if (paramsResult.Count > 0) + { + foreach (Match result in paramsResult) + { + var valSplit = result.Value.Split(':'); + activityExpression.Args.Add(valSplit[0], valSplit[1]); + } + } + list.Add(activityExpression); + } + } + else //语法异常 + { + throw new Exception("表达式语法错误: " + exp); + } + } + + return list; + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark_HandlerExpression.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark_HandlerExpression.cs new file mode 100644 index 0000000..d8d4662 --- /dev/null +++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark_HandlerExpression.cs @@ -0,0 +1,72 @@ + +using System; +using Godot; + +public partial class ActivityMark +{ + /// + /// 根据预制表达式创建物体并返回 + /// + /// 物体类型 + /// 预制表达式字段名称, 注意是字段名称, 而不是内容 + public ActivityObjectResult CreateActivityObjectFromExpression(ActivityIdPrefix.ActivityPrefixType type, string expressionFieldName) where T : ActivityObject + { + if (_currentExpression.TryGetValue(expressionFieldName, out var expressionData)) + { + if (expressionData.Id == "null") + { + return null; + } + var id = ActivityIdPrefix.GetNameByPrefixType(type) + expressionData.Id; + var activityObject = ActivityObject.Create(id); + if (activityObject == null) + { + return null; + } + + HandlerExpressionArgs(type, activityObject, expressionData); + return new ActivityObjectResult(activityObject, expressionData); + } + + GD.PrintErr("未找到表达式字段: " + expressionFieldName + ", 请检查是否有该字段或者该字段加上了[ActivityExpression]标记"); + return null; + } + + private void HandlerExpressionArgs(ActivityIdPrefix.ActivityPrefixType type, ActivityObject instance, ActivityExpressionData expressionData) + { + switch (type) + { + case ActivityIdPrefix.ActivityPrefixType.NonePrefix: + break; + case ActivityIdPrefix.ActivityPrefixType.Player: + break; + case ActivityIdPrefix.ActivityPrefixType.Test: + break; + case ActivityIdPrefix.ActivityPrefixType.Role: + break; + case ActivityIdPrefix.ActivityPrefixType.Enemy: + break; + case ActivityIdPrefix.ActivityPrefixType.Weapon: + { + var weapon = (Weapon)instance; + //当前弹夹弹药量 + if (expressionData.Args.TryGetValue("CurrAmmon", out var currAmmon)) + { + weapon.SetCurrAmmo(int.Parse(currAmmon)); + } + //备用弹药量 + if (expressionData.Args.TryGetValue("ResidueAmmo", out var residueAmmo)) + { + weapon.SetResidueAmmo(int.Parse(residueAmmo)); + } + } + break; + case ActivityIdPrefix.ActivityPrefixType.Bullet: + break; + case ActivityIdPrefix.ActivityPrefixType.Shell: + break; + case ActivityIdPrefix.ActivityPrefixType.Other: + break; + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityObjectResult.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityObjectResult.cs new file mode 100644 index 0000000..2127981 --- /dev/null +++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityObjectResult.cs @@ -0,0 +1,22 @@ + +/// +/// 通过表达式创建的 ActivityObject 对象结果集 +/// +public class ActivityObjectResult where T : ActivityObject +{ + /// + /// 实例 + /// + public T ActivityObject; + + /// + /// 创建该对象使用的表达式数据 + /// + public ActivityExpressionData ExpressionData; + + public ActivityObjectResult(T activityObject, ActivityExpressionData expressionData) + { + ActivityObject = activityObject; + ExpressionData = expressionData; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs index 8359e1a..7d68aaf 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs @@ -8,45 +8,39 @@ public partial class EnemyMark : ActivityMark { /// + /// 脸默认朝向 + /// + public enum FaceDirectionValueEnum + { + /// + /// 随机 + /// + Random, + /// + /// 左边 + /// + Left, + /// + /// 右边 + /// + Right + } + + /// /// 武器1 id, id会自动加上武器前缀 /// - [Export] + [Export(PropertyHint.Expression), ActivityExpression] public string Weapon1Id; /// - /// 武器1弹药量, 如果值小于0, 则使用默认弹药量 - /// - [Export] - public int Weapon1Ammo = -1; - /// /// 武器2 id, id会自动加上武器前缀 /// - [Export] + [Export(PropertyHint.Expression), ActivityExpression] public string Weapon2Id; /// - /// 武器2弹药量, 如果值小于0, 则使用默认弹药量 + /// 脸默认的朝向 /// [Export] - public int Weapon2Ammo = -1; - /// - /// 武器3 id, id会自动加上武器前缀 - /// - [Export] - public string Weapon3Id; - /// - /// 武器3弹药量, 如果值小于0, 则使用默认弹药量 - /// - [Export] - public int Weapon3Ammo = -1; - /// - /// 武器4 id, id会自动加上武器前缀 - /// - [Export] - public string Weapon4Id; - /// - /// 武器4弹药量, 如果值小于0, 则使用默认弹药量 - /// - [Export] - public int Weapon4Ammo = -1; + public FaceDirectionValueEnum FaceDirection = FaceDirectionValueEnum.Random; public override void _Ready() { @@ -54,37 +48,43 @@ Layer = RoomLayerEnum.YSortLayer; } - public override void Doing(RoomInfo roomInfo) + public override void Doing(ActivityObjectResult result, RoomInfo roomInfo) { - var pos = Position; //创建敌人 - var instance = (Enemy)CreateActivityObject(); - instance.PutDown(Layer); + var instance = (Enemy)result.ActivityObject; + var pos = instance.Position; + + //脸的朝向 + if (FaceDirection == FaceDirectionValueEnum.Random) + { + instance.Face = Utils.RandomBoolean() ? global::FaceDirection.Left : global::FaceDirection.Right; + } + else if (FaceDirection == FaceDirectionValueEnum.Left) + { + instance.Face = global::FaceDirection.Left; + } + else + { + instance.Face = global::FaceDirection.Right; + } if (!string.IsNullOrWhiteSpace(Weapon1Id)) - CreateWeapon(instance, pos, Weapon1Id, Weapon1Ammo); + CreateWeapon(instance, pos, nameof(Weapon1Id)); if (!string.IsNullOrWhiteSpace(Weapon2Id)) - CreateWeapon(instance, pos, Weapon2Id, Weapon2Ammo); - if (!string.IsNullOrWhiteSpace(Weapon3Id)) - CreateWeapon(instance, pos, Weapon3Id, Weapon3Ammo); - if (!string.IsNullOrWhiteSpace(Weapon4Id)) - CreateWeapon(instance, pos, Weapon4Id, Weapon4Ammo); + CreateWeapon(instance, pos, nameof(Weapon2Id)); } //生成武器 - private void CreateWeapon(Enemy instance, Vector2 pos, string id, int ammon) + private void CreateWeapon(Enemy enemy, Vector2 pos, string fieldName) { - var weaponId = ActivityIdPrefix.GetNameByPrefixType(ActivityIdPrefix.ActivityPrefixType.Weapon) + id; - var weapon = ActivityObject.Create(weaponId); - //设置弹药量 - if (ammon >= 0) + var result = CreateActivityObjectFromExpression(ActivityIdPrefix.ActivityPrefixType.Weapon, fieldName); + if (result != null) { - weapon.SetTotalAmmo(ammon); - } - //如果不能放下, 则直接扔地上 - if (!instance.PickUpWeapon(weapon)) - { - weapon.PutDown(pos, RoomLayerEnum.NormalLayer); + //如果不能放下, 则直接扔地上 + if (!enemy.PickUpWeapon(result.ActivityObject)) + { + result.ActivityObject.PutDown(pos, RoomLayerEnum.NormalLayer); + } } } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs b/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs deleted file mode 100644 index b654732..0000000 --- a/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs +++ /dev/null @@ -1,17 +0,0 @@ - -using Godot; - -/// -/// 玩家生成标记 -/// -[Tool] -public partial class PlayerBirthMark : ActivityMark -{ - public override void _Ready() - { - } - - public override void Doing(RoomInfo roomInfo) - { - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs b/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs deleted file mode 100644 index 9b06298..0000000 --- a/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs +++ /dev/null @@ -1,45 +0,0 @@ - -using Godot; - -/// -/// 针对武器生成位置的标记 -/// -[Tool] -public partial class WeaponMark : ActivityMark -{ - /// - /// 当前弹夹弹药量, 如果值小于0, 则使用默认弹药量 - /// - [Export] - public int CurrAmmon = -1; - - /// - /// 备用弹药容量, 如果值小于0, 则使用默认弹药量 - /// - [Export] - public int ResidueAmmo = -1; - - public override void _Ready() - { - Type = ActivityIdPrefix.ActivityPrefixType.Weapon; - Layer = RoomLayerEnum.NormalLayer; - } - - public override void Doing(RoomInfo roomInfo) - { - //创建武器 - var instance = (Weapon)CreateActivityObject(); - if (CurrAmmon >= 0) - { - instance.SetCurrAmmo(CurrAmmon); - } - - if (ResidueAmmo >= 0) - { - instance.SetResidueAmmo(ResidueAmmo); - } - - - instance.PutDown(Layer); - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/ui/UiBase.cs b/DungeonShooting_Godot/src/framework/ui/UiBase.cs index e67b7da..e454424 100644 --- a/DungeonShooting_Godot/src/framework/ui/UiBase.cs +++ b/DungeonShooting_Godot/src/framework/ui/UiBase.cs @@ -142,7 +142,7 @@ } /// - /// 开启一个协程, 返回协程 id, 协程是在普通帧执行的, 支持: 协程嵌套, WaitForSeconds, WaitForFixedProcess + /// 开启一个协程, 返回协程 id, 协程是在普通帧执行的, 支持: 协程嵌套, WaitForSeconds, WaitForFixedProcess, Task, SignalAwaiter /// public long StartCoroutine(IEnumerator able) { diff --git a/DungeonShooting_Godot/src/game/GameApplication.cs b/DungeonShooting_Godot/src/game/GameApplication.cs index ffb3f89..2c7388e 100644 --- a/DungeonShooting_Godot/src/game/GameApplication.cs +++ b/DungeonShooting_Godot/src/game/GameApplication.cs @@ -1,5 +1,6 @@ using System; +using System.Collections; using System.Collections.Generic; using System.Text.Json; using Godot; @@ -70,6 +71,9 @@ /// public int PixelScale { get; private set; } = 4; + //开启的协程 + private List _coroutineList; + public GameApplication() { Instance = this; @@ -119,7 +123,14 @@ public override void _Process(double delta) { - InputManager.Update((float)delta); + var newDelta = (float)delta; + InputManager.Update(newDelta); + + //协程更新 + if (_coroutineList != null) + { + ProxyCoroutineHandler.ProxyUpdateCoroutine(ref _coroutineList, newDelta); + } } /// @@ -140,6 +151,30 @@ //return (viewPos - GameCamera.Main.GlobalPosition + (GameConfig.ViewportSize / 2)) * GameConfig.WindowScale - GameCamera.Main.SubPixelPosition; return (viewPos - (GameCamera.Main.GlobalPosition + GameCamera.Main.Offset) + (ViewportSize / 2)) * PixelScale; } + + /// + /// 开启一个协程, 返回协程 id, 协程是在普通帧执行的, 支持: 协程嵌套, WaitForSeconds, WaitForFixedProcess, Task, SignalAwaiter + /// + public long StartCoroutine(IEnumerator able) + { + return ProxyCoroutineHandler.ProxyStartCoroutine(ref _coroutineList, able); + } + + /// + /// 根据协程 id 停止协程 + /// + public void StopCoroutine(long coroutineId) + { + ProxyCoroutineHandler.ProxyStopCoroutine(ref _coroutineList, coroutineId); + } + + /// + /// 停止所有协程 + /// + public void StopAllCoroutine() + { + ProxyCoroutineHandler.ProxyStopAllCoroutine(ref _coroutineList); + } //初始化房间配置 private void InitRoomConfig() diff --git a/DungeonShooting_Godot/src/game/GameConfig.cs b/DungeonShooting_Godot/src/game/GameConfig.cs index 1afcb77..0591a7d 100644 --- a/DungeonShooting_Godot/src/game/GameConfig.cs +++ b/DungeonShooting_Godot/src/game/GameConfig.cs @@ -50,4 +50,26 @@ /// ui代码根路径 /// public const string UiCodeDir = "src/game/ui/"; + + /// + /// TileMap 底板的层级 + /// + public const int FloorMapLayer = 0; + /// + /// TileMap 中层的层级 + /// + public const int MiddleMapLayer = 1; + /// + /// TileMap 上层的层级 + /// + public const int TopMapLayer = 2; + /// + /// 连接房间的过道的地板层级 + /// + public const int AisleFloorMapLayer = 3; + + /// + /// 配置层级的自定义数据名称 + /// + public const string CustomTileLayerName = "TileLayer"; } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/effects/AutoDestroyEffect.cs b/DungeonShooting_Godot/src/game/effects/AutoDestroyEffect.cs new file mode 100644 index 0000000..c8e2b97 --- /dev/null +++ b/DungeonShooting_Godot/src/game/effects/AutoDestroyEffect.cs @@ -0,0 +1,19 @@ + +using Godot; + +public partial class AutoDestroyEffect : GpuParticles2D +{ + /// + /// 延时销毁时间 + /// + [Export] + public float DelayTime = 1f; + + public override async void _Ready() + { + Emitting = true; + var sceneTreeTimer = GetTree().CreateTimer(DelayTime); + await ToSignal(sceneTreeTimer, Timer.SignalName.Timeout); + QueueFree(); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/effects/Effect1.cs b/DungeonShooting_Godot/src/game/effects/Effect1.cs new file mode 100644 index 0000000..5f43297 --- /dev/null +++ b/DungeonShooting_Godot/src/game/effects/Effect1.cs @@ -0,0 +1,14 @@ +using Godot; + +public partial class Effect1 : AutoDestroyEffect +{ + public override void _Ready() + { + var c = GetNode("GPUParticles2D"); + c.Amount = Utils.RandomRangeInt(2, 6); + c.Emitting = true; + + base._Ready(); + } + +} diff --git a/DungeonShooting_Godot/src/game/effects/EnemyDebris.cs b/DungeonShooting_Godot/src/game/effects/EnemyDebris.cs new file mode 100644 index 0000000..0017f0f --- /dev/null +++ b/DungeonShooting_Godot/src/game/effects/EnemyDebris.cs @@ -0,0 +1,37 @@ + +using System.Collections; +using Godot; + +[RegisterActivity(ActivityIdPrefix.Effect + "0001", ResourcePath.prefab_effect_activityObject_EnemyDebris_tscn)] +public partial class EnemyDebris : ActivityObject +{ + + private GpuParticles2D _gpuParticles2D; + + public override void OnInit() + { + var frameCount = AnimatedSprite.SpriteFrames.GetFrameCount(AnimatorNames.Default); + AnimatedSprite.Frame = Utils.RandomRangeInt(0, frameCount - 1); + + Throw( + Utils.RandomRangeInt(0, 16), + Utils.RandomRangeInt(10, 60), + new Vector2(Utils.RandomRangeInt(-25, 25), Utils.RandomRangeInt(-25, 25)), + Utils.RandomRangeInt(-360, 360) + ); + + StartCoroutine(EmitParticles()); + } + + public IEnumerator EmitParticles() + { + var gpuParticles2D = GetNode("GPUParticles2D"); + gpuParticles2D.Emitting = true; + yield return new WaitForSeconds(Utils.RandomRangeFloat(1f, 2.5f)); + gpuParticles2D.Emitting = false; + yield return new WaitForSeconds(1); + gpuParticles2D.QueueFree(); + EnableBehavior = false; + Collision.QueueFree(); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/event/EventEnum.cs b/DungeonShooting_Godot/src/game/event/EventEnum.cs index 087d79c..4d6e2ff 100644 --- a/DungeonShooting_Godot/src/game/event/EventEnum.cs +++ b/DungeonShooting_Godot/src/game/event/EventEnum.cs @@ -5,19 +5,19 @@ public enum EventEnum { /// - /// 敌人死亡, 参数为死亡的敌人的实例 + /// 敌人死亡, 参数为死亡的敌人的实例, 参数类型为 /// OnEnemyDie, /// - /// 玩家进入一个房间,参数为房间对象 + /// 玩家进入一个房间,参数类型为 /// OnPlayerEnterRoom, /// - /// 玩家第一次进入某个房间,参数为房间对象 + /// 玩家第一次进入某个房间,参数类型为 /// OnPlayerFirstEnterRoom, /// - /// 玩家可互动对象改变, 参数为 CheckInteractiveResult + /// 玩家可互动对象改变, 参数类型为 /// OnPlayerChangeInteractiveItem, /// @@ -37,7 +37,7 @@ /// OnPlayerMaxShieldChange, /// - /// 刷新玩家手持武器纹理, 参数为 Texture2D + /// 刷新玩家手持武器纹理, 参数类型为 /// OnPlayerRefreshWeaponTexture, } diff --git a/DungeonShooting_Godot/src/game/item/package/Holster.cs b/DungeonShooting_Godot/src/game/item/package/Holster.cs index a971b08..a487f64 100644 --- a/DungeonShooting_Godot/src/game/item/package/Holster.cs +++ b/DungeonShooting_Godot/src/game/item/package/Holster.cs @@ -8,31 +8,10 @@ public class Holster { /// - /// 插槽类 - /// - public class WeaponSlot - { - /// - /// 是否启用 - /// - public bool Enable = false; - /// - /// 当前插槽存放的武器类型 - /// - public WeaponWeightType Type = WeaponWeightType.MainWeapon; - /// - /// 插槽存放的武器 - /// - public Weapon Weapon; - } - - /// /// 归属者 /// public Role Master { get; } - - //public Weapon HandheldWeapon { get; private set; } - + /// /// 当前使用的武器对象 /// @@ -44,30 +23,69 @@ public int ActiveIndex { get; private set; } = 0; /// + /// 武器袋容量 + /// + public int Capacity { get; private set; } = 0; + + /// /// 武器插槽 /// - public WeaponSlot[] SlotList { get; } = new WeaponSlot[4]; + public Weapon[] Weapons { get; private set; } public Holster(Role master) { Master = master; + //默认容量4 + SetCapacity(4); + } - //创建武器的插槽, 默认前两个都是启用的 - WeaponSlot slot1 = new WeaponSlot(); - slot1.Enable = true; - SlotList[0] = slot1; + /// + /// 修改武器袋容量 + /// + public void SetCapacity(int capacity) + { + if (capacity < 0) + { + capacity = 0; + } - WeaponSlot slot2 = new WeaponSlot(); - slot2.Enable = true; - slot2.Type = WeaponWeightType.DeputyWeapon; - SlotList[1] = slot2; + if (capacity == Capacity) + { + return; + } - WeaponSlot slot3 = new WeaponSlot(); - SlotList[2] = slot3; + if (Weapons == null) + { + Weapons = new Weapon[capacity]; + } + else if (Weapons.Length > capacity) //删减格子 + { + var newArray = new Weapon[capacity]; + for (var i = 0; i < Weapons.Length; i++) + { + if (i < capacity) + { + newArray[i] = Weapons[i]; + } + else + { + Master.ThrowWeapon(i); + } + } - WeaponSlot slot4 = new WeaponSlot(); - slot4.Type = WeaponWeightType.DeputyWeapon; - SlotList[3] = slot4; + Weapons = newArray; + } + else //添加格子 + { + var newArray = new Weapon[capacity]; + for (var i = 0; i < Weapons.Length; i++) + { + newArray[i] = Weapons[i]; + } + Weapons = newArray; + } + Capacity = capacity; + } /// @@ -75,9 +93,9 @@ /// public bool IsEmpty() { - for (int i = 0; i < SlotList.Length; i++) + for (var i = 0; i < Weapons.Length; i++) { - if (SlotList[i].Weapon != null) + if (Weapons[i] != null) { return false; } @@ -91,10 +109,9 @@ /// public bool HasVacancy() { - for (int i = 0; i < SlotList.Length; i++) + for (var i = 0; i < Weapons.Length; i++) { - var item = SlotList[i]; - if (item.Enable && item.Weapon == null) + if (Weapons[i] == null) { return true; } @@ -108,11 +125,11 @@ /// public Weapon GetWeapon(int index) { - if (index < 0 || index >= SlotList.Length) + if (index < 0 || index >= Weapons.Length) { return null; } - return SlotList[index].Weapon; + return Weapons[index]; } /// @@ -121,10 +138,10 @@ /// 武器id public int FindWeapon(string id) { - for (int i = 0; i < SlotList.Length; i++) + for (var i = 0; i < Weapons.Length; i++) { - var item = SlotList[i]; - if (item.Weapon != null && item.Weapon.ItemId == id) + var item = Weapons[i]; + if (item != null && item.ItemId == id) { return i; } @@ -137,10 +154,10 @@ /// public int FindWeapon(Func handler) { - for (int i = 0; i < SlotList.Length; i++) + for (var i = 0; i < Weapons.Length; i++) { - var item = SlotList[i]; - if (item.Weapon != null && handler(item.Weapon, i)) + var item = Weapons[i]; + if (item != null && handler(item, i)) { return i; } @@ -153,12 +170,12 @@ /// public void ForEach(Action handler) { - for (int i = 0; i < SlotList.Length; i++) + for (var i = 0; i < Weapons.Length; i++) { - var item = SlotList[i]; - if (item.Weapon != null) + var item = Weapons[i]; + if (item != null) { - handler(item.Weapon, i); + handler(item, i); } } } @@ -168,17 +185,16 @@ /// public Weapon[] GetAndClearWeapon() { - List weapons = new List(); - for (int i = 0; i < SlotList.Length; i++) + var weapons = new List(); + for (var i = 0; i < Weapons.Length; i++) { - var slot = SlotList[i]; - var weapon = slot.Weapon; + var weapon = Weapons[i]; if (weapon != null) { weapon.GetParent().RemoveChild(weapon); weapon.RemoveAt(); weapons.Add(weapon); - slot.Weapon = null; + Weapons[i] = null; } } @@ -191,10 +207,10 @@ /// 武器对象 public bool CanPickupWeapon(Weapon weapon) { - for (int i = 0; i < SlotList.Length; i++) + for (var i = 0; i < Weapons.Length; i++) { - var item = SlotList[i]; - if (item.Enable && weapon.Attribute.WeightType == item.Type && item.Weapon == null) + var item = Weapons[i]; + if (item == null) { return true; } @@ -214,13 +230,13 @@ { return -1; } - for (int i = 0; i < SlotList.Length; i++) + for (var i = 0; i < Weapons.Length; i++) { - var item = SlotList[i]; - if (item.Enable && weapon.Attribute.WeightType == item.Type && item.Weapon == null) + var item = Weapons[i]; + if (item == null) { weapon.Pickup(); - item.Weapon = weapon; + Weapons[i] = weapon; weapon.PickUpWeapon(Master); if (exchange) { @@ -239,18 +255,17 @@ /// 所在武器袋的位置索引 public Weapon RemoveWeapon(int index) { - if (index < 0 || index >= SlotList.Length) + if (index < 0 || index >= Weapons.Length) { return null; } - var slot = SlotList[index]; - if (slot.Weapon == null) + var weapon = Weapons[index]; + if (weapon == null) { return null; } - var weapon = slot.Weapon; weapon.GetParent().RemoveChild(weapon); - slot.Weapon = null; + Weapons[index] = null; //如果是当前手持的武器, 就需要调用切换武器操作 if (index == ActiveIndex) @@ -276,7 +291,7 @@ { if (index < 0) { - index = SlotList.Length - 1; + index = Weapons.Length - 1; } if (ExchangeByIndex(index)) { @@ -294,7 +309,7 @@ var index = ActiveIndex + 1; do { - if (index >= SlotList.Length) + if (index >= Weapons.Length) { index = 0; } @@ -313,9 +328,9 @@ public bool ExchangeByIndex(int index) { if (index == ActiveIndex && ActiveWeapon != null) return true; - if (index < 0 || index > SlotList.Length) return false; - var slot = SlotList[index]; - if (slot == null || slot.Weapon == null) return false; + if (index < 0 || index > Weapons.Length) return false; + var weapon = Weapons[index]; + if (weapon == null) return false; //将上一把武器放到背后 if (ActiveWeapon != null) @@ -325,50 +340,28 @@ { tempParent.RemoveChild(ActiveWeapon); Master.BackMountPoint.AddChild(ActiveWeapon); - if (ActiveIndex == 0) - { - ActiveWeapon.Position = new Vector2(0, 5); - ActiveWeapon.RotationDegrees = 50; - ActiveWeapon.Scale = new Vector2(-1, 1); - } - else if (ActiveIndex == 1) - { - ActiveWeapon.Position = new Vector2(0, 0); - ActiveWeapon.RotationDegrees = 120; - ActiveWeapon.Scale = new Vector2(1, -1); - } - else if (ActiveIndex == 2) - { - ActiveWeapon.Position = new Vector2(0, 5); - ActiveWeapon.RotationDegrees = 310; - ActiveWeapon.Scale = new Vector2(1, 1); - } - else if (ActiveIndex == 3) - { - ActiveWeapon.Position = new Vector2(0, 0); - ActiveWeapon.RotationDegrees = 60; - ActiveWeapon.Scale = new Vector2(1, 1); - } + Master.OnPutBackMount(ActiveWeapon, ActiveIndex); ActiveWeapon.Conceal(); } } //更改父节点 - var parent = slot.Weapon.GetParentOrNull(); + var parent = weapon.GetParentOrNull(); if (parent == null) { - Master.MountPoint.AddChild(slot.Weapon); + Master.MountPoint.AddChild(weapon); } else if (parent != Master.MountPoint) { - parent.RemoveChild(slot.Weapon); - Master.MountPoint.AddChild(slot.Weapon); + parent.RemoveChild(weapon); + Master.MountPoint.AddChild(weapon); } - slot.Weapon.Position = Vector2.Zero; - slot.Weapon.Scale = Vector2.One; - slot.Weapon.RotationDegrees = 0; - ActiveWeapon = slot.Weapon; + weapon.Position = Vector2.Zero; + weapon.Scale = Vector2.One; + weapon.RotationDegrees = 0; + weapon.Visible = true; + ActiveWeapon = weapon; ActiveIndex = index; ActiveWeapon.Active(); return true; diff --git a/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs b/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs index e80b072..e416aae 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs @@ -949,12 +949,8 @@ if (holster.PickupWeapon(this) == -1) { //替换武器 - var slot = holster.SlotList[holster.ActiveIndex]; - if (slot.Type == Attribute.WeightType) - { - roleMaster.ThrowWeapon(); - roleMaster.PickUpWeapon(this); - } + roleMaster.ThrowWeapon(); + roleMaster.PickUpWeapon(this); } } } @@ -994,6 +990,9 @@ var angle = master.MountPoint.GlobalRotationDegrees; GlobalRotationDegrees = angle; + + //继承role的移动速度 + InheritVelocity(master); var startHeight = 6; var direction = angle + Utils.RandomRangeInt(-20, 20); @@ -1003,16 +1002,17 @@ Throw(startPosition, startHeight, yf, velocity, rotate); } - protected override void OnThrowOver() + protected override void OnThrowStart() { - //启用碰撞 - Collision.Disabled = false; + //禁用碰撞 + //Collision.Disabled = true; AnimationPlayer.Play("floodlight"); } - public override void PutDown(RoomLayerEnum layer, bool showShadow = true) + protected override void OnThrowOver() { - base.PutDown(layer, showShadow); + //启用碰撞 + //Collision.Disabled = false; AnimationPlayer.Play("floodlight"); } @@ -1035,11 +1035,10 @@ //停止动画 AnimationPlayer.Stop(); //清除泛白效果 - ShaderMaterial sm = (ShaderMaterial)AnimatedSprite.Material; - sm.SetShaderParameter("schedule", 0); + SetBlendSchedule(0); ZIndex = 0; //禁用碰撞 - Collision.Disabled = true; + //Collision.Disabled = true; //清除 Ai 拾起标记 RemoveSign(SignNames.AiFindWeaponSign); OnPickUp(master); @@ -1077,7 +1076,7 @@ HideShadowSprite(); OnConceal(); } - + //-------------------------------- Ai相关 ----------------------------- /// diff --git a/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs b/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs index c97cfee..a37809a 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs @@ -243,7 +243,7 @@ /// /// 用于Ai, Ai使用该武器消耗弹药的概率, (0 - 1) /// - public float AiAmmoConsumptionProbability = 1f; + public float AiAmmoConsumptionProbability = 0f; /// /// Ai 使用该武器时的武器数据, 设置该字段, 可让同一把武器在敌人和玩家手上有不同属性 diff --git a/DungeonShooting_Godot/src/game/item/weapon/bullet/Bullet.cs b/DungeonShooting_Godot/src/game/item/weapon/bullet/Bullet.cs index 1d66d3f..f165172 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/bullet/Bullet.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/bullet/Bullet.cs @@ -84,6 +84,11 @@ var role = other.AsActivityObject(); if (role != null) { + var packedScene = ResourceManager.Load(ResourcePath.prefab_effect_BulletDisappear_tscn); + var node = packedScene.Instantiate(); + node.GlobalPosition = GlobalPosition; + node.AddToActivityRoot(RoomLayerEnum.YSortLayer); + role.CallDeferred(nameof(Role.Hurt), 4, Rotation); Destroy(); } diff --git a/DungeonShooting_Godot/src/game/item/weapon/gun/Gun.cs b/DungeonShooting_Godot/src/game/item/weapon/gun/Gun.cs index b0a9644..fa902fc 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/gun/Gun.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/gun/Gun.cs @@ -106,6 +106,7 @@ var velocity = new Vector2(Utils.RandomRangeInt(20, 60), 0).Rotated(direction * Mathf.Pi / 180); var rotate = Utils.RandomRangeInt(-720, 720); var shell = Create(ActivityIdPrefix.Shell + "0001"); + shell.InheritVelocity(Master); shell.Throw(startPos, startHeight, verticalSpeed, velocity, rotate); if (Master == GameApplication.Instance.RoomManager.Player) diff --git a/DungeonShooting_Godot/src/game/item/weapon/gun/Shotgun.cs b/DungeonShooting_Godot/src/game/item/weapon/gun/Shotgun.cs index 139496f..4ee5e6e 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/gun/Shotgun.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/gun/Shotgun.cs @@ -70,6 +70,7 @@ var velocity = new Vector2(Utils.RandomRangeInt(20, 60), 0).Rotated(direction * Mathf.Pi / 180); var rotate = Utils.RandomRangeInt(-720, 720); var shell = Create(ActivityIdPrefix.Shell + "0001"); + shell.InheritVelocity(Master); shell.Throw(startPos, startHeight, verticalSpeed, velocity, rotate); if (Master == GameApplication.Instance.RoomManager.Player) diff --git a/DungeonShooting_Godot/src/game/item/weapon/shell/ShellCase.cs b/DungeonShooting_Godot/src/game/item/weapon/shell/ShellCase.cs index 24c56b8..1966222 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/shell/ShellCase.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/shell/ShellCase.cs @@ -7,30 +7,16 @@ [RegisterActivity(ActivityIdPrefix.Shell + "0001", ResourcePath.prefab_weapon_shell_ShellCase_tscn)] public partial class ShellCase : ActivityObject { - /// - /// 动画播放器 - /// - public AnimationPlayer AnimationPlayer { get; private set; } - public override void OnInit() { base.OnInit(); - AnimationPlayer = GetNode("AnimationPlayer"); ShadowOffset = new Vector2(0, 1); ThrowCollisionSize = new Vector2(5, 5); } protected override void OnThrowOver() { - //AwaitDestroy(); - MoveController.SetAllForce(Vector2.Zero); - AnimationPlayer.Play("flicker"); - } - - private async void AwaitDestroy() - { - //2秒后销毁 - await ToSignal(GetTree().CreateTimer(2), "timeout"); - Destroy(); + EnableBehavior = false; + Collision.QueueFree(); } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/manager/ActivityIdPrefix.cs b/DungeonShooting_Godot/src/game/manager/ActivityIdPrefix.cs index e62bbd1..c2edfc4 100644 --- a/DungeonShooting_Godot/src/game/manager/ActivityIdPrefix.cs +++ b/DungeonShooting_Godot/src/game/manager/ActivityIdPrefix.cs @@ -4,13 +4,45 @@ { public enum ActivityPrefixType { + /// + /// 无前缀 + /// NonePrefix, + /// + /// 玩家 + /// + Player, + /// + /// 测试对象 + /// Test, + /// + /// 角色 + /// Role, + /// + /// 敌人 + /// Enemy, + /// + /// 武器 + /// Weapon, + /// + /// 子弹 + /// Bullet, + /// + /// 弹壳 + /// Shell, + /// + /// 特效 + /// + Effect, + /// + /// 其它类型 + /// Other, } @@ -38,7 +70,10 @@ /// 弹壳 /// public const string Shell = "shell"; - + /// + /// 特效 + /// + public const string Effect = "effect"; /// /// 其他类型 /// @@ -56,6 +91,7 @@ case ActivityPrefixType.Test: return Test; case ActivityPrefixType.Role: + case ActivityPrefixType.Player: return Role; case ActivityPrefixType.Enemy: return Enemy; @@ -65,6 +101,8 @@ return Bullet; case ActivityPrefixType.Shell: return Shell; + case ActivityPrefixType.Effect: + return Effect; case ActivityPrefixType.Other: return Other; } diff --git a/DungeonShooting_Godot/src/game/manager/ResourceManager.cs b/DungeonShooting_Godot/src/game/manager/ResourceManager.cs index 9460334..41dfc21 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourceManager.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourceManager.cs @@ -15,7 +15,7 @@ { if (_shadowMaterial == null) { - _shadowMaterial = ResourceLoader.Load(ResourcePath.resource_materlal_Blend_tres); + _shadowMaterial = ResourceLoader.Load(ResourcePath.resource_material_Blend_tres); } return _shadowMaterial; @@ -33,7 +33,7 @@ { if (_shadowShader == null) { - _shadowShader = ResourceLoader.Load(ResourcePath.resource_materlal_Blend_gdshader); + _shadowShader = ResourceLoader.Load(ResourcePath.resource_material_Blend_tres); } return _shadowShader; @@ -53,7 +53,7 @@ { if (!useCache) { - T res = ResourceLoader.Load(path, null, ResourceLoader.CacheMode.Ignore); + var res = ResourceLoader.Load(path, null, ResourceLoader.CacheMode.Ignore); if (res == null) { GD.PrintErr("加载资源失败, 未找到资源: " + path); @@ -81,4 +81,14 @@ return default; } + + /// + /// 加载并且实例化场景, 并返回 + /// + /// 场景路径 + public static T LoadAndInstantiate(string path) where T : Node + { + var packedScene = Load(path); + return packedScene.Instantiate(); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs index 7d89582..299b36b 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs @@ -8,8 +8,11 @@ public const string prefab_effect_Blood_tscn = "res://prefab/effect/Blood.tscn"; public const string prefab_effect_BulletDisappear_tscn = "res://prefab/effect/BulletDisappear.tscn"; public const string prefab_effect_BulletSmoke_tscn = "res://prefab/effect/BulletSmoke.tscn"; + public const string prefab_effect_Effect1_tscn = "res://prefab/effect/Effect1.tscn"; public const string prefab_effect_FirePart_tscn = "res://prefab/effect/FirePart.tscn"; public const string prefab_effect_ShotFire_tscn = "res://prefab/effect/ShotFire.tscn"; + 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_role_Enemy_tscn = "res://prefab/role/Enemy.tscn"; public const string prefab_role_Player_tscn = "res://prefab/role/Player.tscn"; @@ -22,37 +25,32 @@ public const string prefab_weapon_Weapon_tscn = "res://prefab/weapon/Weapon.tscn"; public const string prefab_weapon_bullet_Bullet_tscn = "res://prefab/weapon/bullet/Bullet.tscn"; public const string prefab_weapon_shell_ShellCase_tscn = "res://prefab/weapon/shell/ShellCase.tscn"; + public const string resource_curve_Curve1_tres = "res://resource/curve/Curve1.tres"; public const string resource_effects_Circle_png = "res://resource/effects/Circle.png"; public const string resource_effects_Collision_png = "res://resource/effects/Collision.png"; public const string resource_effects_debug_arrows_png = "res://resource/effects/debug_arrows.png"; + public const string resource_effects_Effect1_png = "res://resource/effects/Effect1.png"; public const string resource_effects_Explosion_png = "res://resource/effects/Explosion.png"; public const string resource_effects_Hit_tres = "res://resource/effects/Hit.tres"; public const string resource_effects_KnifeHit1_tres = "res://resource/effects/KnifeHit1.tres"; public const string resource_effects_ShotFire_png = "res://resource/effects/ShotFire.png"; public const string resource_effects_Smoke_png = "res://resource/effects/Smoke.png"; + public const string resource_effects_activityObject_Enemy0001_Debris_png = "res://resource/effects/activityObject/Enemy0001_Debris.png"; public const string resource_font_cn_font_12_tres = "res://resource/font/cn_font_12.tres"; public const string resource_font_cn_font_18_tres = "res://resource/font/cn_font_18.tres"; public const string resource_font_cn_font_36_tres = "res://resource/font/cn_font_36.tres"; 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_Room2_json = "res://resource/map/tiledata/testGroup/battle/Room2.json"; - public const string resource_map_tiledata_testGroup_battle_Room3_json = "res://resource/map/tiledata/testGroup/battle/Room3.json"; - public const string resource_map_tiledata_testGroup_battle_Room4_json = "res://resource/map/tiledata/testGroup/battle/Room4.json"; - public const string resource_map_tiledata_testGroup_battle_Room5_json = "res://resource/map/tiledata/testGroup/battle/Room5.json"; - public const string resource_map_tiledata_testGroup_battle_Room6_json = "res://resource/map/tiledata/testGroup/battle/Room6.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_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_Room2_tscn = "res://resource/map/tileMaps/testGroup/battle/Room2.tscn"; - public const string resource_map_tileMaps_testGroup_battle_Room3_tscn = "res://resource/map/tileMaps/testGroup/battle/Room3.tscn"; - public const string resource_map_tileMaps_testGroup_battle_Room4_tscn = "res://resource/map/tileMaps/testGroup/battle/Room4.tscn"; - public const string resource_map_tileMaps_testGroup_battle_Room5_tscn = "res://resource/map/tileMaps/testGroup/battle/Room5.tscn"; - public const string resource_map_tileMaps_testGroup_battle_Room6_tscn = "res://resource/map/tileMaps/testGroup/battle/Room6.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_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"; - public const string resource_materlal_Blend_gdshader = "res://resource/materlal/Blend.gdshader"; - public const string resource_materlal_Blend_tres = "res://resource/materlal/Blend.tres"; + public const string resource_map_tileset_TileSet_old_tres = "res://resource/map/tileset/TileSet_old.tres"; + public const string resource_material_Blend_gdshader = "res://resource/material/Blend.gdshader"; + public const string resource_material_Blend_tres = "res://resource/material/Blend.tres"; + public const string resource_material_SmokeParticleMaterial_tres = "res://resource/material/SmokeParticleMaterial.tres"; public const string resource_sound_bgm_Intro_ogg = "res://resource/sound/bgm/Intro.ogg"; public const string resource_sound_sfx_ordinaryBullet_ogg = "res://resource/sound/sfx/ordinaryBullet.ogg"; public const string resource_sound_sfx_ordinaryBullet2_mp3 = "res://resource/sound/sfx/ordinaryBullet2.mp3"; @@ -238,6 +236,7 @@ public const string resource_sprite_gun_gun8_png = "res://resource/sprite/gun/gun8.png"; public const string resource_sprite_gun_knife1_png = "res://resource/sprite/gun/knife1.png"; public const string resource_sprite_gun_out_default_png = "res://resource/sprite/gun/out/default.png"; + public const string resource_sprite_map_door1_down_png = "res://resource/sprite/map/door1_down.png"; public const string resource_sprite_role_role1_png = "res://resource/sprite/role/role1.png"; public const string resource_sprite_role_role10_png = "res://resource/sprite/role/role10.png"; public const string resource_sprite_role_role2_png = "res://resource/sprite/role/role2.png"; @@ -271,6 +270,7 @@ public const string scene_Main_tscn = "res://scene/Main.tscn"; public const string scene_Room_tscn = "res://scene/Room.tscn"; public const string scene_test_TestCommpont_tscn = "res://scene/test/TestCommpont.tscn"; + public const string scene_test_TestExpression_tscn = "res://scene/test/TestExpression.tscn"; public const string scene_test_TestGenerateDungeon_tscn = "res://scene/test/TestGenerateDungeon.tscn"; public const string scene_test_TestNavigation_tscn = "res://scene/test/TestNavigation.tscn"; public const string scene_test_TestNavigation2_tscn = "res://scene/test/TestNavigation2.tscn"; diff --git a/DungeonShooting_Godot/src/game/role/AnimatorNames.cs b/DungeonShooting_Godot/src/game/role/AnimatorNames.cs index 2084a1f..29e59cb 100644 --- a/DungeonShooting_Godot/src/game/role/AnimatorNames.cs +++ b/DungeonShooting_Godot/src/game/role/AnimatorNames.cs @@ -5,6 +5,10 @@ public static class AnimatorNames { /// + /// 默认动画 + /// + public const string Default = "default"; + /// /// 静止不动 /// public const string Idle = "idle"; diff --git a/DungeonShooting_Godot/src/game/role/Player.cs b/DungeonShooting_Godot/src/game/role/Player.cs index a2c4dde..0946c07 100644 --- a/DungeonShooting_Godot/src/game/role/Player.cs +++ b/DungeonShooting_Godot/src/game/role/Player.cs @@ -28,9 +28,7 @@ AttackLayer = PhysicsLayer.Wall | PhysicsLayer.Props | PhysicsLayer.Enemy; Camp = CampEnum.Camp1; - - Holster.SlotList[2].Enable = true; - Holster.SlotList[3].Enable = true; + //让相机跟随玩家 // var remoteTransform = new RemoteTransform2D(); // AddChild(remoteTransform); diff --git a/DungeonShooting_Godot/src/game/role/Role.cs b/DungeonShooting_Godot/src/game/role/Role.cs index e619cf6..d6ab0a4 100644 --- a/DungeonShooting_Godot/src/game/role/Role.cs +++ b/DungeonShooting_Godot/src/game/role/Role.cs @@ -290,6 +290,34 @@ } } + /// + /// 当武器放到后背时调用, 用于设置武器位置和角度 + /// + /// 武器实例 + /// 放入武器袋的位置 + public virtual void OnPutBackMount(Weapon weapon, int index) + { + if (index < 8) + { + if (index % 2 == 0) + { + weapon.Position = new Vector2(-4, 3); + weapon.RotationDegrees = 90 - (index / 2f) * 20; + weapon.Scale = new Vector2(-1, 1); + } + else + { + weapon.Position = new Vector2(4, 3); + weapon.RotationDegrees = 270 + (index - 1) / 2f * 20; + weapon.Scale = new Vector2(1, 1); + } + } + else + { + weapon.Visible = false; + } + } + protected override void OnAffiliationChange() { //身上的武器的所属区域也得跟着变 @@ -351,9 +379,9 @@ /// public bool IsAllWeaponTotalAmmoEmpty() { - foreach (var weaponSlot in Holster.SlotList) + foreach (var weapon in Holster.Weapons) { - if (weaponSlot.Weapon != null && !weaponSlot.Weapon.IsTotalAmmoEmpty()) + if (weapon != null && !weapon.IsTotalAmmoEmpty()) { return false; } diff --git a/DungeonShooting_Godot/src/game/role/enemy/Enemy.cs b/DungeonShooting_Godot/src/game/role/enemy/Enemy.cs index e26025b..57e8bd8 100644 --- a/DungeonShooting_Godot/src/game/role/enemy/Enemy.cs +++ b/DungeonShooting_Godot/src/game/role/enemy/Enemy.cs @@ -91,9 +91,6 @@ MoveSpeed = 20; - Holster.SlotList[2].Enable = true; - Holster.SlotList[3].Enable = true; - MaxHp = 20; Hp = 20; @@ -139,6 +136,22 @@ { weapons[i].ThrowWeapon(this); } + + var effPos = Position + new Vector2(0, -Altitude); + //血液特效 + var blood = ResourceManager.LoadAndInstantiate(ResourcePath.prefab_effect_activityObject_EnemyBloodEffect_tscn); + blood.Position = effPos - new Vector2(0, 12); + blood.AddToActivityRoot(RoomLayerEnum.NormalLayer); + + //创建敌人碎片 + var count = Utils.RandomRangeInt(3, 6); + for (var i = 0; i < count; i++) + { + var debris = Create(ActivityIdPrefix.Effect + "0001"); + debris.PutDown(effPos, RoomLayerEnum.NormalLayer); + debris.InheritVelocity(this); + } + //派发敌人死亡信号 EventManager.EmitEvent(EventEnum.OnEnemyDie, this); Destroy(); diff --git a/DungeonShooting_Godot/src/game/room/RoomDoor.cs b/DungeonShooting_Godot/src/game/room/RoomDoor.cs index 369eedd..634e709 100644 --- a/DungeonShooting_Godot/src/game/room/RoomDoor.cs +++ b/DungeonShooting_Godot/src/game/room/RoomDoor.cs @@ -1,4 +1,6 @@  +using Godot; + /// /// 房间的门, 门有两种状态, 打开和关闭 /// @@ -28,16 +30,25 @@ switch (doorInfo.Direction) { case DoorDirection.E: - RotationDegrees = 90; + 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: - RotationDegrees = 270; + 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: - RotationDegrees = 180; + AnimatedSprite.Position = new Vector2(0, -8); break; case DoorDirection.N: - RotationDegrees = 0; + ZIndex = GameConfig.MiddleMapLayer; + AnimatedSprite.Position = new Vector2(0, -8); break; } } diff --git a/DungeonShooting_Godot/src/game/room/RoomManager.cs b/DungeonShooting_Godot/src/game/room/RoomManager.cs index 93a5d5a..daf7a79 100644 --- a/DungeonShooting_Godot/src/game/room/RoomManager.cs +++ b/DungeonShooting_Godot/src/game/room/RoomManager.cs @@ -77,7 +77,7 @@ _dungeonTile.AutoFillRoomTile(_autoTileConfig, _dungeonGenerator.StartRoom); //生成寻路网格, 这一步操作只生成过道的导航 - _dungeonTile.GenerateNavigationPolygon(DungeonTile.AisleFloorMapLayer); + _dungeonTile.GenerateNavigationPolygon(GameConfig.AisleFloorMapLayer); //挂载过道导航区域 _dungeonTile.MountNavigationPolygon(this); //过道导航区域数据 @@ -93,7 +93,7 @@ //SoundManager.PlayMusic(ResourcePath.resource_sound_bgm_Intro_ogg, -17f); //初始房间创建玩家标记 - var playerBirthMark = StartRoom.ActivityMarks.FirstOrDefault(mark => mark is PlayerBirthMark); + var playerBirthMark = StartRoom.ActivityMarks.FirstOrDefault(mark => mark.Type == ActivityIdPrefix.ActivityPrefixType.Player); //创建玩家 Player = ActivityObject.Create(ActivityIdPrefix.Role + "0001"); if (playerBirthMark != null) @@ -230,16 +230,16 @@ 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.W: + offset = new Vector2(-0.5f, 2); + break; case DoorDirection.S: - offset = new Vector2(2f, -0.5f); + offset = new Vector2(2f, 1.5f); break; case DoorDirection.N: - offset = new Vector2(2f, 0.5f); + offset = new Vector2(2f, -0.5f); break; default: offset = new Vector2(); break; @@ -285,7 +285,7 @@ private void OnCheckEnemy() { var activeRoom = ActiveRoom; - if (activeRoom != null && activeRoom.IsSeclusion) + if (activeRoom != null)// && //activeRoom.IsSeclusion) { if (activeRoom.IsCurrWaveOver()) //所有标记执行完成 { diff --git a/DungeonShooting_Godot/src/test/TestExpression.cs b/DungeonShooting_Godot/src/test/TestExpression.cs new file mode 100644 index 0000000..94614a0 --- /dev/null +++ b/DungeonShooting_Godot/src/test/TestExpression.cs @@ -0,0 +1,18 @@ +using Godot; +using System; +using System.Collections.Generic; +using System.Text.RegularExpressions; + +public partial class TestExpression : Node2D +{ + [Export(PropertyHint.Expression)] + public string Str; + + public override void _Ready() + { + //var expressions = Pretreatment(Str); + + } + + +} diff --git a/README.md b/README.md index 50ab26d..18aa74c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -一款由Godot开发的地牢射击类型的游戏, 脚本语言使用的是C#, 当前项目使用的Godot版本: Godot_v4.0.2 +一款由Godot开发的地牢射击类型的游戏, 脚本语言使用的是C#, 当前项目使用的Godot版本: Godot_v4.1.dev --- ### 游戏定义