diff --git a/config/skill_player_weapon/hero01_fist_air_skill01.tres b/config/skill_player_weapon/hero01_fist_air_skill_charging.tres similarity index 82% rename from config/skill_player_weapon/hero01_fist_air_skill01.tres rename to config/skill_player_weapon/hero01_fist_air_skill_charging.tres index 0692208..71a85fd 100644 --- a/config/skill_player_weapon/hero01_fist_air_skill01.tres +++ b/config/skill_player_weapon/hero01_fist_air_skill_charging.tres @@ -2,9 +2,9 @@ [ext_resource type="Resource" uid="uid://by6jd5xqjml2m" path="res://config/attack/blunt_starfall_1.tres" id="1_dfu42"] [ext_resource type="Resource" uid="uid://dq3pnbyfx4irr" path="res://config/attack_box/circle_foot.tres" id="2_doldq"] -[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="2_mje6b"] +[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_cfg.gd" id="2_mje6b"] [ext_resource type="Resource" uid="uid://d26ok8as50xe5" path="res://config/attack/blunt_starfall_2.tres" id="3_m2yio"] -[ext_resource type="Animation" uid="uid://dxgqn5fa7aokj" path="res://resource/skill_animation/hero01_fist_air_skill01.tres" id="3_q461t"] +[ext_resource type="Animation" uid="uid://dxgqn5fa7aokj" path="res://resource/skill_animation/hero01_fist_air_skill_charging.tres" id="3_q461t"] [ext_resource type="Resource" uid="uid://decgfcx2xsj8i" path="res://config/attack_box/circle_mid.tres" id="4_lpsn0"] [ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="5_70pp4"] [ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="7_gkp4g"] @@ -15,26 +15,23 @@ weapon = ExtResource("5_70pp4") action = "attack_heavy" name = "" skill_animation = ExtResource("3_q461t") -range = 0.0 -free_lock = false -ignore_push = true +stance_from = 10 +stance_to = 0 +break_level = 3 +is_charging = false attack1 = ExtResource("1_dfu42") attack1_box = ExtResource("2_doldq") -attack1_with_pause_frame = false attack1_with_stop = false attack2 = ExtResource("3_m2yio") attack2_box = ExtResource("4_lpsn0") -attack2_with_pause_frame = false attack2_with_stop = true -stance_from = 10 -stance_to = 0 -break_level = 3 -is_charging = false mp_cost = 0 mp_sub_cost = false -warn_type = 0 -with_stop = false +free_lock = false +ignore_push = true is_lock_x = false -refresh_animation = false +is_lock_x_move = false +range = 0.0 +warn_type = 0 sprite_frames = ExtResource("7_gkp4g") -animation_name = "fist_skill01" +animation_name = "fist_air_skill_charging" diff --git a/config/skill_player_weapon/hero01_fist_attack01.tres b/config/skill_player_weapon/hero01_fist_attack01.tres index 85bdf44..d6564af 100644 --- a/config/skill_player_weapon/hero01_fist_attack01.tres +++ b/config/skill_player_weapon/hero01_fist_attack01.tres @@ -2,7 +2,7 @@ [ext_resource type="Resource" uid="uid://dib6g7t6p5ac2" path="res://config/attack/blunt_normal_hit.tres" id="1_k0cmy"] [ext_resource type="Resource" uid="uid://dja8jwx16njmf" path="res://config/attack_box/box_small.tres" id="2_erxj5"] -[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="2_yc8jq"] +[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_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"] [ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="5_0ynk7"] @@ -13,24 +13,21 @@ weapon = ExtResource("5_0ynk7") action = "attack_light" name = "" skill_animation = ExtResource("3_b2pdb") -range = 0.0 -free_lock = false -ignore_push = false -attack1 = ExtResource("1_k0cmy") -attack1_box = ExtResource("2_erxj5") -attack1_with_pause_frame = true -attack1_with_stop = true -attack2_with_pause_frame = false -attack2_with_stop = false stance_from = 0 stance_to = 1 break_level = 3 is_charging = false +attack1 = ExtResource("1_k0cmy") +attack1_box = ExtResource("2_erxj5") +attack1_with_stop = true +attack2_with_stop = false mp_cost = 0 mp_sub_cost = false -warn_type = 0 -with_stop = false +free_lock = false +ignore_push = false is_lock_x = true -refresh_animation = false +is_lock_x_move = false +range = 0.0 +warn_type = 0 sprite_frames = ExtResource("4_ymqrn") animation_name = "fist_attack01" diff --git a/config/skill_player_weapon/hero01_fist_air_skill02.tres b/config/skill_player_weapon/hero01_fist_skill_special01.tres similarity index 76% rename from config/skill_player_weapon/hero01_fist_air_skill02.tres rename to config/skill_player_weapon/hero01_fist_skill_special01.tres index 67a14df..6dcd0e1 100644 --- a/config/skill_player_weapon/hero01_fist_air_skill02.tres +++ b/config/skill_player_weapon/hero01_fist_skill_special01.tres @@ -2,8 +2,8 @@ [ext_resource type="Resource" uid="uid://dfjtcdh13vohe" path="res://config/attack/blunt_normal_hit_up_back.tres" id="1_f41cj"] [ext_resource type="Resource" uid="uid://dq3pnbyfx4irr" path="res://config/attack_box/circle_foot.tres" id="2_bmi1a"] -[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="5_j7ual"] -[ext_resource type="Animation" uid="uid://b73xq7qwltbo2" path="res://resource/skill_animation/hero01_fist_air_skill02.tres" id="6_le53b"] +[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_cfg.gd" id="5_j7ual"] +[ext_resource type="Animation" uid="uid://cpda46s7n6mar" path="res://resource/skill_animation/hero01_fist_air_skill02.tres" id="6_le53b"] [ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="7_cmht3"] [ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="7_kay3f"] @@ -13,24 +13,21 @@ weapon = ExtResource("7_cmht3") action = "attack_light" name = "" skill_animation = ExtResource("6_le53b") -range = 0.0 -free_lock = false -ignore_push = true -attack1 = ExtResource("1_f41cj") -attack1_box = ExtResource("2_bmi1a") -attack1_with_pause_frame = false -attack1_with_stop = true -attack2_with_pause_frame = false -attack2_with_stop = false -stance_from = 14 +stance_from = 53 stance_to = 10 break_level = 3 is_charging = false +attack1 = ExtResource("1_f41cj") +attack1_box = ExtResource("2_bmi1a") +attack1_with_stop = false +attack2_with_stop = false mp_cost = 0 mp_sub_cost = false -warn_type = 0 -with_stop = false +free_lock = false +ignore_push = true is_lock_x = true -refresh_animation = false +is_lock_x_move = false +range = 0.0 +warn_type = 0 sprite_frames = ExtResource("7_kay3f") -animation_name = "fist_air_skill02" +animation_name = "fist_skill_special01" diff --git a/resource/animation/character/hero01_fist_skill01.aseprite b/resource/animation/character/hero01_fist_skill01.aseprite index 6c7968c..a341a85 100644 Binary files a/resource/animation/character/hero01_fist_skill01.aseprite and b/resource/animation/character/hero01_fist_skill01.aseprite differ diff --git a/resource/skill_animation/hero01_fist_air_skill02.tres b/resource/skill_animation/hero01_fist_air_skill02.tres index f6496ee..622cf76 100644 --- a/resource/skill_animation/hero01_fist_air_skill02.tres +++ b/resource/skill_animation/hero01_fist_air_skill02.tres @@ -1,4 +1,4 @@ -[gd_resource type="Animation" load_steps=2 format=3 uid="uid://b73xq7qwltbo2"] +[gd_resource type="Animation" load_steps=2 format=3 uid="uid://cpda46s7n6mar"] [ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="1_1ik3n"] @@ -28,7 +28,7 @@ tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, -"values": ["fist_air_skill02"] +"values": [&"fist_skill_special01"] } tracks/2/type = "value" tracks/2/imported = false @@ -45,43 +45,45 @@ tracks/2/keys = { tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("Status:speed_up_rate") +tracks/3/path = NodePath("Status:skill_move_speed") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { -"times": PackedFloat32Array(), -"transitions": PackedFloat32Array(), +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), "update": 1, -"values": [] +"values": [-4.0, 0.0] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true -tracks/4/path = NodePath("Status:skill_move_speed") +tracks/4/path = NodePath("Status:skill_float_speed") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 1, -"values": [-3.0, 0.0] +"values": [3.0, 0.0] } -tracks/5/type = "value" +tracks/5/type = "method" tracks/5/imported = false tracks/5/enabled = true -tracks/5/path = NodePath("Status:skill_float_speed") +tracks/5/path = NodePath("Battle") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { -"times": PackedFloat32Array(0, 0.1), -"transitions": PackedFloat32Array(1, 1), -"update": 1, -"values": [3.0, 0.0] +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"attack1" +}] } tracks/6/type = "method" tracks/6/imported = false tracks/6/enabled = true -tracks/6/path = NodePath("Battle") +tracks/6/path = NodePath("Effect") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { @@ -89,30 +91,16 @@ tracks/6/keys = { "transitions": PackedFloat32Array(1), "values": [{ "args": [], -"method": &"attack1" +"method": &"cast_attack_particle1" }] } -tracks/7/type = "method" +tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true -tracks/7/path = NodePath("Effect") +tracks/7/path = NodePath("View:frame") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [], -"method": &"cast_attack_particle1" -}] -} -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("View:frame") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "update": 1, diff --git a/resource/skill_animation/hero01_fist_air_skill01.tres b/resource/skill_animation/hero01_fist_air_skill_charging.tres similarity index 67% rename from resource/skill_animation/hero01_fist_air_skill01.tres rename to resource/skill_animation/hero01_fist_air_skill_charging.tres index 3bef274..6fc863e 100644 --- a/resource/skill_animation/hero01_fist_air_skill01.tres +++ b/resource/skill_animation/hero01_fist_air_skill_charging.tres @@ -3,8 +3,8 @@ [ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="1_0ac7k"] [resource] -resource_name = "hero01_fist_air_skill01" -length = 0.9 +resource_name = "hero01_fist_air_skill_charging" +length = 0.8 step = 0.1 tracks/0/type = "value" tracks/0/imported = false @@ -28,7 +28,7 @@ tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, -"values": ["fist_air_skill01"] +"values": [&"fist_air_skill_charging"] } tracks/2/type = "value" tracks/2/imported = false @@ -37,43 +37,31 @@ tracks/2/path = NodePath("Status:break_level") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0, 0.1, 0.2, 0.5, 0.6), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"times": PackedFloat32Array(0, 0.1, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [0, 0, 3, 3, 4] +"values": [0, 3, 4] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("Status:speed_up_rate") +tracks/3/path = NodePath("Status:skill_move_speed") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { -"times": PackedFloat32Array(0.1, 0.7), -"transitions": PackedFloat32Array(1, 1), +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), "update": 1, -"values": [-0.5, -1.0] +"values": [-0.2, 7.0, 0.0] } -tracks/4/type = "value" +tracks/4/type = "method" tracks/4/imported = false tracks/4/enabled = true -tracks/4/path = NodePath("Status:skill_move_speed") +tracks/4/path = NodePath("Battle") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { -"times": PackedFloat32Array(0, 0.1, 0.4), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [0.0, 7.0, 0.0] -} -tracks/5/type = "method" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("Battle") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { -"times": PackedFloat32Array(0.3, 0.4), +"times": PackedFloat32Array(0.2, 0.3), "transitions": PackedFloat32Array(1, 1), "values": [{ "args": [], @@ -83,33 +71,47 @@ tracks/5/keys = { "method": &"attack2" }] } -tracks/6/type = "value" +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Status:skill_float_speed") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [-0.2, -7.0, 0.0] +} +tracks/6/type = "method" tracks/6/imported = false tracks/6/enabled = true -tracks/6/path = NodePath("Status:skill_float_speed") +tracks/6/path = NodePath("Effect") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { -"times": PackedFloat32Array(0, 0.1, 0.4), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [0.1, -7.0, 0.0] +"times": PackedFloat32Array(0.2, 0.3), +"transitions": PackedFloat32Array(1, 1), +"values": [{ +"args": [], +"method": &"cast_attack_particle1" +}, { +"args": [], +"method": &"cast_attack_particle2_release" +}] } tracks/7/type = "method" tracks/7/imported = false tracks/7/enabled = true -tracks/7/path = NodePath("Effect") +tracks/7/path = NodePath("Battle") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { -"times": PackedFloat32Array(0.1, 0.4), -"transitions": PackedFloat32Array(1, 1), +"times": PackedFloat32Array(0.2), +"transitions": PackedFloat32Array(1), "values": [{ "args": [], -"method": &"cast_attack_particle1" -}, { -"args": [], -"method": &"cast_attack_particle2_release" +"method": &"check_ground" }] } tracks/8/type = "method" @@ -119,21 +121,7 @@ tracks/8/path = NodePath("Battle") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { -"times": PackedFloat32Array(0.3), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [], -"method": &"check_ground" -}] -} -tracks/9/type = "method" -tracks/9/imported = false -tracks/9/enabled = true -tracks/9/path = NodePath("Battle") -tracks/9/interp = 1 -tracks/9/loop_wrap = true -tracks/9/keys = { -"times": PackedFloat32Array(0, 0.4), +"times": PackedFloat32Array(0, 0.3), "transitions": PackedFloat32Array(1, 1), "values": [{ "args": [], @@ -143,15 +131,15 @@ tracks/9/keys = { "method": &"stop" }] } -tracks/10/type = "value" -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/path = NodePath("View:frame") -tracks/10/interp = 1 -tracks/10/loop_wrap = true -tracks/10/keys = { -"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1), +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("View:frame") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), "update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8] +"values": [0, 1, 2, 3, 4, 5, 6, 7] } diff --git a/resource/skill_animation/hero01_fist_skill_special01.tres b/resource/skill_animation/hero01_fist_skill_special01.tres new file mode 100644 index 0000000..da6bafb --- /dev/null +++ b/resource/skill_animation/hero01_fist_skill_special01.tres @@ -0,0 +1,120 @@ +[gd_resource type="Animation" load_steps=2 format=3 uid="uid://b73xq7qwltbo2"] + +[ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="1_1ik3n"] + +[resource] +resource_name = "hero01_fist_skill_special01" +length = 1.1 +step = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("View:sprite_frames") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("1_1ik3n")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("View:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": ["fist_skill_special01"] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Status:break_level") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.2, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [0, 3, 4] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Status:speed_up_rate") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(), +"transitions": PackedFloat32Array(), +"update": 1, +"values": [] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Status:skill_move_speed") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [-3.0, 0.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Status:skill_float_speed") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [3.0, 0.0] +} +tracks/6/type = "method" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Battle") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"attack1" +}] +} +tracks/7/type = "method" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Effect") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"cast_attack_particle1" +}] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("View:frame") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +} diff --git a/resource/skill_animation_library/animation_library.tres b/resource/skill_animation_library/animation_library.tres index 3f50c70..6caa72b 100644 --- a/resource/skill_animation_library/animation_library.tres +++ b/resource/skill_animation_library/animation_library.tres @@ -22,7 +22,7 @@ [ext_resource type="Animation" uid="uid://6u3dhxly760l" path="res://resource/skill_animation/hero01_fist_attack04.tres" id="4_087em"] [ext_resource type="Animation" uid="uid://cvxifa2uac5oc" path="res://resource/skill_animation/hero01_combo0102.tres" id="4_dc8mt"] [ext_resource type="Animation" uid="uid://dkkqys8el1u6g" path="res://resource/skill_animation/hero01_common_skill02.tres" id="4_vtwy2"] -[ext_resource type="Animation" uid="uid://dxgqn5fa7aokj" path="res://resource/skill_animation/hero01_fist_air_skill01.tres" id="5_df32u"] +[ext_resource type="Animation" uid="uid://dxgqn5fa7aokj" path="res://resource/skill_animation/hero01_fist_air_skill_charging.tres" id="5_df32u"] [ext_resource type="Animation" uid="uid://bjnkrte7660pt" path="res://resource/skill_animation/hero01_long_skill01.tres" id="5_kt0qw"] [ext_resource type="Animation" uid="uid://cqc30d5uqi2my" path="res://resource/skill_animation/hero01_combo0103.tres" id="5_o144c"] [ext_resource type="Animation" uid="uid://bl2o7f7akp6if" path="res://resource/skill_animation/hero01_basic_flash_back.tres" id="5_u1e1p"] @@ -35,7 +35,7 @@ [ext_resource type="Animation" uid="uid://xfuwfwtw4cna" path="res://resource/skill_animation/hero01_short_attack02.tres" id="11_h2vlt"] [ext_resource type="Animation" uid="uid://bdyjvq185tdk6" path="res://resource/skill_animation/hero01_short_attack03.tres" id="11_kejyu"] [ext_resource type="Animation" uid="uid://bkre61dn64j2f" path="res://resource/skill_animation/hero01_short_attack01.tres" id="11_n0dhn"] -[ext_resource type="Animation" uid="uid://b73xq7qwltbo2" path="res://resource/skill_animation/hero01_fist_air_skill02.tres" id="16_ssfs1"] +[ext_resource type="Animation" uid="uid://cpda46s7n6mar" path="res://resource/skill_animation/hero01_fist_air_skill02.tres" id="16_ssfs1"] [ext_resource type="Animation" uid="uid://dd1d51x51so2p" path="res://resource/skill_animation/hero01_fist_air_skill03.tres" id="16_tsiw4"] [ext_resource type="Animation" uid="uid://c2esjf8ouf22c" path="res://resource/skill_animation/hero01_fist_air_skill04.tres" id="18_2ajwh"] [ext_resource type="Animation" uid="uid://uxuayi0qf3b7" path="res://resource/skill_animation/hero01_long_air_skill01.tres" id="20_0ey8y"] @@ -75,10 +75,9 @@ _data = { &"hero01_fist_air_attack01": ExtResource("8_svst8"), &"hero01_fist_air_attack02": ExtResource("9_0fycy"), &"hero01_fist_air_attack03": ExtResource("10_te03d"), -&"hero01_fist_air_skill01": ExtResource("5_df32u"), -&"hero01_fist_air_skill02": ExtResource("16_ssfs1"), &"hero01_fist_air_skill03": ExtResource("16_tsiw4"), &"hero01_fist_air_skill04": ExtResource("18_2ajwh"), +&"hero01_fist_air_skill_charging": ExtResource("5_df32u"), &"hero01_fist_attack01": ExtResource("1_4bwwm"), &"hero01_fist_attack02": ExtResource("2_vx7p1"), &"hero01_fist_attack03": ExtResource("3_lo6yb"), @@ -91,6 +90,7 @@ _data = { &"hero01_fist_skill_charging": ExtResource("1_nd54y"), &"hero01_fist_skill_charging01": ExtResource("23_12bpf"), &"hero01_fist_skill_charging02": ExtResource("24_j0oqq"), +&"hero01_fist_skill_special01": ExtResource("16_ssfs1"), &"hero01_long_air_attack01": ExtResource("1_b46g3"), &"hero01_long_air_attack02": ExtResource("2_8wtap"), &"hero01_long_air_attack03": ExtResource("2_nqaew"), diff --git a/scene/ai/bullet_simple.tscn b/scene/ai/bullet_simple.tscn index 24469e9..3b583a9 100644 --- a/scene/ai/bullet_simple.tscn +++ b/scene/ai/bullet_simple.tscn @@ -11,7 +11,7 @@ [node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")] script = ExtResource("1_7oi2o") -blackboard = NodePath("@Node@25084") +blackboard = NodePath("@Node@25816") [node name="SequenceComposite" type="Node" parent="."] script = ExtResource("3_i33jf") diff --git a/scene/ai/monster01.tscn b/scene/ai/monster01.tscn index 0e82f45..1fe694e 100644 --- a/scene/ai/monster01.tscn +++ b/scene/ai/monster01.tscn @@ -11,7 +11,7 @@ [node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")] script = ExtResource("1_bbyao") -blackboard = NodePath("@Node@25085") +blackboard = NodePath("@Node@25817") [node name="SequenceComposite" type="Node" parent="."] script = ExtResource("2_04nig") diff --git a/scene/character/character.tscn b/scene/character/character.tscn index 0f7dbc9..f024cb4 100644 --- a/scene/character/character.tscn +++ b/scene/character/character.tscn @@ -124,7 +124,7 @@ shape = SubResource("CylinderShape3D_ehwx5") [node name="Status" type="Node3D" parent="."] unique_name_in_owner = true script = ExtResource("2_txdip") -speed_up_rate = -1.0 +speed_up_rate = -0.5 skill_move_speed = 2.0 skill_float_speed = 0.1 @@ -138,7 +138,7 @@ pixel_size = 0.02 double_sided = false texture_filter = 0 sprite_frames = ExtResource("4_sox5o") -animation = &"fist_skill03" +animation = &"fist_skill_special01" script = ExtResource("4_vijjv") [node name="Move" type="Node3D" parent="."] @@ -187,7 +187,7 @@ script = ExtResource("14_gua01") [node name="Throw" type="AnimatedSprite3D" parent="."] unique_name_in_owner = true -transform = Transform3D(-1, 0, 0, 0, 1, -8.74228e-08, 0, 8.74228e-08, 1, 0.75, 0.4, 0) +transform = Transform3D(-1, 0, 0, 0, 1, -1.50996e-07, 0, 1.50996e-07, 1, 0.75, 0.4, 0) visible = false pixel_size = 0.02 sprite_frames = ExtResource("15_70jx1") diff --git a/scene/character/player.tscn b/scene/character/player.tscn index d4f0253..dff208e 100644 --- a/scene/character/player.tscn +++ b/scene/character/player.tscn @@ -9,11 +9,6 @@ [node name="Character" instance=ExtResource("1_pot50")] -[node name="View" parent="." index="3"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.693056, 0) -sprite_frames = ExtResource("2_jecaa") -animation = &"fist_air_skill01" - [node name="Combo" type="Node3D" parent="." index="10"] unique_name_in_owner = true script = ExtResource("2_i44w8") diff --git a/scene/effect/particle/hero01_fist_air_skill01_1.tscn b/scene/effect/particle/hero01_fist_air_skill01_1.tscn index 4f5fae1..da26ce7 100644 --- a/scene/effect/particle/hero01_fist_air_skill01_1.tscn +++ b/scene/effect/particle/hero01_fist_air_skill01_1.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=3 format=3 uid="uid://d1qroqps7xcbb"] +[gd_scene load_steps=3 format=3 uid="uid://d10hh1e4u544w"] -[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_buiuf"] +[ext_resource type="Script" uid="uid://dxoik7jm7xm2q" path="res://script/effect/particle.gd" id="1_buiuf"] [ext_resource type="PackedScene" uid="uid://cxopc3y11lwg1" path="res://scene/effect/particle/_particle_dash1.tscn" id="1_eappe"] [node name="Particle" type="Node3D"] diff --git a/scene/effect/particle/hero01_fist_air_skill_charging_1.tscn b/scene/effect/particle/hero01_fist_air_skill_charging_1.tscn new file mode 100644 index 0000000..8b303a8 --- /dev/null +++ b/scene/effect/particle/hero01_fist_air_skill_charging_1.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://d1qroqps7xcbb"] + +[ext_resource type="Script" uid="uid://dxoik7jm7xm2q" path="res://script/effect/particle.gd" id="1_buiuf"] +[ext_resource type="PackedScene" uid="uid://cxopc3y11lwg1" path="res://scene/effect/particle/_particle_dash1.tscn" id="1_eappe"] + +[node name="Particle" type="Node3D"] +script = ExtResource("1_buiuf") + +[node name="Particle" parent="." instance=ExtResource("1_eappe")] +transform = Transform3D(0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0, 1, 0, 0, 0) diff --git a/scene/effect/particle/hero01_fist_air_skill01_2.tscn b/scene/effect/particle/hero01_fist_air_skill_charging_2.tscn similarity index 100% rename from scene/effect/particle/hero01_fist_air_skill01_2.tscn rename to scene/effect/particle/hero01_fist_air_skill_charging_2.tscn diff --git a/scene/ui/hud_screen.tscn b/scene/ui/hud_screen.tscn index 0f245cd..f014fc3 100644 --- a/scene/ui/hud_screen.tscn +++ b/scene/ui/hud_screen.tscn @@ -173,13 +173,12 @@ offset_right = 65.0 offset_bottom = 28.0 theme_override_constants/separation = -5 -[node name="TestBreakLevel" type="Label" parent="HudPage/PlayerStatusItem"] +[node name="DebugInfoList" type="VBoxContainer" parent="HudPage/PlayerStatusItem"] layout_mode = 0 -offset_left = 132.0 -offset_top = 3.0 -offset_right = 172.0 -offset_bottom = 26.0 -text = "1" +offset_top = 37.0 +offset_right = 40.0 +offset_bottom = 77.0 +theme_override_constants/separation = 14 [node name="BossStatusItem" type="Control" parent="HudPage"] visible = false @@ -336,6 +335,7 @@ offset_bottom = 40.0 script = ExtResource("3_6chl0") [node name="LoadingPage" type="Control" parent="."] +visible = false layout_mode = 3 anchors_preset = 0 offset_right = 40.0 diff --git a/scene/ui/item/debug_info_item_sub.tscn b/scene/ui/item/debug_info_item_sub.tscn new file mode 100644 index 0000000..adad768 --- /dev/null +++ b/scene/ui/item/debug_info_item_sub.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=2 format=3 uid="uid://qf04hnj26yoy"] + +[ext_resource type="Script" path="res://script/ui/hud/debug_info_item_sub.gd" id="1_vxs2m"] + +[node name="DebugInfoItemSub" type="Control"] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_vxs2m") +metadata/_custom_type_script = ExtResource("1_vxs2m") + +[node name="Label" type="Label" parent="."] +layout_mode = 0 +offset_top = 14.0 +offset_right = 68.0 +offset_bottom = 28.0 +theme_override_font_sizes/font_size = 10 +text = "DebugLabel" +horizontal_alignment = 2 + +[node name="Value" type="Label" parent="."] +layout_mode = 0 +offset_left = 72.0 +offset_top = 14.0 +offset_right = 113.0 +offset_bottom = 28.0 +theme_override_font_sizes/font_size = 10 +text = "Value" diff --git a/script/_global/enum.gd b/script/_global/enum.gd index 52e2a57..61ea629 100644 --- a/script/_global/enum.gd +++ b/script/_global/enum.gd @@ -11,6 +11,7 @@ enum EStance { Charging = 20, Stab = 30, Slash = 40, + Special = 50, SpecialLong, SpecialShort, SpecialFist, None = 99, GroundAny = 100, AirAny = 101, diff --git a/script/character/battle.gd b/script/character/battle.gd index 30ae5fe..b0ddf75 100644 --- a/script/character/battle.gd +++ b/script/character/battle.gd @@ -460,10 +460,9 @@ func on_attack_hit(hit_result: Struct.HitResultInfo) -> void: if not status.skill_cfg: return var skill_name: String = status.skill_cfg.get_res_name() - if hit_result.is_hit: - on_skill_trigger(skill_name, "hit") + on_skill_trigger(skill_name, "hit") if hit_result.is_break: - on_skill_trigger(skill_name, "break") + on_skill_trigger(skill_name, "hit_break") func on_skill_release(skill_name: String) -> void: @@ -487,12 +486,16 @@ func on_hero01_long_stab01_cast(): skill.cast_skill_by_name("hero01_long_stab02", status.move_dir) -func on_hero01_fist_skill01_break(): +func on_hero01_fist_skill01_hit_break(): var target: int = status.throw_target skill.cast_skill_by_name("hero01_fist_skill01_add", status.move_dir) status.throw_target = target +func on_hero01_fist_air_skill_charging_hit(): + status.stance = Enum.EStance.SpecialFist + + func on_hero01_fist_skill_charging_release(): match status.charging_level: 0: skill.cast_skill_by_name("hero01_fist_skill_charging01", status.move_dir) diff --git a/script/character/character.gd b/script/character/character.gd index 2d2ef5b..8f68705 100644 --- a/script/character/character.gd +++ b/script/character/character.gd @@ -126,8 +126,8 @@ func set_shield(value: float): status.set_shield(value) -func set_pos(pos: Vector3): - position = pos +func set_pos(pos_new: Vector3): + position = pos_new SignalManager.character_pos_changed.emit(id(), pos()) diff --git a/script/character/skill.gd b/script/character/skill.gd index b2f6c2a..c4d49aa 100644 --- a/script/character/skill.gd +++ b/script/character/skill.gd @@ -32,7 +32,7 @@ func remove_skill(action: String, skillCfg: SkillCfg) -> void: skill_dict.erase(skillCfg.get_res_name()) -func _process(delta): +func _process(_delta): if status.is_skill_running and status.is_pause == is_playing(): if status.is_pause: pause(); else: play(); @@ -58,7 +58,7 @@ func cast_skill_check(cfg: SkillCfg, break_level: Enum.EBreakLevel = Enum.EBreak return false if current_animation: - var pos_offset = fmod(current_animation_position, 0.1) + var pos_offset: float = fmod(current_animation_position, 0.1) if pos_offset < 0.02 or pos_offset > 0.08: return false @@ -72,6 +72,10 @@ func cast_skill_check(cfg: SkillCfg, break_level: Enum.EBreakLevel = Enum.EBreak var check_any: bool = (stance_from == Enum.EStance.Any) or check_any_ground or check_any_air if (stance_from != int(status.stance)) and not check_any: return false + #检查落地姿态 + var is_ground_stance: bool = (stance_from == Enum.EStance.GroundAny) or (stance_from == Enum.EStance.GroundIdle) + if is_ground_stance and not status.is_on_floor: + return false #检查武器限制 if cfg is SkillWeaponCfg: if cfg.weapon: diff --git a/script/ui/hud/debug_info_item_sub.gd b/script/ui/hud/debug_info_item_sub.gd new file mode 100644 index 0000000..7699eb8 --- /dev/null +++ b/script/ui/hud/debug_info_item_sub.gd @@ -0,0 +1,15 @@ +extends Control +class_name DebugInfoItemSub + +var label: Label +var value: Label + + +func init(label_value: String) -> void: + label = ($Label as Label) + value = ($Value as Label) + label.text = label_value + + +func set_value(value_value: String) -> void: + value.text = value_value diff --git a/script/ui/hud/hit_text.gd b/script/ui/hud/hit_text.gd index f7dfae2..79443cf 100644 --- a/script/ui/hud/hit_text.gd +++ b/script/ui/hud/hit_text.gd @@ -11,11 +11,12 @@ var is_close: bool func show_hit_damage(damage: float): if is_close: print("正在使用已关闭的hit_text") + is_close = true damage_cache += damage label.text = "%d" % damage_cache animation.seek(0) - animation.play("stage1") - +# animation.play("stage1") + animation.play("stage2_%d" % randi_range(1, 4)) func show_hit_text(text_set: String): if is_close: diff --git a/script/ui/hud/player_status_item.gd b/script/ui/hud/player_status_item.gd index 9577385..92923e7 100644 --- a/script/ui/hud/player_status_item.gd +++ b/script/ui/hud/player_status_item.gd @@ -4,14 +4,29 @@ extends Control @onready var hp_bar: TextureProgressBar = $HpBar as TextureProgressBar @onready var mp_sub_bar: TextureProgressBar = $MpSubBar as TextureProgressBar @onready var mp_list: HBoxContainer = $MpList as HBoxContainer -@onready var break_level_label: Label = $TestBreakLevel as Label +#debug info +@onready var debug_info_scene: PackedScene = preload("res://scene/ui/item/debug_info_item_sub.tscn") +@onready var debug_info_list: VBoxContainer = $DebugInfoList as VBoxContainer +var debug_info_dict: Dictionary[String, DebugInfoItemSub] = {} -func _process(delta: float) -> void: - # test + +func _process(_delta: float) -> void: var player: Character = Global.character_mgr.get_player() - if player: - break_level_label.text = str(player.get_status("break_level")) + if not player: + return + refresh_debug_info("break_level", str(player.get_status("break_level"))) + refresh_debug_info("stance", str(player.get_status("stance"))) + + +func refresh_debug_info(label_value: String, value: String) -> void: + if not debug_info_dict.has(label_value): + var debug_info: DebugInfoItemSub = debug_info_scene.instantiate() as DebugInfoItemSub + debug_info.init(label_value) + debug_info_list.add_child(debug_info) + debug_info_dict[label_value] = debug_info + + debug_info_dict[label_value].set_value(value) func on_hp_max_changed(value: float):