From 107c54cc567cf2b44314b03d52c4523b9d4e7834 Mon Sep 17 00:00:00 2001 From: chendian <-> Date: Thu, 8 Feb 2024 01:59:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=A4=E5=AE=B3=E7=B1=BB=E5=9E=8B=E5=8C=BA?= =?UTF-8?q?=E5=88=86=20=E6=96=A9=E5=B1=9E=E6=80=A7=20=E6=89=93=E5=B1=9E?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/attack/blunt_heavy_hit_blow.tres | 23 ++ config/attack/blunt_mid_hit_blow.tres | 23 ++ config/attack/blunt_normal_hit.tres | 23 ++ config/attack/blunt_normal_hit_back.tres | 23 ++ config/attack/blunt_normal_hit_up.tres | 23 ++ config/attack/rebound.tres | 11 +- ...it_blow.tres => sharp_heavy_hit_blow.tres} | 9 +- .../{mid_hit.tres => sharp_mid_hit.tres} | 13 +- ..._hit_blow.tres => sharp_mid_hit_blow.tres} | 0 ..._hit_down.tres => sharp_mid_hit_down.tres} | 13 +- ...{normal_hit.tres => sharp_normal_hit.tres} | 13 +- ...t_back.tres => sharp_normal_hit_back.tres} | 13 +- ...t_blow.tres => sharp_normal_hit_blow.tres} | 0 ...t_down.tres => sharp_normal_hit_down.tres} | 0 ...l_hit_up.tres => sharp_normal_hit_up.tres} | 0 .../hero01_common_skill02.tres | 2 +- .../hero01_fist_air_skill01.tres | 2 +- .../hero01_fist_attack01.tres | 4 +- .../hero01_fist_attack02.tres | 4 +- .../hero01_fist_attack03.tres | 4 +- .../hero01_fist_attack04.tres | 4 +- .../hero01_fist_attack05.tres | 4 +- .../hero01_long_air_attack01.tres | 2 +- .../hero01_long_air_attack02.tres | 2 +- .../hero01_long_air_attack03.tres | 2 +- .../hero01_long_attack01.tres | 2 +- .../hero01_long_attack02.tres | 2 +- .../hero01_long_attack03.tres | 2 +- .../hero01_long_attack04.tres | 2 +- .../hero01_long_skill01.tres | 2 +- .../hero01_long_skill02.tres | 2 +- .../hero01_short_attack01.tres | 2 +- .../hero01_short_attack02.tres | 2 +- .../hero01_short_attack03.tres | 2 +- .../hero01_short_attack04.tres | 2 +- render/shader/trail.gdshader | 10 + .../particle/shape/{flare.png => flare1.png} | Bin .../{flare.png.import => flare1.png.import} | 6 +- render/texture/particle/shape/flare2.png | Bin 0 -> 85873 bytes .../texture/particle/shape/flare2.png.import | 34 +++ render/texture/particle/shape/flare3.png | Bin 0 -> 23299 bytes .../texture/particle/shape/flare3.png.import | 34 +++ ..._ground.tscn => _particle_hit_ground.tscn} | 0 ...rticle_slash.tscn => _particle_slash.tscn} | 0 .../particle/hero01_common_skill02.tscn | 2 +- .../particle/hero01_fist_air_skill01_1.tscn | 2 +- .../effect/particle/hero01_long_attack01.tscn | 2 +- .../effect/particle/hero01_long_attack02.tscn | 2 +- .../particle/hero01_long_attack03_0.tscn | 2 +- .../particle/hero01_long_attack03_1.tscn | 2 +- .../effect/particle/hero01_long_attack04.tscn | 2 +- scene/effect/particle/particle_hit_blunt.tscn | 202 ++++++++++++++++++ ...ticle_hit.tscn => particle_hit_sharp.tscn} | 53 ++++- script/_global/enum.gd | 2 +- script/character/battle.gd | 4 +- script/character/effect.gd | 44 ++-- script/config/attack_cfg.gd | 20 +- script/manager/resource_manager.gd | 3 +- 58 files changed, 564 insertions(+), 99 deletions(-) create mode 100644 config/attack/blunt_heavy_hit_blow.tres create mode 100644 config/attack/blunt_mid_hit_blow.tres create mode 100644 config/attack/blunt_normal_hit.tres create mode 100644 config/attack/blunt_normal_hit_back.tres create mode 100644 config/attack/blunt_normal_hit_up.tres rename config/attack/{heavy_hit_blow.tres => sharp_heavy_hit_blow.tres} (93%) rename config/attack/{mid_hit.tres => sharp_mid_hit.tres} (87%) rename config/attack/{mid_hit_blow.tres => sharp_mid_hit_blow.tres} (100%) rename config/attack/{mid_hit_down.tres => sharp_mid_hit_down.tres} (84%) rename config/attack/{normal_hit.tres => sharp_normal_hit.tres} (87%) rename config/attack/{normal_hit_back.tres => sharp_normal_hit_back.tres} (87%) rename config/attack/{normal_hit_blow.tres => sharp_normal_hit_blow.tres} (100%) rename config/attack/{normal_hit_down.tres => sharp_normal_hit_down.tres} (100%) rename config/attack/{normal_hit_up.tres => sharp_normal_hit_up.tres} (100%) create mode 100644 render/shader/trail.gdshader rename render/texture/particle/shape/{flare.png => flare1.png} (100%) rename render/texture/particle/shape/{flare.png.import => flare1.png.import} (71%) create mode 100644 render/texture/particle/shape/flare2.png create mode 100644 render/texture/particle/shape/flare2.png.import create mode 100644 render/texture/particle/shape/flare3.png create mode 100644 render/texture/particle/shape/flare3.png.import rename scene/effect/particle/{particle_hit_ground.tscn => _particle_hit_ground.tscn} (100%) rename scene/effect/particle/{particle_slash.tscn => _particle_slash.tscn} (100%) create mode 100644 scene/effect/particle/particle_hit_blunt.tscn rename scene/effect/particle/{particle_hit.tscn => particle_hit_sharp.tscn} (65%) diff --git a/config/attack/blunt_heavy_hit_blow.tres b/config/attack/blunt_heavy_hit_blow.tres new file mode 100644 index 0000000..e474647 --- /dev/null +++ b/config/attack/blunt_heavy_hit_blow.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://bwe8xlgfhx1gl"] + +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_fpmns"] + +[resource] +script = ExtResource("1_fpmns") +damage_rate = 1.0 +break_level = 3 +stun_attack = 10.0 +damage_type = 1 +is_floating = true +is_hit_down = false +is_rebound = false +hit_back_speed = 8.0 +hit_up_speed = 4.0 +hit_back_duration = 0.05 +hit_up_duration = 0.05 +pause_time = 0.4 +is_force_pause = false +height = 2.0 +radius = 0.0 +size = Vector2(2, 1) +offset = Vector2(1, 0) diff --git a/config/attack/blunt_mid_hit_blow.tres b/config/attack/blunt_mid_hit_blow.tres new file mode 100644 index 0000000..3d5dc01 --- /dev/null +++ b/config/attack/blunt_mid_hit_blow.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://duu05cr8gk5v4"] + +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_xyhsk"] + +[resource] +script = ExtResource("1_xyhsk") +damage_rate = 1.0 +break_level = 2 +stun_attack = 10.0 +damage_type = 1 +is_floating = true +is_hit_down = false +is_rebound = false +hit_back_speed = 4.0 +hit_up_speed = 3.0 +hit_back_duration = 0.05 +hit_up_duration = 0.05 +pause_time = 0.15 +is_force_pause = false +height = 2.0 +radius = 0.0 +size = Vector2(2, 1) +offset = Vector2(1, 0) diff --git a/config/attack/blunt_normal_hit.tres b/config/attack/blunt_normal_hit.tres new file mode 100644 index 0000000..daea2d3 --- /dev/null +++ b/config/attack/blunt_normal_hit.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://dib6g7t6p5ac2"] + +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_w5b6b"] + +[resource] +script = ExtResource("1_w5b6b") +damage_rate = 1.0 +break_level = 1 +stun_attack = 10.0 +damage_type = 1 +is_floating = false +is_hit_down = false +is_rebound = false +hit_back_speed = 2.0 +hit_up_speed = 1.0 +hit_back_duration = 0.05 +hit_up_duration = 0.05 +pause_time = 0.05 +is_force_pause = false +height = 2.0 +radius = 0.0 +size = Vector2(2, 1) +offset = Vector2(1, 0) diff --git a/config/attack/blunt_normal_hit_back.tres b/config/attack/blunt_normal_hit_back.tres new file mode 100644 index 0000000..e9cad42 --- /dev/null +++ b/config/attack/blunt_normal_hit_back.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://c87w2x5qfqdns"] + +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_egjnk"] + +[resource] +script = ExtResource("1_egjnk") +damage_rate = 1.0 +break_level = 2 +stun_attack = 10.0 +damage_type = 1 +is_floating = false +is_hit_down = false +is_rebound = false +hit_back_speed = 4.0 +hit_up_speed = 2.0 +hit_back_duration = 0.05 +hit_up_duration = 0.05 +pause_time = 0.05 +is_force_pause = false +height = 2.0 +radius = 0.0 +size = Vector2(2, 1) +offset = Vector2(1, 0) diff --git a/config/attack/blunt_normal_hit_up.tres b/config/attack/blunt_normal_hit_up.tres new file mode 100644 index 0000000..58dc42c --- /dev/null +++ b/config/attack/blunt_normal_hit_up.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://ctbdt77yyubxn"] + +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_r7m5n"] + +[resource] +script = ExtResource("1_r7m5n") +damage_rate = 1.0 +break_level = 1 +stun_attack = 10.0 +damage_type = 1 +is_floating = true +is_hit_down = false +is_rebound = false +hit_back_speed = 0.0 +hit_up_speed = 3.0 +hit_back_duration = 0.05 +hit_up_duration = 0.1 +pause_time = 0.05 +is_force_pause = true +height = 2.0 +radius = 0.0 +size = Vector2(2, 1) +offset = Vector2(1, 0) diff --git a/config/attack/rebound.tres b/config/attack/rebound.tres index c16041e..5d90d85 100644 --- a/config/attack/rebound.tres +++ b/config/attack/rebound.tres @@ -7,14 +7,15 @@ script = ExtResource("1_2fwsa") damage_rate = 1.0 break_level = 1 stun_attack = 10.0 -hit_back_speed = 0.0 -hit_back_duration = 0.0 -hit_up_speed = 3.0 -hit_up_duration = 0.05 -pause_time = 0.2 +damage_type = 1 is_floating = true is_hit_down = false is_rebound = true +hit_back_speed = 0.0 +hit_up_speed = 3.0 +hit_back_duration = 0.0 +hit_up_duration = 0.05 +pause_time = 0.15 is_force_pause = false height = 2.0 radius = 0.0 diff --git a/config/attack/heavy_hit_blow.tres b/config/attack/sharp_heavy_hit_blow.tres similarity index 93% rename from config/attack/heavy_hit_blow.tres rename to config/attack/sharp_heavy_hit_blow.tres index 360f60c..f12a18a 100644 --- a/config/attack/heavy_hit_blow.tres +++ b/config/attack/sharp_heavy_hit_blow.tres @@ -7,14 +7,15 @@ script = ExtResource("1_j177j") damage_rate = 1.0 break_level = 3 stun_attack = 10.0 +damage_type = 0 +is_floating = false +is_hit_down = false +is_rebound = false hit_back_speed = 10.0 -hit_back_duration = 0.05 hit_up_speed = 2.0 +hit_back_duration = 0.05 hit_up_duration = 0.05 pause_time = 0.3 -is_floating = true -is_hit_down = false -is_rebound = false is_force_pause = false height = 2.0 radius = 0.0 diff --git a/config/attack/mid_hit.tres b/config/attack/sharp_mid_hit.tres similarity index 87% rename from config/attack/mid_hit.tres rename to config/attack/sharp_mid_hit.tres index f5fce80..db19996 100644 --- a/config/attack/mid_hit.tres +++ b/config/attack/sharp_mid_hit.tres @@ -1,20 +1,21 @@ [gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://cae3dxpuqfcux"] -[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_lveis"] +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_ijso0"] [resource] -script = ExtResource("1_lveis") +script = ExtResource("1_ijso0") damage_rate = 1.0 break_level = 2 stun_attack = 10.0 +damage_type = 0 +is_floating = false +is_hit_down = false +is_rebound = false hit_back_speed = 3.0 -hit_back_duration = 0.05 hit_up_speed = 1.0 +hit_back_duration = 0.05 hit_up_duration = 0.05 pause_time = 0.1 -is_floating = false -is_hit_down = false -is_rebound = false is_force_pause = false height = 2.0 radius = 0.0 diff --git a/config/attack/mid_hit_blow.tres b/config/attack/sharp_mid_hit_blow.tres similarity index 100% rename from config/attack/mid_hit_blow.tres rename to config/attack/sharp_mid_hit_blow.tres diff --git a/config/attack/mid_hit_down.tres b/config/attack/sharp_mid_hit_down.tres similarity index 84% rename from config/attack/mid_hit_down.tres rename to config/attack/sharp_mid_hit_down.tres index 04d8697..1da4c00 100644 --- a/config/attack/mid_hit_down.tres +++ b/config/attack/sharp_mid_hit_down.tres @@ -1,20 +1,21 @@ [gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://rqjggte0qh84"] -[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_077t2"] +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_l5a6t"] [resource] -script = ExtResource("1_077t2") +script = ExtResource("1_l5a6t") damage_rate = 1.0 break_level = 2 stun_attack = 10.0 +damage_type = 0 +is_floating = false +is_hit_down = true +is_rebound = false hit_back_speed = 6.0 -hit_back_duration = 0.05 hit_up_speed = -6.0 +hit_back_duration = 0.05 hit_up_duration = 0.05 pause_time = 0.1 -is_floating = true -is_hit_down = true -is_rebound = false is_force_pause = false height = 2.0 radius = 0.0 diff --git a/config/attack/normal_hit.tres b/config/attack/sharp_normal_hit.tres similarity index 87% rename from config/attack/normal_hit.tres rename to config/attack/sharp_normal_hit.tres index 98c375d..85dd650 100644 --- a/config/attack/normal_hit.tres +++ b/config/attack/sharp_normal_hit.tres @@ -1,20 +1,21 @@ [gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://bsqk3q6mccllg"] -[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_wn06b"] +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_v2kmn"] [resource] -script = ExtResource("1_wn06b") +script = ExtResource("1_v2kmn") damage_rate = 1.0 break_level = 1 stun_attack = 10.0 +damage_type = 0 +is_floating = false +is_hit_down = false +is_rebound = false hit_back_speed = 2.0 -hit_back_duration = 0.05 hit_up_speed = 1.0 +hit_back_duration = 0.05 hit_up_duration = 0.05 pause_time = 0.02 -is_floating = false -is_hit_down = false -is_rebound = false is_force_pause = false height = 2.0 radius = 0.0 diff --git a/config/attack/normal_hit_back.tres b/config/attack/sharp_normal_hit_back.tres similarity index 87% rename from config/attack/normal_hit_back.tres rename to config/attack/sharp_normal_hit_back.tres index 71187dc..9faca7c 100644 --- a/config/attack/normal_hit_back.tres +++ b/config/attack/sharp_normal_hit_back.tres @@ -1,20 +1,21 @@ [gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://ckeuv5lhfk2s0"] -[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_7f5fg"] +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_4245c"] [resource] -script = ExtResource("1_7f5fg") +script = ExtResource("1_4245c") damage_rate = 1.0 break_level = 2 stun_attack = 10.0 +damage_type = 0 +is_floating = false +is_hit_down = false +is_rebound = false hit_back_speed = 4.0 -hit_back_duration = 0.05 hit_up_speed = 2.0 +hit_back_duration = 0.05 hit_up_duration = 0.05 pause_time = 0.02 -is_floating = false -is_hit_down = false -is_rebound = false is_force_pause = false height = 2.0 radius = 0.0 diff --git a/config/attack/normal_hit_blow.tres b/config/attack/sharp_normal_hit_blow.tres similarity index 100% rename from config/attack/normal_hit_blow.tres rename to config/attack/sharp_normal_hit_blow.tres diff --git a/config/attack/normal_hit_down.tres b/config/attack/sharp_normal_hit_down.tres similarity index 100% rename from config/attack/normal_hit_down.tres rename to config/attack/sharp_normal_hit_down.tres diff --git a/config/attack/normal_hit_up.tres b/config/attack/sharp_normal_hit_up.tres similarity index 100% rename from config/attack/normal_hit_up.tres rename to config/attack/sharp_normal_hit_up.tres diff --git a/config/skill_player_common/hero01_common_skill02.tres b/config/skill_player_common/hero01_common_skill02.tres index 6e4950c..4f30387 100644 --- a/config/skill_player_common/hero01_common_skill02.tres +++ b/config/skill_player_common/hero01_common_skill02.tres @@ -1,7 +1,7 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=5 format=3 uid="uid://iyqp5jwc75b1"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_e1byx"] -[ext_resource type="Resource" uid="uid://dbs2wjw20s0hu" path="res://config/attack/heavy_hit_blow.tres" id="1_ihbmo"] +[ext_resource type="Resource" uid="uid://dbs2wjw20s0hu" path="res://config/attack/sharp_heavy_hit_blow.tres" id="1_ihbmo"] [ext_resource type="Animation" uid="uid://dkkqys8el1u6g" path="res://resource/skill_animation/hero01_common_skill02.tres" id="2_n2c7s"] [ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="3_roc1y"] diff --git a/config/skill_player_weapon/hero01_fist_air_skill01.tres b/config/skill_player_weapon/hero01_fist_air_skill01.tres index 112ce5e..381943c 100644 --- a/config/skill_player_weapon/hero01_fist_air_skill01.tres +++ b/config/skill_player_weapon/hero01_fist_air_skill01.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://dkxgra6y2u30l"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_h0ykq"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_h0ykq"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_mje6b"] [ext_resource type="Animation" uid="uid://dxgqn5fa7aokj" path="res://resource/skill_animation/hero01_fist_air_skill01.tres" id="3_q461t"] [ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="4_seudu"] diff --git a/config/skill_player_weapon/hero01_fist_attack01.tres b/config/skill_player_weapon/hero01_fist_attack01.tres index a317920..38846d5 100644 --- a/config/skill_player_weapon/hero01_fist_attack01.tres +++ b/config/skill_player_weapon/hero01_fist_attack01.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://7e4fnj5sg72s"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_bu2a5"] +[ext_resource type="Resource" uid="uid://dib6g7t6p5ac2" path="res://config/attack/blunt_normal_hit.tres" id="1_cl2eu"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_yc8jq"] [ext_resource type="Animation" uid="uid://t01a4jvp8srr" path="res://resource/skill_animation/hero01_fist_attack01.tres" id="3_b2pdb"] [ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_ymqrn"] @@ -15,7 +15,7 @@ break_level = 3 action = "attack_light" name = "" skill_animation = ExtResource("3_b2pdb") -attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_bu2a5")]) +attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_cl2eu")]) sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([]) free_lock = false refresh_animation = false diff --git a/config/skill_player_weapon/hero01_fist_attack02.tres b/config/skill_player_weapon/hero01_fist_attack02.tres index 7e5bf3a..d45f3ba 100644 --- a/config/skill_player_weapon/hero01_fist_attack02.tres +++ b/config/skill_player_weapon/hero01_fist_attack02.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://dubkvm86cj32f"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_5lw1c"] +[ext_resource type="Resource" uid="uid://c87w2x5qfqdns" path="res://config/attack/blunt_normal_hit_back.tres" id="1_ne108"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_h70wx"] [ext_resource type="Animation" uid="uid://cyu0yin1rpiak" path="res://resource/skill_animation/hero01_fist_attack02.tres" id="3_tllt1"] [ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_fevaa"] @@ -15,7 +15,7 @@ break_level = 3 action = "attack_light" name = "" skill_animation = ExtResource("3_tllt1") -attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_5lw1c")]) +attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_ne108")]) sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([]) free_lock = false refresh_animation = false diff --git a/config/skill_player_weapon/hero01_fist_attack03.tres b/config/skill_player_weapon/hero01_fist_attack03.tres index 9aa3e37..4f94ea0 100644 --- a/config/skill_player_weapon/hero01_fist_attack03.tres +++ b/config/skill_player_weapon/hero01_fist_attack03.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://dekpkk8o6o8hk"] -[ext_resource type="Resource" uid="uid://68h2b6wmwfiq" path="res://config/attack/normal_hit_blow.tres" id="1_6jcku"] +[ext_resource type="Resource" uid="uid://duu05cr8gk5v4" path="res://config/attack/blunt_mid_hit_blow.tres" id="1_vxltf"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_fde7v"] [ext_resource type="Animation" uid="uid://c6mk8tfdpniys" path="res://resource/skill_animation/hero01_fist_attack03.tres" id="3_6rajt"] [ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_orcy6"] @@ -15,7 +15,7 @@ break_level = 3 action = "attack_light" name = "" skill_animation = ExtResource("3_6rajt") -attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_6jcku")]) +attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_vxltf")]) sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([]) free_lock = false refresh_animation = false diff --git a/config/skill_player_weapon/hero01_fist_attack04.tres b/config/skill_player_weapon/hero01_fist_attack04.tres index 25bd9ea..b0fdaeb 100644 --- a/config/skill_player_weapon/hero01_fist_attack04.tres +++ b/config/skill_player_weapon/hero01_fist_attack04.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://b4aysymwqtvtd"] -[ext_resource type="Resource" uid="uid://2bkub7vmxjeu" path="res://config/attack/mid_hit_blow.tres" id="1_ejw6g"] +[ext_resource type="Resource" uid="uid://duu05cr8gk5v4" path="res://config/attack/blunt_mid_hit_blow.tres" id="1_i4hus"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_mhuew"] [ext_resource type="Animation" uid="uid://6u3dhxly760l" path="res://resource/skill_animation/hero01_fist_attack04.tres" id="3_bst70"] [ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_hyek5"] @@ -15,7 +15,7 @@ break_level = 3 action = "attack_light" name = "" skill_animation = ExtResource("3_bst70") -attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_ejw6g")]) +attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_i4hus")]) sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([]) free_lock = false refresh_animation = false diff --git a/config/skill_player_weapon/hero01_fist_attack05.tres b/config/skill_player_weapon/hero01_fist_attack05.tres index 11ccc71..374001d 100644 --- a/config/skill_player_weapon/hero01_fist_attack05.tres +++ b/config/skill_player_weapon/hero01_fist_attack05.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://0n2jnkdrwa2l"] -[ext_resource type="Resource" uid="uid://dbs2wjw20s0hu" path="res://config/attack/heavy_hit_blow.tres" id="1_n24bv"] +[ext_resource type="Resource" uid="uid://bwe8xlgfhx1gl" path="res://config/attack/blunt_heavy_hit_blow.tres" id="1_k5vfx"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_ym7q1"] [ext_resource type="Animation" uid="uid://b2xdmgnem1h4g" path="res://resource/skill_animation/hero01_fist_attack05.tres" id="3_dbjmb"] [ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_mhr07"] @@ -15,7 +15,7 @@ break_level = 3 action = "attack_light" name = "" skill_animation = ExtResource("3_dbjmb") -attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_n24bv")]) +attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_k5vfx")]) sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([]) free_lock = false refresh_animation = false diff --git a/config/skill_player_weapon/hero01_long_air_attack01.tres b/config/skill_player_weapon/hero01_long_air_attack01.tres index 4873236..8d1e1f3 100644 --- a/config/skill_player_weapon/hero01_long_air_attack01.tres +++ b/config/skill_player_weapon/hero01_long_air_attack01.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://bsdspblvefgpv"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_mxlqc"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_mxlqc"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_hh5ph"] [ext_resource type="Animation" uid="uid://p8l0puqxrkwh" path="res://resource/skill_animation/hero01_long_air_attack01.tres" id="3_3pp8a"] [ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="4_q0bln"] diff --git a/config/skill_player_weapon/hero01_long_air_attack02.tres b/config/skill_player_weapon/hero01_long_air_attack02.tres index bee3bae..ed785a6 100644 --- a/config/skill_player_weapon/hero01_long_air_attack02.tres +++ b/config/skill_player_weapon/hero01_long_air_attack02.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://drxg06dvcx4oj"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_qfkyy"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_qfkyy"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_gjjhv"] [ext_resource type="Animation" uid="uid://cjfy6ia1ukyiu" path="res://resource/skill_animation/hero01_long_air_attack02.tres" id="3_76yga"] [ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="4_ahm2t"] diff --git a/config/skill_player_weapon/hero01_long_air_attack03.tres b/config/skill_player_weapon/hero01_long_air_attack03.tres index a9023d8..9abab2b 100644 --- a/config/skill_player_weapon/hero01_long_air_attack03.tres +++ b/config/skill_player_weapon/hero01_long_air_attack03.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://c8l7h74abqlhb"] -[ext_resource type="Resource" uid="uid://rqjggte0qh84" path="res://config/attack/mid_hit_down.tres" id="1_gddcp"] +[ext_resource type="Resource" uid="uid://rqjggte0qh84" path="res://config/attack/sharp_mid_hit_down.tres" id="1_gddcp"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_0x7hh"] [ext_resource type="Animation" uid="uid://bh5s2t3cbobpp" path="res://resource/skill_animation/hero01_long_air_attack03.tres" id="3_1erk8"] [ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="4_wrd60"] diff --git a/config/skill_player_weapon/hero01_long_attack01.tres b/config/skill_player_weapon/hero01_long_attack01.tres index 6388e8e..de724d0 100644 --- a/config/skill_player_weapon/hero01_long_attack01.tres +++ b/config/skill_player_weapon/hero01_long_attack01.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://b6x3jdiqtum6"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_6ven2"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_6ven2"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_gik08"] [ext_resource type="Animation" uid="uid://daopmieibx3b7" path="res://resource/skill_animation/hero01_long_attack01.tres" id="2_6nbpq"] [ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="4_id85o"] diff --git a/config/skill_player_weapon/hero01_long_attack02.tres b/config/skill_player_weapon/hero01_long_attack02.tres index b1113ea..58e9e1d 100644 --- a/config/skill_player_weapon/hero01_long_attack02.tres +++ b/config/skill_player_weapon/hero01_long_attack02.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://cs32884hwqxd7"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_8fm1u"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_8fm1u"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_e0fqi"] [ext_resource type="Animation" uid="uid://bf6jaraltouun" path="res://resource/skill_animation/hero01_long_attack02.tres" id="2_jrgan"] [ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="3_jidy7"] diff --git a/config/skill_player_weapon/hero01_long_attack03.tres b/config/skill_player_weapon/hero01_long_attack03.tres index a67a82e..36ab501 100644 --- a/config/skill_player_weapon/hero01_long_attack03.tres +++ b/config/skill_player_weapon/hero01_long_attack03.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://huxlxrmyulo"] -[ext_resource type="Resource" uid="uid://ckeuv5lhfk2s0" path="res://config/attack/normal_hit_back.tres" id="1_7ai5j"] +[ext_resource type="Resource" uid="uid://ckeuv5lhfk2s0" path="res://config/attack/sharp_normal_hit_back.tres" id="1_7ai5j"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_uaib7"] [ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="2_8uqiw"] [ext_resource type="Animation" uid="uid://c8yueqe7rjn60" path="res://resource/skill_animation/hero01_long_attack03.tres" id="2_ugt3f"] diff --git a/config/skill_player_weapon/hero01_long_attack04.tres b/config/skill_player_weapon/hero01_long_attack04.tres index 62136ae..c94dd23 100644 --- a/config/skill_player_weapon/hero01_long_attack04.tres +++ b/config/skill_player_weapon/hero01_long_attack04.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://chuv8k5d44ln4"] -[ext_resource type="Resource" uid="uid://dbs2wjw20s0hu" path="res://config/attack/heavy_hit_blow.tres" id="1_7tise"] +[ext_resource type="Resource" uid="uid://dbs2wjw20s0hu" path="res://config/attack/sharp_heavy_hit_blow.tres" id="1_7tise"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_xsxbs"] [ext_resource type="Animation" uid="uid://dk1o3gqhjmuvh" path="res://resource/skill_animation/hero01_long_attack04.tres" id="2_sam6s"] [ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="3_w7h1m"] diff --git a/config/skill_player_weapon/hero01_long_skill01.tres b/config/skill_player_weapon/hero01_long_skill01.tres index 26f5ea5..198cc69 100644 --- a/config/skill_player_weapon/hero01_long_skill01.tres +++ b/config/skill_player_weapon/hero01_long_skill01.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://bi2ipbximefsr"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_p5wrw"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_p5wrw"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_ud5ph"] [ext_resource type="Animation" uid="uid://bjnkrte7660pt" path="res://resource/skill_animation/hero01_long_skill01.tres" id="2_ewts2"] [ext_resource type="SpriteFrames" uid="uid://dhfqj1dxldqao" path="res://resource/animation/character/hero01_long_skill01.aseprite" id="3_qwjfl"] diff --git a/config/skill_player_weapon/hero01_long_skill02.tres b/config/skill_player_weapon/hero01_long_skill02.tres index 4432b1c..8bf3387 100644 --- a/config/skill_player_weapon/hero01_long_skill02.tres +++ b/config/skill_player_weapon/hero01_long_skill02.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://4whbnu8f7qyo"] -[ext_resource type="Resource" uid="uid://ckbf40c75bfqf" path="res://config/attack/normal_hit_up.tres" id="1_edtv7"] +[ext_resource type="Resource" uid="uid://ckbf40c75bfqf" path="res://config/attack/sharp_normal_hit_up.tres" id="1_edtv7"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_1xtt1"] [ext_resource type="Animation" uid="uid://iprcbf277rf4" path="res://resource/skill_animation/hero01_long_skill02.tres" id="3_b7s0y"] [ext_resource type="SpriteFrames" uid="uid://dhfqj1dxldqao" path="res://resource/animation/character/hero01_long_skill01.aseprite" id="4_rbnly"] diff --git a/config/skill_player_weapon/hero01_short_attack01.tres b/config/skill_player_weapon/hero01_short_attack01.tres index b97e9eb..aeb58bf 100644 --- a/config/skill_player_weapon/hero01_short_attack01.tres +++ b/config/skill_player_weapon/hero01_short_attack01.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://bcxglqq08pymr"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_r3o2x"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_r3o2x"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_gsnqk"] [ext_resource type="Animation" uid="uid://bkre61dn64j2f" path="res://resource/skill_animation/hero01_short_attack01.tres" id="4_f30l7"] [ext_resource type="SpriteFrames" uid="uid://cndpnxtdh37ii" path="res://resource/animation/character/hero01_short_attack.aseprite" id="5_8vcrr"] diff --git a/config/skill_player_weapon/hero01_short_attack02.tres b/config/skill_player_weapon/hero01_short_attack02.tres index e1b48dc..0e60102 100644 --- a/config/skill_player_weapon/hero01_short_attack02.tres +++ b/config/skill_player_weapon/hero01_short_attack02.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://cm7nbxogmlvp5"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_nmank"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_nmank"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_8ixmd"] [ext_resource type="Animation" uid="uid://xfuwfwtw4cna" path="res://resource/skill_animation/hero01_short_attack02.tres" id="4_mepfm"] [ext_resource type="SpriteFrames" uid="uid://cndpnxtdh37ii" path="res://resource/animation/character/hero01_short_attack.aseprite" id="5_dxfya"] diff --git a/config/skill_player_weapon/hero01_short_attack03.tres b/config/skill_player_weapon/hero01_short_attack03.tres index a8c770a..ba1cc61 100644 --- a/config/skill_player_weapon/hero01_short_attack03.tres +++ b/config/skill_player_weapon/hero01_short_attack03.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://bex4a43t6ettj"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_5om0v"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_5om0v"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_8rsme"] [ext_resource type="Animation" uid="uid://bdyjvq185tdk6" path="res://resource/skill_animation/hero01_short_attack03.tres" id="4_7ws6s"] [ext_resource type="SpriteFrames" uid="uid://cndpnxtdh37ii" path="res://resource/animation/character/hero01_short_attack.aseprite" id="5_40215"] diff --git a/config/skill_player_weapon/hero01_short_attack04.tres b/config/skill_player_weapon/hero01_short_attack04.tres index f187875..e0e7255 100644 --- a/config/skill_player_weapon/hero01_short_attack04.tres +++ b/config/skill_player_weapon/hero01_short_attack04.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://cya7i41k08jgc"] -[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_hd2st"] +[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/sharp_normal_hit.tres" id="1_hd2st"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_44lu2"] [ext_resource type="Animation" uid="uid://c8qll8wcn633m" path="res://resource/skill_animation/hero01_short_attack04.tres" id="4_rcj2c"] [ext_resource type="SpriteFrames" uid="uid://cndpnxtdh37ii" path="res://resource/animation/character/hero01_short_attack.aseprite" id="5_owk7o"] diff --git a/render/shader/trail.gdshader b/render/shader/trail.gdshader new file mode 100644 index 0000000..53d34e3 --- /dev/null +++ b/render/shader/trail.gdshader @@ -0,0 +1,10 @@ +shader_type spatial; +render_mode blend_add,unshaded,particle_trails; + +uniform sampler2D tex_main : source_color; + +void fragment() { + vec4 col = texture(tex_main, UV); + ALBEDO = COLOR.rgb * col.r; + ALPHA = COLOR.a * col.r; +} diff --git a/render/texture/particle/shape/flare.png b/render/texture/particle/shape/flare1.png similarity index 100% rename from render/texture/particle/shape/flare.png rename to render/texture/particle/shape/flare1.png diff --git a/render/texture/particle/shape/flare.png.import b/render/texture/particle/shape/flare1.png.import similarity index 71% rename from render/texture/particle/shape/flare.png.import rename to render/texture/particle/shape/flare1.png.import index a20dc6f..28b23ad 100644 --- a/render/texture/particle/shape/flare.png.import +++ b/render/texture/particle/shape/flare1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bb0yfk0u4lqqn" -path="res://.godot/imported/flare.png-97e47c07f4cdcd90f4926e0bac2a678f.ctex" +path="res://.godot/imported/flare1.png-83f5920deb7ad485a7c7b680e8e08898.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://render/texture/particle/shape/flare.png" -dest_files=["res://.godot/imported/flare.png-97e47c07f4cdcd90f4926e0bac2a678f.ctex"] +source_file="res://render/texture/particle/shape/flare1.png" +dest_files=["res://.godot/imported/flare1.png-83f5920deb7ad485a7c7b680e8e08898.ctex"] [params] diff --git a/render/texture/particle/shape/flare2.png b/render/texture/particle/shape/flare2.png new file mode 100644 index 0000000000000000000000000000000000000000..4334191e1a16b3408d4a4fd9b63d34852ca17626 GIT binary patch literal 85873 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 UO%Q()r;GxZgPn`*18Zu+|N46BN&o-= literal 0 HcmV?d00001 diff --git a/render/texture/particle/shape/flare2.png.import b/render/texture/particle/shape/flare2.png.import new file mode 100644 index 0000000..684ddbd --- /dev/null +++ b/render/texture/particle/shape/flare2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccl81e2qroccb" +path="res://.godot/imported/flare2.png-af7398ece2bd1f0ad1250f7ad6f45639.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://render/texture/particle/shape/flare2.png" +dest_files=["res://.godot/imported/flare2.png-af7398ece2bd1f0ad1250f7ad6f45639.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=0 +compress/normal_map=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=false +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=0 diff --git a/render/texture/particle/shape/flare3.png b/render/texture/particle/shape/flare3.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9b8651fa6fea2b976ecafa1af8cd7723a0a283 GIT binary patch literal 23299 zcmd3uT0V|k+YEl06?XouBs0Jpc@eckP_brnt$t@j*vpyD<`8s%C4DKYW=f*B^guB ze!p8aVGA(`Lh)-4@f&@#eu4l;WQx!DJhL}VT{sOLP7f@1QT$G%^j8L?!}#x#S)@xx zw)k6f?l%`%s=}d$%KX^-t6Os41kTRRzfqk{{(HkJTzTa2{6PfY&u~l2G;evCH@^r@ z$NW}}M)^zLY$$TR2G$n2ua9c1v=o;V(=3hJ2j12BF|x~ikmBULqvl=|SA16z7y{n3xX(*B;XcEqw<|^K1xrvHkshW3oUGkLk&#yq86U9mm~D=zRb|0(?uZSz8;@t{Co20za!CS4UtfpAKN)VN>FY6AvXk@# z6e~CfEa0SMY3~^9t_QB%^!Ket9cE!+AzY%;4TVttj<4DgA#sUN^9q}nVJ2xkO(J&d z-Jo;K4CL}DI$U@O0giYy>xFB-0TFoGhJZ#(0RXzblcsjDT!&Pm?sx_*D8QoY(SGei z6P8=+h^y@ehXsb)2zAWz$a9&++LGm{yw#Lz?((R!V?=6urHF*WpTlkZt1M^4qrJVK zkeHF)O<#j72oc;lvMl;?jxRe~-tB&^wm|8ku)zrL9#WBHo&@kDHMg9fo%gJK>E?cG zfqk1xgjOVii%oP*nvHEhzh0N!PW}S2s%rNmXd$Qm8lRr-95Og0srBtvzNN#{?z4qH zs0>v<5Fz%{17Yu%0&9GhBCEUk>+kv6UDbcuvlduTM8(nzaBhBz71I973Bd4sXxIu_ zySfUvc{n60*BDfw>mr)EY^hgSw6al6e(iOu&I##+P}!1}k?x3wUjXg%$B^b%qlQBj z2^C{2lU$G09zQ%t7@F=k0d(WzffKT;ftryTfcvf1^b(@vq;j66A zkF?8o$~PnGsk#7(efVcW^=4ODn*=I1!ONm!;NO#{n;(fNsVJl0)zFcEPyk!=yDQS8 z*qo0GCpqsr6xZ{Z>#hQ% zyFxD>nn+JeFG{Z}K|jvWGqUUM=mhKUSS_YXJ&1;w+9BIh?^zzlSo?@^OkJOaZ}0E= zhtwaJi7&Q>i7&FZur`OZbYp&a&MwaSmad-VQ{DR4&?!hv+VZT0Q!bvjysEa!h5o(k z^&B%Hc)DkoV?TPlW?Uo)DYnSg%=r3p=vMV};PMJy5l+6dvt#qpZ`goGI4Lm^7jP(? zk)N!EYNamp?pun~486?My`yttU{>imAuFrrsT%! z31VB?ygHZpE=XN(dSlGR8-KA$9wwl%fJhI$SWO=62SrWFW<`5bX;~j<0nS0Z4OeBD-xTtwXewKA6Rvn?SV+#mD=UQnb_}zZra4) zs7waWmoJ6l=l~G|6BoU^54?+_=X3jNGM5f-bWEM z+bzc4eFCxA4MKv)0NY@~T3C&Ius8*!z6CI^td%|SZz(4LL~DBa@@EkhC?fc9@4?A5 zxr&mC=s$}e-_ax-rdG#`ri~9Mxh7A6Oklr%K zZmF0qnNzjBYO}e{2%@m#BDHJm!%54EvJy9wbPaX07WBEecn=g2wV@Y|ykH_CW4QA# zPIcEOVZ0ceOqHt$S@ys!k%cyN3!HtI1Dh1kuO~MF*AJbUo;NnNG^64|UTyn`I9KM$SFG`=6f%bCREb$o!H-0!V>P{8WvPMVI{c^blc zQ<)Ek0v1%!%3zR?@@tgl57)LxM4_`5$QAGEXE#lcGhfL`w4}PR098Zbd;du|gFcBe zvLT@0fP>`?SW2kII*a4LBW7&6-q;s;Iji zLd&fMRZxT8Ewn#o)T?XM$M&9!KEZCpabd3l)B$ll{II<5=B=|EejU{N4vlhkLJYwH zy7B%(rq?vW9>Ou#MscnLYahrw`hY8(OTsWPpx=RGWFsV?dz!oYI|*Tna0Ra=?X(DC zVc{fI?N+{CY*V0|l>mX?$OXuEuayj2IvvxD^(PL8R{U_GHBT7IE+uR@2jc$JyjmU_ z(lWgkqR89-TYJb@VBCE)|LrN>W5xPBZ12Wby2s>cE3}>-?g7vFdRNK6A~1mJc?li> zY|^c_h+u1u(v`Xwe;F7IpN(V2sy!~NZEj1-c>CNL5*}iH7tw;8r$XWz(XUtF_%Q5( z4)R#zag#EvFf`Rg5sdCrad1AYbk#J@*U(tO?Dp1Tc2^3VXVeIc@>{e2xw4VAtK0wV z5*D>I$?rV~WLy}oLWWb#umtM!@MnZ?fnN0%5B%XC$Sy;uuXQ4^2Ag*vQ1gWF&?7tS zq1B$Fa~1%uzkD({!`?WWNks;?{DiyZQel?+dsXPjB`RsHDZu5-XO9f{K3~;k;Hp=t zkZZyY=kB~W-W6IxCKz5V3w?rs(PFzNwXj5B-frGXqU6{CJufFvcTu+z7jwZ zaOk7q_-EGdEKS-rD{sD4*9X`UtUP7qIf!N$igK~@^S9mM|ev?!QVdU zZaigt6mx-9)cEb9M^1u?YHr~r+%e6;!_p#7D%EKfHmf96Sei}JmG+jF+nfZ9j22#m zu>_q%9e{3o_Vt~}`3M-fJnJzMUbTr!$RdTVDZX@r*hxxEzHfd^lv$JBXBuB|Ds&EU z`cFEXRr=yz+BxGf<_p(KJCN+dsYWM+{6M7oFd|Ha;#nQ|-`}Lmt)r0Ns*LaLYIIQH zo)M_Zf(!S@Ih>v+M{}CYh0KJ&HU5g%R4uilFODhr3H8O2Rt;LUEX=HyDO3k|7WAHn zfq=1!O4UizOgj2uSCwlog#<6i%glA6{s)@9t+%F5&$CeRDQf*#XBmOHi*o|?(^c4H zm1X(~lv-*HUTpWPh2LJN|8JyGkg~oK{nbwY=c&Rn5~p1p=li!?KkzI?79dot1FFwt zDljQk?HR0DSZ-XqVGbGm)++%Aw!-`26zce{lTtpC`R5RnKn)YZg#DJuSM$h&NfWQ7 zgjkY!kNE4cbH%ZYxe~8%3mze0iUkZEgPMwk1Wh#$eC2ugkAs$Ux8lGuuK1^OUU7Io zY*Y9pa-af^@HFS~AVre==_;t|(>mY5cur4t$&$%0NZ$W^Ejjn`6&bJ^8h`LbWD656%J z#l@JF>m4LTRX+NtDF~dHJ|olsJLiz$+(=`gHRY)JP8@L6-S@oxjq|nA^_V8^_ma!m z=b-?^`AS>MdDl=|)|lVyMi>D@r$bnf_E7YHCs9bM+?JzEIg% zuxFy)iX)E)= z$muhrWw!#D$6SntdVq$O{o(4^PJz`GUCF5at@WG$4;%}iBG~E28)z7(6Fizh2xNVZ z>!(<;%x!#5$8eqU<7K$?{L}51heql(MCP$Vo4x*sWEgn8tsq0Ja(_-jkzOY^o&cFK>l5a7nYfYkxxuR>^4K;WQ9{nz%JWb6$(qJcqNMa^c_Y0FhH!fX_fAg$;y+?Ak zj1gNjU2q~;0hdCT{&(7CbQj>pTFM3-lW$&*`F zj217_tnFHC>33f~WB!!zftl)@riGc~;37p$XZKxRM7ZypEFZPL$Dzy09i{00@M*Sv z&b{aEPM**0OvP>fr2BRIaYb!x2rd_#zewfMZeHe&ORMfQ{F>D9rY}W-fW7tF-8}z$ z0Ma4&^={Yp-ngKD*SU(R`Eznbh~k>{UPs=C*=zHOiuCF96@MEI9g|`lj++i9!!l<< zKlAxYMi*>nAywP9S&y5#lQIXW7By-~GRg(U2}jjYPCoqVi# zM?A^F0(-HH&8atMIOjRZ5WFmB0EzeM%+r?>zY4hQ z88|rhrBTr)$0D_)lpC&ZA_FX}5<1roo2@*G)d*fIa|LO}A0)K2iXr%~w74nzN$?Sq zK7Q|nMBjUv{Xz{sU|wm#?5uj>ucOZCH}0)Dp239JBQXzaRt0p54?k9T zec#5J6ubOigCO9!v^!RWccX+efIpj*04`yZo%IUpqi6Hzkr>iRov z&IUx1eW-*06X3e2%zYtOK(5kIS=a^t*9xxvpYO_}5>mmgVD|CLho^?f-m|2op>$(j zI0)1wECh&?)E6A^8SMzKc{CBjI=42S!uu#w#`-JdOD!R9sv7OGwO$`rKI-c#$jQuY zd7xVQub^sh(4z6&I`1;EGSTywS84@^b#%gT`&rO%Qb0gJOpcv&+xwNQCI(_+H{Dpg zo8Og)j0{WgRY=&i{3c?E1B7PBhLWp?id}euIUkDZ0q&h!A|w{4?G^< zL9RMv@}^?A9smk|%}g@OCCV*I*VNYjKHkl9DAa!#sA=Em(IguxzUy`n6*Ecm@Ep-d z^Q-f`^I$_q*itvEznY!$78;_^b)Ou;V~P&J$MP}kErucav$dvJ=ZBHAA-d0S^+lXI0Yciz6|swfJnCb_!2{AS$8Mq*wW;IVS?OazQ^TA`k=pWt(f zmTTTa&1IildAPp}4(Cj|;*X za~w}ii7H@5k?v zw>UUTtg;@f2~dNUvk_5Yb#xzT>3q}HtkKTidO;KAzlG3bvfu}fqJB}2Kh8G#3?nok zGWPd17*@T_!yjKnXr3IGJ02%_h!mrGAkee03zb-TKX0*>~w6P-KW!@41bowx#6>yOsd<%mj4H!7(J*^~II^GkKfiV+T_!vjFa{%IiAZ z&pqu>V#=D+S#Yhaw6t{F>CXPYvwE^-`Q|Wu7lYld&SBU+%SgpgpFa*P>?|ku2hD_S zsy)W~SCQDgho+{c7%WoZ>Ra?+(6`5citN?W*W)c6!c0Mz^zW6Z7;&1V?{C9sJjjx+ zuL##6f%r{7Z1oBE*U;x=@>lYl$LQJ?18Kt1@#W>!VpiP1C{08O<*D6L^gic8sZDgQ6r{M_wOcB3;zy?{FhqI$j+gotYXYAq5fTJLp+e@gt zJK5&7D6>O&=3(v|Bof#1M4Gec%Jb+$$wN2Ss6wu?!qjKBXD>JOlpXhdjc*wIZBY6*M;|!PoXxd-suNtzt2-w)>iK zS;(lDQBBXU4`m;@fv3sWHb0QalMt=UI_ewKS(eKPOU~;$5N}D&s%K|}icWz4wWS=j zS2}}HKB-!}o;e||T^@R_DBxtfv&fcqsECX6LKFc22rPFomolmGj8FB!~@`FPP*%asaV!~ zYb2DmV~3PEyEN+VXX;aGh`Gaek$?Q1O_1p5C?=iKOItXXH9>Gk+sB84J29rY5L)k@& zR`069%RBNJXArJ8mX~sR_NGAC-M9t{pDV`nvh6{L2H_Vos~c5It_)NXi#0O!zIl|6&RY z&JFLc|Hf%Wrx@r4+fms_4!CD5GFYX5ez!vLlh_HzRrjrZ+EK@-t?7K{m($Lul83U^ zTXqLr=i2$oDL4&a3>6uR2O0k9uT4^fz5be!@hw73hf7iMOhe{EgmGZf-c?;hngYtH z5V#uDW*PX5G;}vw=}g(m>%EdYvG{k))~jrmcqlAab@IHl`{aD`!AZMqH5q!l3XY$W zHWQBEWE!s23Rw4wd@TJZAOEV3g(7iQCJ|*bB`Vq?)^nLKw(r2S(kVE?)-1TT)vCoF z#@n^BTcNaa_Xz;g4z=f}E$od`wq7S>k&Y717JW#d1OCm8*B7_HJ^u#+0K~T-8{@54WFV zJ$doMifW2BN6LQ56DQqTA?tF@AZNT??Zjx2mN39&X zs`?k()9MxG?-ifI-$KC)0Xpt4bq01?x18~JZoD#G%TCxdp9y;E(nqlZe&W8CSBm?v zp@w}#AHJuFt=Y;dG&+Q6HHrBOgwQwxzB?MjTj9Ay6S=cV8OC;p##%r<4v66Me@C`{ zuDYZ0ZRJTSP}o`gmOM#F8$ky1^pG_03sVZIEh

+1wG^Z!QRuDq&b~& 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 literal 0 HcmV?d00001 diff --git a/render/texture/particle/shape/flare3.png.import b/render/texture/particle/shape/flare3.png.import new file mode 100644 index 0000000..8fcc176 --- /dev/null +++ b/render/texture/particle/shape/flare3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bslhqlcg8cw2l" +path="res://.godot/imported/flare3.png-137a481b5f54cd13335eafb2c9324230.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://render/texture/particle/shape/flare3.png" +dest_files=["res://.godot/imported/flare3.png-137a481b5f54cd13335eafb2c9324230.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=0 +compress/normal_map=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=false +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=0 diff --git a/scene/effect/particle/particle_hit_ground.tscn b/scene/effect/particle/_particle_hit_ground.tscn similarity index 100% rename from scene/effect/particle/particle_hit_ground.tscn rename to scene/effect/particle/_particle_hit_ground.tscn diff --git a/scene/effect/particle/particle_slash.tscn b/scene/effect/particle/_particle_slash.tscn similarity index 100% rename from scene/effect/particle/particle_slash.tscn rename to scene/effect/particle/_particle_slash.tscn diff --git a/scene/effect/particle/hero01_common_skill02.tscn b/scene/effect/particle/hero01_common_skill02.tscn index b6befc2..4bd6c46 100644 --- a/scene/effect/particle/hero01_common_skill02.tscn +++ b/scene/effect/particle/hero01_common_skill02.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://cswp0rj0gep6c"] -[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/particle_slash.tscn" id="1_qyqjx"] +[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_qyqjx"] [node name="Particle" instance=ExtResource("1_qyqjx")] transform = Transform3D(1.5, 0, 0, 0, 1, 0, 0, 0, 1.2, 0, 0, 0) diff --git a/scene/effect/particle/hero01_fist_air_skill01_1.tscn b/scene/effect/particle/hero01_fist_air_skill01_1.tscn index ee00c38..c32eaec 100644 --- a/scene/effect/particle/hero01_fist_air_skill01_1.tscn +++ b/scene/effect/particle/hero01_fist_air_skill01_1.tscn @@ -1,5 +1,5 @@ [gd_scene load_steps=2 format=3 uid="uid://ds7mp5l20ypb6"] -[ext_resource type="PackedScene" uid="uid://5d1a3s6x77wd" path="res://scene/effect/particle/particle_hit_ground.tscn" id="1_tw6qm"] +[ext_resource type="PackedScene" uid="uid://5d1a3s6x77wd" path="res://scene/effect/particle/_particle_hit_ground.tscn" id="1_tw6qm"] [node name="Particle" instance=ExtResource("1_tw6qm")] diff --git a/scene/effect/particle/hero01_long_attack01.tscn b/scene/effect/particle/hero01_long_attack01.tscn index 3384e42..c7aef60 100644 --- a/scene/effect/particle/hero01_long_attack01.tscn +++ b/scene/effect/particle/hero01_long_attack01.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://c101pt8hqvmbk"] -[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/particle_slash.tscn" id="1_glj7d"] +[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_glj7d"] [node name="Particle" instance=ExtResource("1_glj7d")] transform = Transform3D(1, 0, 0, 0, 0.707107, -0.353553, 0, 0.707107, 0.353553, 0, 0, 0) diff --git a/scene/effect/particle/hero01_long_attack02.tscn b/scene/effect/particle/hero01_long_attack02.tscn index 1c87ed8..f4a3015 100644 --- a/scene/effect/particle/hero01_long_attack02.tscn +++ b/scene/effect/particle/hero01_long_attack02.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://ns84g1jmmm56"] -[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/particle_slash.tscn" id="1_hciuf"] +[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_hciuf"] [node name="Particle" instance=ExtResource("1_hciuf")] transform = Transform3D(1, 0, 0, 0, -0.707107, 0.353553, 0, -0.707107, -0.353553, 0, 0, 0) diff --git a/scene/effect/particle/hero01_long_attack03_0.tscn b/scene/effect/particle/hero01_long_attack03_0.tscn index 0135d06..da0a434 100644 --- a/scene/effect/particle/hero01_long_attack03_0.tscn +++ b/scene/effect/particle/hero01_long_attack03_0.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://bn2ktr7iynt5"] -[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/particle_slash.tscn" id="1_p44mg"] +[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_p44mg"] [node name="Particle" instance=ExtResource("1_p44mg")] transform = Transform3D(1, 0, 0, 0, -0.707107, 0.353553, 0, -0.707107, -0.353553, 0, 0, 0) diff --git a/scene/effect/particle/hero01_long_attack03_1.tscn b/scene/effect/particle/hero01_long_attack03_1.tscn index 5bde22e..ccafda6 100644 --- a/scene/effect/particle/hero01_long_attack03_1.tscn +++ b/scene/effect/particle/hero01_long_attack03_1.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://dj04l4oge27f0"] -[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/particle_slash.tscn" id="1_078jk"] +[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_078jk"] [node name="Particle" instance=ExtResource("1_078jk")] transform = Transform3D(1, 0, 0, 0, 0.5, 0.433012, 0, -0.866026, 0.25, 0, 0, 0) diff --git a/scene/effect/particle/hero01_long_attack04.tscn b/scene/effect/particle/hero01_long_attack04.tscn index 12fc0ce..1e36a1b 100644 --- a/scene/effect/particle/hero01_long_attack04.tscn +++ b/scene/effect/particle/hero01_long_attack04.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://c5srkd0js0bwc"] -[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/particle_slash.tscn" id="1_5b0hk"] +[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_5b0hk"] [node name="Particle" instance=ExtResource("1_5b0hk")] transform = Transform3D(1.2, 0, 0, 0, 0.707107, -0.353553, 0, 0.707107, 0.353553, 0, 0, 0) diff --git a/scene/effect/particle/particle_hit_blunt.tscn b/scene/effect/particle/particle_hit_blunt.tscn new file mode 100644 index 0000000..ae73556 --- /dev/null +++ b/scene/effect/particle/particle_hit_blunt.tscn @@ -0,0 +1,202 @@ +[gd_scene load_steps=39 format=3 uid="uid://chau5lnq43oku"] + +[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_qxvm2"] +[ext_resource type="Shader" path="res://render/shader/particle.gdshader" id="2_hr443"] +[ext_resource type="Texture2D" uid="uid://ccl81e2qroccb" path="res://render/texture/particle/shape/flare2.png" id="3_07ceg"] +[ext_resource type="Texture2D" uid="uid://bslhqlcg8cw2l" path="res://render/texture/particle/shape/flare3.png" id="3_wm7km"] +[ext_resource type="Texture2D" uid="uid://b0bmvub81xvmf" path="res://render/texture/particle/shape/glow.png" id="5_8l08i"] +[ext_resource type="Texture2D" uid="uid://colhtjt8jon3v" path="res://render/texture/particle/shape/smoke.png" id="5_loelc"] +[ext_resource type="Shader" path="res://render/shader/trail.gdshader" id="5_rglhw"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_dkmkb"] +render_priority = 0 +shader = ExtResource("2_hr443") +shader_parameter/is_billboard = null +shader_parameter/tex_main = ExtResource("3_07ceg") + +[sub_resource type="Curve" id="Curve_n5hkj"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_hdmmt"] +curve = SubResource("Curve_n5hkj") + +[sub_resource type="Gradient" id="Gradient_wb6fx"] +offsets = PackedFloat32Array(0, 0.291429, 1) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 0.649479, 1, 1, 1, 0.223529, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_8ltar"] +gradient = SubResource("Gradient_wb6fx") + +[sub_resource type="Curve" id="Curve_2o6rl"] +max_value = 1.5 +_data = [Vector2(0, 0.758242), 0.0, 2.00769, 0, 0, Vector2(0.0394089, 1.08791), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_5ce5r"] +curve = SubResource("Curve_2o6rl") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_acw2w"] +particle_flag_disable_z = true +angle_min = 1.07288e-05 +angle_max = 720.0 +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_5ce5r") +color_ramp = SubResource("GradientTexture1D_8ltar") +alpha_curve = SubResource("CurveTexture_hdmmt") + +[sub_resource type="QuadMesh" id="QuadMesh_0j7av"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_i0f24"] +render_priority = 0 +shader = ExtResource("2_hr443") +shader_parameter/is_billboard = null +shader_parameter/tex_main = ExtResource("3_wm7km") + +[sub_resource type="Curve" id="Curve_3uvr5"] +_data = [Vector2(0, 0.461538), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_1og0n"] +curve = SubResource("Curve_3uvr5") + +[sub_resource type="Gradient" id="Gradient_tj5v6"] +offsets = PackedFloat32Array(0.0171429, 0.182857) +colors = PackedColorArray(0.952941, 1, 1, 1, 0.976471, 1, 0.396078, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_g0jyv"] +gradient = SubResource("Gradient_tj5v6") + +[sub_resource type="Curve" id="Curve_8klc5"] +max_value = 2.0 +_data = [Vector2(0, 0.615385), 0.0, 1.4, 0, 0, Vector2(1, 2), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_k3cwo"] +curve = SubResource("Curve_8klc5") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_3w28u"] +particle_flag_disable_z = true +angle_min = 1.07288e-05 +angle_max = 720.0 +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_k3cwo") +color_ramp = SubResource("GradientTexture1D_g0jyv") +alpha_curve = SubResource("CurveTexture_1og0n") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_vkw8i"] +render_priority = 0 +shader = ExtResource("2_hr443") +shader_parameter/is_billboard = false +shader_parameter/tex_main = ExtResource("5_loelc") + +[sub_resource type="Curve" id="Curve_didyq"] +_data = [Vector2(0, 0.32967), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_3pi6l"] +curve = SubResource("Curve_didyq") + +[sub_resource type="Curve" id="Curve_6dnuy"] +max_value = 4.0 +_data = [Vector2(0, 1.75824), 0.0, 0.0, 0, 0, Vector2(1, 2.76923), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_skg43"] +curve = SubResource("Curve_6dnuy") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_gjwvd"] +particle_flag_disable_z = true +angle_min = 1.07288e-05 +angle_max = 720.0 +velocity_pivot = Vector3(0, 0, 1) +spread = 180.0 +initial_velocity_max = 0.2 +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_skg43") +color = Color(0.521569, 0.509804, 0.501961, 1) +alpha_curve = SubResource("CurveTexture_3pi6l") + +[sub_resource type="QuadMesh" id="QuadMesh_0kefl"] + +[sub_resource type="Curve" id="Curve_axcwu"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_wpjie"] +curve = SubResource("Curve_axcwu") + +[sub_resource type="Gradient" id="Gradient_q1rex"] +offsets = PackedFloat32Array(0, 0.285714, 1) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 0.52549, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_x4ksg"] +gradient = SubResource("Gradient_q1rex") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_5lomq"] +spread = 180.0 +initial_velocity_min = 4.0 +initial_velocity_max = 5.0 +color_ramp = SubResource("GradientTexture1D_x4ksg") +alpha_curve = SubResource("CurveTexture_wpjie") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_hrjt4"] +render_priority = 0 +shader = ExtResource("5_rglhw") +shader_parameter/tex_main = ExtResource("5_8l08i") + +[sub_resource type="RibbonTrailMesh" id="RibbonTrailMesh_urftu"] +material = SubResource("ShaderMaterial_hrjt4") +size = 0.1 + +[node name="Particle" type="Node3D"] +script = ExtResource("1_qxvm2") + +[node name="Slash" type="GPUParticles3D" parent="."] +layers = 512 +material_override = SubResource("ShaderMaterial_dkmkb") +cast_shadow = 0 +emitting = false +amount = 1 +lifetime = 0.15 +one_shot = true +fixed_fps = 60 +local_coords = true +process_material = SubResource("ParticleProcessMaterial_acw2w") +draw_pass_1 = SubResource("QuadMesh_0j7av") + +[node name="Slash2" type="GPUParticles3D" parent="."] +layers = 512 +material_override = SubResource("ShaderMaterial_i0f24") +cast_shadow = 0 +emitting = false +amount = 1 +lifetime = 0.15 +one_shot = true +fixed_fps = 60 +local_coords = true +process_material = SubResource("ParticleProcessMaterial_3w28u") +draw_pass_1 = SubResource("QuadMesh_0j7av") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 512 +material_override = SubResource("ShaderMaterial_vkw8i") +cast_shadow = 0 +emitting = false +amount = 2 +lifetime = 2.0 +one_shot = true +explosiveness = 1.0 +local_coords = true +process_material = SubResource("ParticleProcessMaterial_gjwvd") +draw_pass_1 = SubResource("QuadMesh_0kefl") + +[node name="Flare" type="GPUParticles3D" parent="."] +emitting = false +lifetime = 0.3 +one_shot = true +explosiveness = 1.0 +trail_enabled = true +trail_lifetime = 0.1 +process_material = SubResource("ParticleProcessMaterial_5lomq") +draw_pass_1 = SubResource("RibbonTrailMesh_urftu") diff --git a/scene/effect/particle/particle_hit.tscn b/scene/effect/particle/particle_hit_sharp.tscn similarity index 65% rename from scene/effect/particle/particle_hit.tscn rename to scene/effect/particle/particle_hit_sharp.tscn index 4349d9a..f127d29 100644 --- a/scene/effect/particle/particle_hit.tscn +++ b/scene/effect/particle/particle_hit_sharp.tscn @@ -1,9 +1,11 @@ -[gd_scene load_steps=19 format=3 uid="uid://io1yfgjm480t"] +[gd_scene load_steps=28 format=3 uid="uid://io1yfgjm480t"] [ext_resource type="Script" path="res://script/effect/particle.gd" id="1_qxvm2"] [ext_resource type="Shader" path="res://render/shader/particle.gdshader" id="2_hr443"] -[ext_resource type="Texture2D" uid="uid://bb0yfk0u4lqqn" path="res://render/texture/particle/shape/flare.png" id="3_c5vjp"] +[ext_resource type="Texture2D" uid="uid://bb0yfk0u4lqqn" path="res://render/texture/particle/shape/flare1.png" id="3_c5vjp"] +[ext_resource type="Texture2D" uid="uid://b0bmvub81xvmf" path="res://render/texture/particle/shape/glow.png" id="5_8l08i"] [ext_resource type="Texture2D" uid="uid://colhtjt8jon3v" path="res://render/texture/particle/shape/smoke.png" id="5_loelc"] +[ext_resource type="Shader" path="res://render/shader/trail.gdshader" id="5_rglhw"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_dkmkb"] render_priority = 0 @@ -27,8 +29,9 @@ point_count = 4 curve = SubResource("Curve_2o6rl") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_acw2w"] -angle_min = -72.3 -angle_max = -72.3 +particle_flag_disable_z = true +angle_min = 1.07288e-05 +angle_max = 720.0 gravity = Vector3(0, 0, 0) scale_curve = SubResource("CurveTexture_5ce5r") color = Color(0.635294, 0.827451, 1, 1) @@ -58,6 +61,7 @@ point_count = 2 curve = SubResource("Curve_6dnuy") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_gjwvd"] +particle_flag_disable_z = true angle_min = 1.07288e-05 angle_max = 720.0 velocity_pivot = Vector3(0, 0, 1) @@ -70,6 +74,36 @@ alpha_curve = SubResource("CurveTexture_3pi6l") [sub_resource type="QuadMesh" id="QuadMesh_0kefl"] +[sub_resource type="Curve" id="Curve_axcwu"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_wpjie"] +curve = SubResource("Curve_axcwu") + +[sub_resource type="Gradient" id="Gradient_q1rex"] +offsets = PackedFloat32Array(0, 0.285714, 1) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 0.52549, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_x4ksg"] +gradient = SubResource("Gradient_q1rex") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_5lomq"] +spread = 180.0 +initial_velocity_min = 4.0 +initial_velocity_max = 5.0 +color_ramp = SubResource("GradientTexture1D_x4ksg") +alpha_curve = SubResource("CurveTexture_wpjie") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_hrjt4"] +render_priority = 0 +shader = ExtResource("5_rglhw") +shader_parameter/tex_main = ExtResource("5_8l08i") + +[sub_resource type="RibbonTrailMesh" id="RibbonTrailMesh_urftu"] +material = SubResource("ShaderMaterial_hrjt4") +size = 0.1 + [node name="Particle" type="Node3D"] script = ExtResource("1_qxvm2") @@ -95,5 +129,16 @@ amount = 2 lifetime = 2.0 one_shot = true explosiveness = 1.0 +local_coords = true process_material = SubResource("ParticleProcessMaterial_gjwvd") draw_pass_1 = SubResource("QuadMesh_0kefl") + +[node name="Flare" type="GPUParticles3D" parent="."] +emitting = false +lifetime = 0.3 +one_shot = true +explosiveness = 1.0 +trail_enabled = true +trail_lifetime = 0.1 +process_material = SubResource("ParticleProcessMaterial_5lomq") +draw_pass_1 = SubResource("RibbonTrailMesh_urftu") diff --git a/script/_global/enum.gd b/script/_global/enum.gd index b96dd5e..4ef4f07 100644 --- a/script/_global/enum.gd +++ b/script/_global/enum.gd @@ -2,6 +2,7 @@ extends Node3D enum EActionType {Pressed, Released} +enum EDamageType {Sharp, Blunt} enum ECharacterType {Player, Monster, Bullet} enum ETeam {Player, Monster} enum EStance { @@ -12,5 +13,4 @@ enum EStance { } enum EBreakLevel {None, Cancel, Jump, Break, Walk} #不可打断 取消技打断 跳跃打断 连招打断 行走打断 enum ECoreType {Free ,Lock, Passive} - enum EGlobalEffect {CameraSize,CameraShake,ColorShift,Blur} diff --git a/script/character/battle.gd b/script/character/battle.gd index 87e38f1..1bd2b12 100644 --- a/script/character/battle.gd +++ b/script/character/battle.gd @@ -160,7 +160,9 @@ func settle(hit_info:HitInfo) -> bool: character_to.add_buff("hit_up",attack.hit_up_duration) #受击特效 - character_to.cast_particle(ResourceManager.particle_hit,false) + match attack.damage_type: + Enum.EDamageType.Sharp:character_to.cast_particle(ResourceManager.particle_hit_sharp,false) + Enum.EDamageType.Blunt:character_to.cast_particle(ResourceManager.particle_hit_blunt,false) #抖动 character_to.add_buff("shake_x",0.2,true) diff --git a/script/character/effect.gd b/script/character/effect.gd index dbcc480..5efea50 100644 --- a/script/character/effect.gd +++ b/script/character/effect.gd @@ -14,6 +14,8 @@ class_name Effect var rediness : Decal var is_pause : bool var is_right : bool +var particle_list = [] +var temp_release_particle_list = [] func init(type:Enum.ECharacterType ,body_scale:Vector3): match type: @@ -34,16 +36,18 @@ func _process(delta): #flip if is_right != status.is_right: is_right = status.is_right - for child in get_children(): - if child is Particle: - child.scale.x = 1 if is_right else -1 + for particle:Particle in particle_list: + particle.scale.x = 1 if is_right else -1 #pause if is_pause != status.is_pause: is_pause = status.is_pause - for child in get_children(): - if child is Particle: - var particle = child as Particle - particle.set_pause(is_pause) + for particle:Particle in particle_list: + particle.set_pause(is_pause) + if !is_pause: + for particle:Particle in temp_release_particle_list: + _release_effect(particle) + particle_list.erase(particle) + temp_release_particle_list.clear() func cast_image(res:Resource): var new_afterimage = afterimage.instantiate() as Afterimage @@ -81,18 +85,20 @@ func _cast_particle(resource:Resource ,is_attach:bool): var angle = dir.angle_to(Vector2.RIGHT) new_particle.rotation.y = angle if is_right else -angle new_particle.scale.x = abs(new_particle.scale.x) * (1 if is_right else -1) - if is_attach: - new_particle.position = status.basic_offset - add_child(new_particle) - else: - new_particle.position = character.view_pos() - SignalManager.effect_create.emit(new_particle) + new_particle.position = status.basic_offset + add_child(new_particle) + particle_list.append(new_particle) + if !is_attach: + temp_release_particle_list.append(new_particle) func release_effect(): - for child in get_children(): - if child is Particle: - var particle = child as Particle - particle.position = character.view_pos() - remove_child(particle) - SignalManager.effect_create.emit(particle) + for particle:Particle in particle_list: + _release_effect(particle) + particle_list.clear() +func _release_effect(particle:Particle): + particle.set_pause(false) + particle.position = character.view_pos() + remove_child(particle) + SignalManager.effect_create.emit(particle) + diff --git a/script/config/attack_cfg.gd b/script/config/attack_cfg.gd index 2b82211..d330b08 100644 --- a/script/config/attack_cfg.gd +++ b/script/config/attack_cfg.gd @@ -2,18 +2,28 @@ extends Resource class_name AttackCfg +@export_group("数值") @export var damage_rate : float = 1 #伤害系数 @export var break_level : int = 1 #硬直等级 @export var stun_attack : float = 10 #眩晕值伤害 -@export var hit_back_speed : float #击退速度 -@export var hit_back_duration : float #击退持续时间 -@export var hit_up_speed : float #击飞速度 -@export var hit_up_duration : float #击飞持续时间 -@export var pause_time : float #卡帧时间 + +@export_group("类型标记") +@export var damage_type : Enum.EDamageType = Enum.EDamageType.Sharp # 伤害类型 @export var is_floating : bool #是否浮空技 @export var is_hit_down : bool #是否击落技 @export var is_rebound : bool #是否地面反弹技能 + +@export_group("强制位移") +@export var hit_back_speed : float #击退速度 +@export var hit_up_speed : float #击飞速度 +@export var hit_back_duration : float = 0.05 #击退持续时间 +@export var hit_up_duration : float = 0.05 #击飞持续时间 + +@export_group("卡帧") +@export var pause_time : float #卡帧时间 @export var is_force_pause : bool #是否强制卡帧 + +@export_group("判定框") @export var height : float = 2 #判定框高度 @export var radius : float #圆形判定框 半径 @export var size : Vector2 = Vector2(2,1) #矩形判定框 大小 diff --git a/script/manager/resource_manager.gd b/script/manager/resource_manager.gd index f5b6e96..c7ab8b1 100644 --- a/script/manager/resource_manager.gd +++ b/script/manager/resource_manager.gd @@ -10,7 +10,8 @@ var material_character = load("res://render/material/character.tres") var material_character_sub = load("res://render/material/character_sub.tres") #==effect== -var particle_hit = load("res://scene/effect/particle/particle_hit.tscn") +var particle_hit_sharp = load("res://scene/effect/particle/particle_hit_sharp.tscn") +var particle_hit_blunt = load("res://scene/effect/particle/particle_hit_blunt.tscn") #==config== #character