diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx index 0e93ce5..10deb1a 100644 --- a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx index df603d2..8d9efc9 100644 --- a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx index f909ce4..717252f 100644 --- a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx index 6f1a4d7..30c616f 100644 --- a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx b/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx index 52b0385..adbcf30 100644 --- a/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx b/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx index c13160a..56dd8b6 100644 --- a/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx index 0c85b96..b8161de 100644 --- a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx index 49bb79e..595e022 100644 --- a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/prefab/effect/enemy/EbenyDead0001.tscn b/DungeonShooting_Godot/prefab/effect/enemy/EbenyDead0001.tscn deleted file mode 100644 index d92969c..0000000 --- a/DungeonShooting_Godot/prefab/effect/enemy/EbenyDead0001.tscn +++ /dev/null @@ -1,207 +0,0 @@ -[gd_scene load_steps=31 format=3 uid="uid://pr88a1phtxgb"] - -[ext_resource type="Script" path="res://src/game/effects/enemy/EnemyDead0001.cs" id="1_1re5v"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_s7bee"] -[ext_resource type="Texture2D" uid="uid://cn64eauvwx1uj" path="res://resource/sprite/role/enemy0001/enemy0001_Debris.png" id="3_uinig"] -[ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/sprite/effects/common/Smoke.png" id="4_t55wd"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_s1mj2"] -resource_local_to_scene = true -shader = ExtResource("2_s7bee") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/modulate = Color(1, 1, 1, 1) -shader_parameter/show_outline = true -shader_parameter/outline_color = Color(0, 0, 0, 1) -shader_parameter/outline_rainbow = false -shader_parameter/outline_use_blend = true -shader_parameter/grey = 0.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_08fn3"] -shader = ExtResource("2_s7bee") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/modulate = Color(1, 1, 1, 1) -shader_parameter/show_outline = false -shader_parameter/outline_color = Color(0, 0, 0, 1) -shader_parameter/outline_rainbow = false -shader_parameter/outline_use_blend = true -shader_parameter/grey = 0.0 - -[sub_resource type="AtlasTexture" id="AtlasTexture_cldwb"] -atlas = ExtResource("3_uinig") -region = Rect2(0, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ehtnl"] -atlas = ExtResource("3_uinig") -region = Rect2(16, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_j05gd"] -atlas = ExtResource("3_uinig") -region = Rect2(32, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_7el6f"] -atlas = ExtResource("3_uinig") -region = Rect2(48, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_n7sw3"] -atlas = ExtResource("3_uinig") -region = Rect2(64, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_mumsm"] -atlas = ExtResource("3_uinig") -region = Rect2(80, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_gx41d"] -atlas = ExtResource("3_uinig") -region = Rect2(96, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_r4nx1"] -atlas = ExtResource("3_uinig") -region = Rect2(112, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_s8j4o"] -atlas = ExtResource("3_uinig") -region = Rect2(128, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_2svrb"] -atlas = ExtResource("3_uinig") -region = Rect2(144, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_twd5t"] -atlas = ExtResource("3_uinig") -region = Rect2(160, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_8w5ka"] -atlas = ExtResource("3_uinig") -region = Rect2(176, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_6iumv"] -atlas = ExtResource("3_uinig") -region = Rect2(192, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_lpilf"] -atlas = ExtResource("3_uinig") -region = Rect2(208, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_n1a5a"] -atlas = ExtResource("3_uinig") -region = Rect2(224, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_q0oeq"] -atlas = ExtResource("3_uinig") -region = Rect2(240, 0, 16, 16) - -[sub_resource type="SpriteFrames" id="SpriteFrames_15g84"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_cldwb") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ehtnl") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_j05gd") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_7el6f") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_n7sw3") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_mumsm") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_gx41d") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_r4nx1") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_s8j4o") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_2svrb") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_twd5t") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_8w5ka") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_6iumv") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_lpilf") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_n1a5a") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_q0oeq") -}], -"loop": false, -"name": &"default", -"speed": 5.0 -}] - -[sub_resource type="CircleShape2D" id="CircleShape2D_0xl2q"] -radius = 4.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 -angle_max = 360.0 -gravity = Vector3(0, 0, 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="Effect0001" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 128 -script = ExtResource("1_1re5v") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[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="."] -shape = SubResource("CircleShape2D_0xl2q") - -[node name="GPUParticles2D" type="GPUParticles2D" parent="."] -material = SubResource("CanvasItemMaterial_p3lv8") -emitting = false -process_material = SubResource("ParticleProcessMaterial_ku1mm") -texture = ExtResource("4_t55wd") -fixed_fps = 20 diff --git a/DungeonShooting_Godot/prefab/effect/enemy/EbenyDead0002.tscn b/DungeonShooting_Godot/prefab/effect/enemy/EbenyDead0002.tscn deleted file mode 100644 index 92f5491..0000000 --- a/DungeonShooting_Godot/prefab/effect/enemy/EbenyDead0002.tscn +++ /dev/null @@ -1,129 +0,0 @@ -[gd_scene load_steps=19 format=3 uid="uid://nfx3lhkdhv6a"] - -[ext_resource type="Script" path="res://src/game/activity/common/AutoFreezeObject.cs" id="1_iop26"] -[ext_resource type="Texture2D" uid="uid://x3tjqgdgp43n" path="res://resource/sprite/role/enemy0002/Enemy0002_dead.png" id="2_3cyjy"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_4hojo"] -[ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/sprite/effects/common/Smoke.png" id="4_m7xko"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_s1mj2"] -resource_local_to_scene = true -shader = ExtResource("2_4hojo") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/modulate = Color(1, 1, 1, 1) -shader_parameter/show_outline = true -shader_parameter/outline_color = Color(0, 0, 0, 1) -shader_parameter/outline_rainbow = false -shader_parameter/outline_use_blend = true -shader_parameter/grey = 0.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_08fn3"] -resource_local_to_scene = true -shader = ExtResource("2_4hojo") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/modulate = Color(1, 1, 1, 1) -shader_parameter/show_outline = true -shader_parameter/outline_color = Color(0, 0, 0, 1) -shader_parameter/outline_rainbow = false -shader_parameter/outline_use_blend = true -shader_parameter/grey = 0.0 - -[sub_resource type="AtlasTexture" id="AtlasTexture_ag5h2"] -atlas = ExtResource("2_3cyjy") -region = Rect2(0, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_toly3"] -atlas = ExtResource("2_3cyjy") -region = Rect2(32, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_bqash"] -atlas = ExtResource("2_3cyjy") -region = Rect2(64, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_lx5fo"] -atlas = ExtResource("2_3cyjy") -region = Rect2(96, 0, 32, 32) - -[sub_resource type="SpriteFrames" id="SpriteFrames_vhsqr"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_ag5h2") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_toly3") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_bqash") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_lx5fo") -}], -"loop": false, -"name": &"dead", -"speed": 5.0 -}] - -[sub_resource type="CircleShape2D" id="CircleShape2D_0xl2q"] -radius = 4.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 -angle_max = 360.0 -gravity = Vector3(0, 0, 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="Effect0002" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 128 -script = ExtResource("1_iop26") -AnimationName = "dead" -AutoToGrey = true -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") -ThrowCollisionSize = Vector2(14, 14) - -[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_vhsqr") -animation = &"dead" -offset = Vector2(0, -9) - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("CircleShape2D_0xl2q") - -[node name="GPUParticles2D" type="GPUParticles2D" parent="."] -material = SubResource("CanvasItemMaterial_p3lv8") -emitting = false -process_material = SubResource("ParticleProcessMaterial_ku1mm") -texture = ExtResource("4_m7xko") -fixed_fps = 20 diff --git a/DungeonShooting_Godot/prefab/effect/enemy/EnemyDead0001.tscn b/DungeonShooting_Godot/prefab/effect/enemy/EnemyDead0001.tscn new file mode 100644 index 0000000..d92969c --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/enemy/EnemyDead0001.tscn @@ -0,0 +1,207 @@ +[gd_scene load_steps=31 format=3 uid="uid://pr88a1phtxgb"] + +[ext_resource type="Script" path="res://src/game/effects/enemy/EnemyDead0001.cs" id="1_1re5v"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_s7bee"] +[ext_resource type="Texture2D" uid="uid://cn64eauvwx1uj" path="res://resource/sprite/role/enemy0001/enemy0001_Debris.png" id="3_uinig"] +[ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/sprite/effects/common/Smoke.png" id="4_t55wd"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_s1mj2"] +resource_local_to_scene = true +shader = ExtResource("2_s7bee") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true +shader_parameter/grey = 0.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_08fn3"] +shader = ExtResource("2_s7bee") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true +shader_parameter/grey = 0.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_cldwb"] +atlas = ExtResource("3_uinig") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ehtnl"] +atlas = ExtResource("3_uinig") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j05gd"] +atlas = ExtResource("3_uinig") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7el6f"] +atlas = ExtResource("3_uinig") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n7sw3"] +atlas = ExtResource("3_uinig") +region = Rect2(64, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mumsm"] +atlas = ExtResource("3_uinig") +region = Rect2(80, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gx41d"] +atlas = ExtResource("3_uinig") +region = Rect2(96, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_r4nx1"] +atlas = ExtResource("3_uinig") +region = Rect2(112, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_s8j4o"] +atlas = ExtResource("3_uinig") +region = Rect2(128, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2svrb"] +atlas = ExtResource("3_uinig") +region = Rect2(144, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_twd5t"] +atlas = ExtResource("3_uinig") +region = Rect2(160, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8w5ka"] +atlas = ExtResource("3_uinig") +region = Rect2(176, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6iumv"] +atlas = ExtResource("3_uinig") +region = Rect2(192, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lpilf"] +atlas = ExtResource("3_uinig") +region = Rect2(208, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n1a5a"] +atlas = ExtResource("3_uinig") +region = Rect2(224, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_q0oeq"] +atlas = ExtResource("3_uinig") +region = Rect2(240, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_15g84"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_cldwb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ehtnl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j05gd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7el6f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_n7sw3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mumsm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gx41d") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_r4nx1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_s8j4o") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2svrb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_twd5t") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8w5ka") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6iumv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lpilf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_n1a5a") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_q0oeq") +}], +"loop": false, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_0xl2q"] +radius = 4.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 +angle_max = 360.0 +gravity = Vector3(0, 0, 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="Effect0001" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 128 +script = ExtResource("1_1re5v") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[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="."] +shape = SubResource("CircleShape2D_0xl2q") + +[node name="GPUParticles2D" type="GPUParticles2D" parent="."] +material = SubResource("CanvasItemMaterial_p3lv8") +emitting = false +process_material = SubResource("ParticleProcessMaterial_ku1mm") +texture = ExtResource("4_t55wd") +fixed_fps = 20 diff --git a/DungeonShooting_Godot/prefab/effect/enemy/EnemyDead0002.tscn b/DungeonShooting_Godot/prefab/effect/enemy/EnemyDead0002.tscn new file mode 100644 index 0000000..6b7cab8 --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/enemy/EnemyDead0002.tscn @@ -0,0 +1,128 @@ +[gd_scene load_steps=19 format=3 uid="uid://nfx3lhkdhv6a"] + +[ext_resource type="Script" path="res://src/game/effects/enemy/EnemyDead0002.cs" id="1_ghu6a"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_q163q"] +[ext_resource type="Texture2D" uid="uid://x3tjqgdgp43n" path="res://resource/sprite/role/enemy0002/Enemy0002_dead.png" id="3_l0kbp"] +[ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/sprite/effects/common/Smoke.png" id="4_2wygu"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_s1mj2"] +resource_local_to_scene = true +shader = ExtResource("2_q163q") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true +shader_parameter/grey = 0.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_08fn3"] +resource_local_to_scene = true +shader = ExtResource("2_q163q") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true +shader_parameter/grey = 0.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_ag5h2"] +atlas = ExtResource("3_l0kbp") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_toly3"] +atlas = ExtResource("3_l0kbp") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bqash"] +atlas = ExtResource("3_l0kbp") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lx5fo"] +atlas = ExtResource("3_l0kbp") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="SpriteFrames" id="SpriteFrames_vhsqr"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_ag5h2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_toly3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bqash") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lx5fo") +}], +"loop": false, +"name": &"dead", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_0xl2q"] +radius = 4.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 +angle_max = 360.0 +gravity = Vector3(0, 0, 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="Effect0002" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 128 +script = ExtResource("1_ghu6a") +AnimationName = "dead" +AutoToGrey = true +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[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_vhsqr") +animation = &"dead" +offset = Vector2(0, -9) + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_0xl2q") + +[node name="GPUParticles2D" type="GPUParticles2D" parent="."] +material = SubResource("CanvasItemMaterial_p3lv8") +emitting = false +process_material = SubResource("ParticleProcessMaterial_ku1mm") +texture = ExtResource("4_2wygu") +fixed_fps = 20 diff --git a/DungeonShooting_Godot/resource/config/ActivityBase.json b/DungeonShooting_Godot/resource/config/ActivityBase.json index ce102c7..8d049da 100644 --- a/DungeonShooting_Godot/resource/config/ActivityBase.json +++ b/DungeonShooting_Godot/resource/config/ActivityBase.json @@ -259,7 +259,7 @@ "Details": "", "IsStatic": false, "__Material": "", - "Prefab": "res://prefab/effect/enemy/EbenyDead0001.tscn", + "Prefab": "res://prefab/effect/enemy/EnemyDead0001.tscn", "Icon": "", "ShowInMapEditor": false }, @@ -271,7 +271,7 @@ "Details": "", "IsStatic": false, "__Material": "", - "Prefab": "res://prefab/effect/enemy/EbenyDead0002.tscn", + "Prefab": "res://prefab/effect/enemy/EnemyDead0002.tscn", "Icon": "", "ShowInMapEditor": false }, diff --git a/DungeonShooting_Godot/resource/config/LiquidMaterial.json b/DungeonShooting_Godot/resource/config/LiquidMaterial.json index 156a26d..bd94e3b 100644 --- a/DungeonShooting_Godot/resource/config/LiquidMaterial.json +++ b/DungeonShooting_Godot/resource/config/LiquidMaterial.json @@ -14,5 +14,13 @@ "Ffm": 0.7, "Duration": 4, "WriteOffSpeed": 0.2 + }, + { + "Id": "0003", + "Remark": "\u8840\u6DB2", + "BurshTexture": "res://resource/sprite/brush/Brush4.png", + "Ffm": 0.5, + "Duration": 6, + "WriteOffSpeed": 0.2 } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/sprite/brush/Brush4.png b/DungeonShooting_Godot/resource/sprite/brush/Brush4.png new file mode 100644 index 0000000..5a7a53d --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/brush/Brush4.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/brush/Brush4.png.import b/DungeonShooting_Godot/resource/sprite/brush/Brush4.png.import new file mode 100644 index 0000000..087a811 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/brush/Brush4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://crprpnkrl3owc" +path="res://.godot/imported/Brush4.png-56aadb405a3711a8f68b1ef228ca286c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/brush/Brush4.png" +dest_files=["res://.godot/imported/Brush4.png-56aadb405a3711a8f68b1ef228ca286c.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/src/game/GameApplication.cs b/DungeonShooting_Godot/src/game/GameApplication.cs index 3f57200..04e90b5 100644 --- a/DungeonShooting_Godot/src/game/GameApplication.cs +++ b/DungeonShooting_Godot/src/game/GameApplication.cs @@ -106,7 +106,7 @@ //随机化种子 //GD.Randomize(); //固定帧率 - Engine.MaxFps = TargetFps; + //Engine.MaxFps = TargetFps; //调试绘制开关 ActivityObject.IsDebug = false; //Engine.TimeScale = 0.2f; diff --git a/DungeonShooting_Godot/src/game/activity/common/AutoFreezeObject.cs b/DungeonShooting_Godot/src/game/activity/common/AutoFreezeObject.cs index cd245fd..7a3c94a 100644 --- a/DungeonShooting_Godot/src/game/activity/common/AutoFreezeObject.cs +++ b/DungeonShooting_Godot/src/game/activity/common/AutoFreezeObject.cs @@ -19,9 +19,21 @@ [Export] public bool AutoToGrey { get; set; } + /// + /// 冻结次数 + /// + public int FreezeCount { get; private set; } + private bool _playFlag = false; private float _grey = 0; + /// + /// 冻结时调用 + /// + protected virtual void OnFreeze() + { + } + public override void OnInit() { if (!string.IsNullOrEmpty(AnimationName)) @@ -46,7 +58,9 @@ } if (AffiliationArea != null) { + OnFreeze(); Freeze(); + FreezeCount++; } else { diff --git a/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs b/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs index 1837b00..32ae476 100644 --- a/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs +++ b/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs @@ -9,7 +9,7 @@ public partial class NoWeaponEnemy : Enemy { private Vector2I? _prevPosition = null; - private BrushImageData _brushData3; + private BrushImageData _brushData; public override void OnInit() { @@ -17,17 +17,18 @@ NoWeaponAttack = true; AnimationPlayer.AnimationFinished += OnAnimationFinished; - _brushData3 = new BrushImageData(ExcelConfig.LiquidMaterial_Map["0002"]); + _brushData = LiquidBrushManager.GetBrush("0002"); } protected override void Process(float delta) { base.Process(delta); + //测试笔刷 if (AffiliationArea != null) { var pos = AffiliationArea.RoomInfo.LiquidCanvas.ToLiquidCanvasPosition(Position); - AffiliationArea.RoomInfo.LiquidCanvas.DrawBrush(_brushData3, _prevPosition, pos, 0); + AffiliationArea.RoomInfo.LiquidCanvas.DrawBrush(_brushData, _prevPosition, pos, 0); _prevPosition = pos; } } @@ -47,7 +48,7 @@ for (var i = 0; i < 8; i++) { var data = bulletData.Clone(); - var tempPos = new Vector2(targetPosition.X + Utils.Random.RandomRangeInt(-30, 30), targetPosition.Y + + Utils.Random.RandomRangeInt(-30, 30)); + var tempPos = new Vector2(targetPosition.X + Utils.Random.RandomRangeInt(-30, 30), targetPosition.Y + Utils.Random.RandomRangeInt(-30, 30)); FireManager.SetParabolaTarget(data, tempPos); FireManager.ShootBullet(data, AttackLayer); } @@ -57,10 +58,11 @@ { var realVelocity = GetRealVelocity(); var effPos = Position; - var debris = Create(Ids.Id_enemy_dead0002); + var debris = Create(Ids.Id_enemy_dead0002); debris.PutDown(effPos, RoomLayerEnum.NormalLayer); debris.MoveController.AddForce(Velocity + realVelocity); debris.SetFace(Face); + debris.PrevPosition = _prevPosition; //派发敌人死亡信号 EventManager.EmitEvent(EventEnum.OnEnemyDie, this); diff --git a/DungeonShooting_Godot/src/game/effects/enemy/EnemyDead0001.cs b/DungeonShooting_Godot/src/game/effects/enemy/EnemyDead0001.cs index d600a25..ff7ca48 100644 --- a/DungeonShooting_Godot/src/game/effects/enemy/EnemyDead0001.cs +++ b/DungeonShooting_Godot/src/game/effects/enemy/EnemyDead0001.cs @@ -8,9 +8,15 @@ [Tool] public partial class EnemyDead0001 : ActivityObject { - + /// + /// 上一帧笔刷坐标 + /// + public Vector2I? PrevPosition = null; + private BrushImageData _brushData; + private GpuParticles2D _gpuParticles2D; private bool _playOver = false; + private bool _runBrush = true; public override void OnInit() { @@ -25,6 +31,7 @@ ); StartCoroutine(EmitParticles()); + _brushData = LiquidBrushManager.GetBrush("0003"); } protected override void Process(float delta) @@ -33,6 +40,13 @@ { MoveController.SetAllVelocity(Vector2.Zero); Freeze(); + _runBrush = false; + } + else if (_runBrush && AffiliationArea != null && Altitude <= 1f) //测试笔刷 + { + var pos = AffiliationArea.RoomInfo.LiquidCanvas.ToLiquidCanvasPosition(Position); + AffiliationArea.RoomInfo.LiquidCanvas.DrawBrush(_brushData, PrevPosition, pos, 0); + PrevPosition = pos; } } diff --git a/DungeonShooting_Godot/src/game/effects/enemy/EnemyDead0002.cs b/DungeonShooting_Godot/src/game/effects/enemy/EnemyDead0002.cs new file mode 100644 index 0000000..3786200 --- /dev/null +++ b/DungeonShooting_Godot/src/game/effects/enemy/EnemyDead0002.cs @@ -0,0 +1,31 @@ + +using Godot; + +[Tool] +public partial class EnemyDead0002 : AutoFreezeObject +{ + /// + /// 上一帧笔刷坐标 + /// + public Vector2I? PrevPosition = null; + private BrushImageData _brushData; + + public override void OnInit() + { + base.OnInit(); + _brushData = LiquidBrushManager.GetBrush("0002"); + } + + protected override void Process(float delta) + { + base.Process(delta); + + //测试笔刷 + if (FreezeCount == 0 && AffiliationArea != null) + { + var pos = AffiliationArea.RoomInfo.LiquidCanvas.ToLiquidCanvasPosition(Position); + AffiliationArea.RoomInfo.LiquidCanvas.DrawBrush(_brushData, PrevPosition, pos, 0); + PrevPosition = pos; + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/manager/LiquidBrushManager.cs b/DungeonShooting_Godot/src/game/manager/LiquidBrushManager.cs new file mode 100644 index 0000000..88fb064 --- /dev/null +++ b/DungeonShooting_Godot/src/game/manager/LiquidBrushManager.cs @@ -0,0 +1,33 @@ + +using System.Collections.Generic; +using Config; + +/// +/// 液体笔刷管理类 +/// +public static class LiquidBrushManager +{ + private static Dictionary _dictionary = new Dictionary(); + + /// + /// 根据 id 获取笔刷, 该 id 为 LiquidMaterial 表的 id + /// + public static BrushImageData GetBrush(string id) + { + if (!_dictionary.TryGetValue(id, out var brush)) + { + brush = new BrushImageData(ExcelConfig.LiquidMaterial_Map[id]); + _dictionary.Add(id, brush); + } + + return brush; + } + + /// + /// 清除缓存笔刷数据 + /// + public static void ClearData() + { + _dictionary.Clear(); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/room/DungeonManager.cs b/DungeonShooting_Godot/src/game/room/DungeonManager.cs index dc809fc..9ddf478 100644 --- a/DungeonShooting_Godot/src/game/room/DungeonManager.cs +++ b/DungeonShooting_Godot/src/game/room/DungeonManager.cs @@ -288,6 +288,7 @@ GameApplication.Instance.DestroyWorld(); yield return 0; FogMaskHandler.ClearRecordRoom(); + LiquidBrushManager.ClearData(); BrushImageData.ClearBrushData(); QueueRedraw(); //鼠标还原