技能迭代

master
chendian 1 year ago
parent 94e671b781
commit 264bad1c82

@ -11,13 +11,10 @@ damage_type = 1
is_floating = true
is_hit_down = false
is_rebound = false
is_stop_self = true
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)

@ -11,6 +11,7 @@ damage_type = 2
is_floating = true
is_hit_down = false
is_rebound = true
is_stop_self = true
hit_back_speed = 0.0
hit_up_speed = 3.0
hit_back_duration = 0.0

@ -7,16 +7,14 @@ script = ExtResource("1_ggt4q")
damage_rate = 1.0
break_level = 2
stun_attack = 10.0
damage_type = 0
is_floating = true
is_hit_down = false
is_rebound = false
is_stop_self = true
hit_back_speed = 3.5
hit_back_duration = 0.05
hit_up_speed = 3.0
hit_back_duration = 0.05
hit_up_duration = 0.05
pause_time = 0.1
is_floating = true
is_hit_down = false
is_rebound = false
is_force_pause = false
height = 2.0
radius = 0.0
size = Vector2(2, 1)
offset = Vector2(1, 0)

@ -0,0 +1,20 @@
[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://bvtpba01td04l"]
[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_rvnvx"]
[resource]
script = ExtResource("1_rvnvx")
damage_rate = 1.0
break_level = 1
stun_attack = 10.0
damage_type = 0
is_floating = true
is_hit_down = false
is_rebound = false
is_stop_self = true
hit_back_speed = 0.0
hit_up_speed = 3.0
hit_back_duration = 0.0
hit_up_duration = 0.1
pause_time = 0.1
is_force_pause = true

@ -7,16 +7,14 @@ script = ExtResource("1_3r6q8")
damage_rate = 1.0
break_level = 1
stun_attack = 10.0
damage_type = 0
is_floating = true
is_hit_down = false
is_rebound = false
is_stop_self = true
hit_back_speed = 2.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 = true
is_hit_down = false
is_rebound = false
is_force_pause = false
height = 2.0
radius = 0.0
size = Vector2(2, 1)
offset = Vector2(1, 0)

@ -7,16 +7,14 @@ script = ExtResource("1_fl1sp")
damage_rate = 1.0
break_level = 1
stun_attack = 10.0
damage_type = 0
is_floating = true
is_hit_down = true
is_rebound = false
is_stop_self = true
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.02
is_floating = true
is_hit_down = true
is_rebound = false
is_force_pause = false
height = 2.0
radius = 0.0
size = Vector2(2, 1)
offset = Vector2(1, 0)

@ -11,9 +11,10 @@ damage_type = 0
is_floating = true
is_hit_down = false
is_rebound = false
is_stop_self = true
hit_back_speed = 0.0
hit_up_speed = 3.0
hit_back_duration = 0.0
hit_up_duration = 0.1
pause_time = 0.1
pause_time = 0.02
is_force_pause = true

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="AttackBoxCfg" load_steps=3 format=3 uid="uid://dja8jwx16njmf"]
[ext_resource type="Script" path="res://script/config/attack_box_cfg.gd" id="1_gmrbh"]
[sub_resource type="BoxShape3D" id="BoxShape3D_87jhu"]
size = Vector3(1.2, 0.8, 1)
[resource]
script = ExtResource("1_gmrbh")
shape = SubResource("BoxShape3D_87jhu")
offset = Vector2(0.6, 0.4)

@ -1,6 +1,7 @@
[gd_resource type="Resource" script_class="CoreCfg" load_steps=5 format=3 uid="uid://chx14f0ty3usd"]
[gd_resource type="Resource" script_class="CoreCfg" load_steps=6 format=3 uid="uid://chx14f0ty3usd"]
[ext_resource type="Script" path="res://script/config/core_cfg.gd" id="1_v24ds"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_flpwm"]
[ext_resource type="Resource" uid="uid://cuwtxibg84nno" path="res://config/skill_player_common/hero01_common_skill0101.tres" id="3_oj1qu"]
[ext_resource type="Resource" uid="uid://lr1iguojoyk" path="res://config/skill_player_common/hero01_common_skill0102.tres" id="4_we7wm"]
[ext_resource type="Resource" uid="uid://b8b1afegmabx6" path="res://config/skill_player_common/hero01_common_skill0103.tres" id="5_1xn4f"]
@ -9,4 +10,4 @@
script = ExtResource("1_v24ds")
name = ""
type = 0
skill_list = Array[Resource("res://script/config/player_skill_cfg.gd")]([ExtResource("3_oj1qu"), ExtResource("4_we7wm"), ExtResource("5_1xn4f")])
skill_list = Array[ExtResource("2_flpwm")]([ExtResource("3_oj1qu"), ExtResource("4_we7wm"), ExtResource("5_1xn4f")])

@ -1,5 +1,6 @@
[gd_resource type="Resource" script_class="CoreCfg" load_steps=3 format=3 uid="uid://djwu1qw3irbmj"]
[gd_resource type="Resource" script_class="CoreCfg" load_steps=4 format=3 uid="uid://djwu1qw3irbmj"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_4x1h6"]
[ext_resource type="Script" path="res://script/config/core_cfg.gd" id="2_glcvn"]
[ext_resource type="Resource" uid="uid://iyqp5jwc75b1" path="res://config/skill_player_common/hero01_common_skill02.tres" id="3_phy5g"]
@ -7,4 +8,4 @@
script = ExtResource("2_glcvn")
name = ""
type = 0
skill_list = Array[Resource("res://script/config/player_skill_cfg.gd")]([ExtResource("3_phy5g")])
skill_list = Array[ExtResource("2_4x1h6")]([ExtResource("3_phy5g")])

@ -7,8 +7,6 @@
script = ExtResource("1_r8y6y")
name = ""
skill_animation = ExtResource("2_hmrt4")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
animation_name = "attack01"

@ -0,0 +1,19 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=4 format=3 uid="uid://cyqiiar75vf87"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_blorc"]
[ext_resource type="Animation" uid="uid://73awn8b7c63v" path="res://resource/skill_animation/hero01_basic_air_flash.tres" id="2_sx5x4"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="3_ciqr7"]
[resource]
script = ExtResource("1_blorc")
stance_from = 101
stance_to = 10
break_level = 1
action = "flash"
name = ""
skill_animation = ExtResource("2_sx5x4")
free_lock = true
ignore_push = true
refresh_animation = false
sprite_frames = ExtResource("3_ciqr7")
animation_name = "basic_air_flash"

@ -0,0 +1,19 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=4 format=3 uid="uid://cyqiiar75vf87"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_raqfe"]
[ext_resource type="Animation" uid="uid://cfapnjkj5dkws" path="res://resource/skill_animation/hero01_basic_flash.tres" id="2_31kka"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="3_i6jjr"]
[resource]
script = ExtResource("1_raqfe")
stance_from = 100
stance_to = 0
break_level = 1
action = "flash"
name = ""
skill_animation = ExtResource("2_31kka")
free_lock = true
ignore_push = true
refresh_animation = false
sprite_frames = ExtResource("3_i6jjr")
animation_name = "basic_flash"

@ -12,8 +12,6 @@ break_level = 3
action = "none"
name = ""
skill_animation = ExtResource("2_o71rh")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
sprite_frames = ExtResource("3_ppacp")

@ -12,8 +12,6 @@ break_level = 1
action = "none"
name = ""
skill_animation = ExtResource("2_ar1pk")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
sprite_frames = ExtResource("3_11afq")

@ -12,8 +12,6 @@ break_level = 1
action = "none"
name = ""
skill_animation = ExtResource("2_breja")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
sprite_frames = ExtResource("3_2hchk")

@ -1,7 +1,6 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=5 format=3 uid="uid://iyqp5jwc75b1"]
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=4 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/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"]
@ -13,8 +12,6 @@ break_level = 3
action = "none"
name = ""
skill_animation = ExtResource("2_n2c7s")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_ihbmo")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
sprite_frames = ExtResource("3_roc1y")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://hg7aptg0wl1j"]
[ext_resource type="Resource" uid="uid://dib6g7t6p5ac2" path="res://config/attack/blunt_normal_hit.tres" id="1_v7ajo"]
[ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_6x3pw"]
[ext_resource type="Resource" uid="uid://dja8jwx16njmf" path="res://config/attack_box/box_small.tres" id="2_ipoga"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_v1wiv"]
[ext_resource type="Animation" uid="uid://chj3rlh6krt66" path="res://resource/skill_animation/hero01_fist_air_attack01.tres" id="4_nfkff"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="5_7yyxp"]
@ -17,8 +17,9 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("4_nfkff")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_v7ajo")
attack1_box = ExtResource("2_6x3pw")
attack1_box = ExtResource("2_ipoga")
refresh_animation = false
sprite_frames = ExtResource("5_7yyxp")
animation_name = "fist_air_attack01"

@ -17,6 +17,7 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("4_jbb00")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_cut8n")
attack1_box = ExtResource("2_bgip4")
refresh_animation = false

@ -17,6 +17,7 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("4_y802t")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_w8lg4")
attack1_box = ExtResource("2_2gnst")
refresh_animation = false

@ -19,6 +19,7 @@ action = "attack_heavy"
name = ""
skill_animation = ExtResource("3_q461t")
free_lock = false
ignore_push = true
attack1 = ExtResource("1_p1fp6")
attack1_box = ExtResource("2_nvq3h")
attack2 = ExtResource("3_ffp0l")

@ -17,6 +17,7 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("3_b2pdb")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_k0cmy")
attack1_box = ExtResource("2_ixt4v")
refresh_animation = false

@ -2,7 +2,7 @@
[ext_resource type="Resource" uid="uid://c87w2x5qfqdns" path="res://config/attack/blunt_normal_hit_back.tres" id="1_ixy7x"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_h70wx"]
[ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_saiae"]
[ext_resource type="Resource" uid="uid://dja8jwx16njmf" path="res://config/attack_box/box_small.tres" id="2_wc71d"]
[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"]
[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="5_gliie"]
@ -17,8 +17,9 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("3_tllt1")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_ixy7x")
attack1_box = ExtResource("2_saiae")
attack1_box = ExtResource("2_wc71d")
refresh_animation = false
sprite_frames = ExtResource("4_fevaa")
animation_name = "fist_attack02"

@ -17,6 +17,7 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("3_6rajt")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_am4eq")
attack1_box = ExtResource("2_ja1d4")
refresh_animation = false

@ -17,6 +17,7 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("3_bst70")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_s12sc")
attack1_box = ExtResource("2_0lps6")
refresh_animation = false

@ -17,6 +17,7 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("3_dbjmb")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_5lwhl")
attack1_box = ExtResource("2_xua7v")
refresh_animation = false

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://b705py5rht5i3"]
[ext_resource type="Resource" uid="uid://dj7tchh0202t2" path="res://config/attack/sharp_mid_hit_down.tres" id="1_rccpt"]
[ext_resource type="Resource" uid="uid://bv4uoey1liqoq" path="res://config/attack/sharp_heavy_hit_blow.tres" id="1_5rgpl"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_0x7hh"]
[ext_resource type="Resource" uid="uid://diedb7vw7eyxp" path="res://config/attack_box/box_mid.tres" id="2_2wu8a"]
[ext_resource type="Animation" uid="uid://bh5s2t3cbobpp" path="res://resource/skill_animation/hero01_long_air_attack03.tres" id="3_1erk8"]
@ -17,7 +17,8 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("3_1erk8")
free_lock = false
attack1 = ExtResource("1_rccpt")
ignore_push = false
attack1 = ExtResource("1_5rgpl")
attack1_box = ExtResource("2_2wu8a")
refresh_animation = false
sprite_frames = ExtResource("4_wrd60")

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://drg4yoi84to86"]
[ext_resource type="Resource" uid="uid://ckbf40c75bfqf" path="res://config/attack/sharp_normal_hit_up.tres" id="1_rnu2n"]
[ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_t6vds"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_jgqf0"]
[ext_resource type="Animation" uid="uid://uxuayi0qf3b7" path="res://resource/skill_animation/hero01_long_air_skill01.tres" id="4_udq7v"]
[ext_resource type="SpriteFrames" uid="uid://dhfqj1dxldqao" path="res://resource/animation/character/hero01_long_skill01.aseprite" id="5_ciknn"]
[ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="6_qrnr4"]
[resource]
script = ExtResource("3_jgqf0")
weapon = ExtResource("6_qrnr4")
stance_from = 11
stance_to = 12
break_level = 3
action = "attack_heavy"
name = ""
skill_animation = ExtResource("4_udq7v")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_rnu2n")
attack1_box = ExtResource("2_t6vds")
refresh_animation = false
sprite_frames = ExtResource("5_ciknn")
animation_name = "long_air_skill01"

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://chuf7yp2oc0f7"]
[ext_resource type="Resource" uid="uid://d3mcp8sf6qbmd" path="res://config/attack/sharp_normal_hit.tres" id="1_l1ina"]
[ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_whygf"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_to21l"]
[ext_resource type="Animation" uid="uid://cjc6sis2xn1yy" path="res://resource/skill_animation/hero01_long_air_skill02.tres" id="4_u7aq7"]
[ext_resource type="SpriteFrames" uid="uid://dhfqj1dxldqao" path="res://resource/animation/character/hero01_long_skill01.aseprite" id="5_6p3pi"]
[ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="6_vj7l0"]
[resource]
script = ExtResource("3_to21l")
weapon = ExtResource("6_vj7l0")
stance_from = 12
stance_to = 0
break_level = 3
action = "attack_heavy"
name = ""
skill_animation = ExtResource("4_u7aq7")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_l1ina")
attack1_box = ExtResource("2_whygf")
refresh_animation = false
sprite_frames = ExtResource("5_6p3pi")
animation_name = "long_air_skill02"

@ -19,6 +19,7 @@ action = "attack_light"
name = ""
skill_animation = ExtResource("2_sam6s")
free_lock = false
ignore_push = false
attack1 = ExtResource("1_44ai1")
attack1_box = ExtResource("2_5jvmg")
attack2 = ExtResource("1_8ipjq")

@ -1,22 +0,0 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=5 format=3 uid="uid://cyqiiar75vf87"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_yamsl"]
[ext_resource type="Animation" uid="uid://cwm116apu63n1" path="res://resource/skill_animation/hero01_long_flash.tres" id="2_bdxlh"]
[ext_resource type="SpriteFrames" uid="uid://dhfqj1dxldqao" path="res://resource/animation/character/hero01_long_skill01.aseprite" id="2_uof6p"]
[ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="4_xft4c"]
[resource]
script = ExtResource("1_yamsl")
weapon = ExtResource("4_xft4c")
stance_from = 100
stance_to = 0
break_level = 1
action = "flash"
name = ""
skill_animation = ExtResource("2_bdxlh")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = true
refresh_animation = false
sprite_frames = ExtResource("2_uof6p")
animation_name = "long_flash"

@ -1,9 +1,9 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://cwqbhrv8bd5vn"]
[ext_resource type="Resource" uid="uid://qmivx7ntfrki" path="res://config/attack/sharp_mid_hit.tres" id="1_7yroh"]
[ext_resource type="Resource" uid="uid://2bkub7vmxjeu" path="res://config/attack/sharp_mid_hit_blow.tres" id="1_blbi2"]
[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="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_xyemx"]
[ext_resource type="Resource" uid="uid://decgfcx2xsj8i" path="res://config/attack_box/circle_mid.tres" id="2_uxcyk"]
[ext_resource type="SpriteFrames" uid="uid://dhfqj1dxldqao" path="res://resource/animation/character/hero01_long_skill01.aseprite" id="3_qwjfl"]
[ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="4_3bf64"]
@ -17,8 +17,8 @@ action = "attack_heavy"
name = ""
skill_animation = ExtResource("2_ewts2")
free_lock = false
attack1 = ExtResource("1_7yroh")
attack1_box = ExtResource("2_xyemx")
attack1 = ExtResource("1_blbi2")
attack1_box = ExtResource("2_uxcyk")
refresh_animation = false
sprite_frames = ExtResource("3_qwjfl")
animation_name = "long_skill01"

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://vvftj1wk88xj"]
[ext_resource type="Resource" uid="uid://ckbf40c75bfqf" path="res://config/attack/sharp_normal_hit_up.tres" id="1_edtv7"]
[ext_resource type="Resource" uid="uid://bvtpba01td04l" path="res://config/attack/sharp_mid_hit_up.tres" id="1_gap5g"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_1xtt1"]
[ext_resource type="Resource" uid="uid://diedb7vw7eyxp" path="res://config/attack_box/box_mid.tres" id="2_tsg38"]
[ext_resource type="Animation" uid="uid://iprcbf277rf4" path="res://resource/skill_animation/hero01_long_skill02.tres" id="3_b7s0y"]
@ -17,7 +17,8 @@ action = "attack_heavy"
name = ""
skill_animation = ExtResource("3_b7s0y")
free_lock = false
attack1 = ExtResource("1_edtv7")
ignore_push = false
attack1 = ExtResource("1_gap5g")
attack1_box = ExtResource("2_tsg38")
refresh_animation = false
sprite_frames = ExtResource("4_rbnly")

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://bh0tfn8mi3u3r"]
[ext_resource type="Resource" uid="uid://dbs2wjw20s0hu" path="res://config/attack/sharp_heavy_hit_blow.tres" id="1_d23lh"]
[ext_resource type="Resource" uid="uid://bv4uoey1liqoq" path="res://config/attack/sharp_heavy_hit_blow.tres" id="1_d23lh"]
[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"]

@ -0,0 +1,7 @@
shader_type spatial;
render_mode unshaded,wireframe;
void fragment() {
ALBEDO = COLOR.rgb;
ALPHA = COLOR.a;
}

@ -0,0 +1,25 @@
[remap]
importer="Aseprite SpriteFrames Import"
type="SpriteFrames"
uid="uid://jpxh0jr8wp8g"
path="res://.godot/imported/hero01_basic.aseprite-dc65291380fb73222173d84d818b5682.res"
[deps]
source_file="res://resource/animation/character/hero01_basic.aseprite"
dest_files=["res://.godot/imported/hero01_basic.aseprite-dc65291380fb73222173d84d818b5682.res"]
[params]
spritesheet/layout=0
spritesheet/fixed_rows_count=1
spritesheet/fixed_columns_count=1
spritesheet/border_type=0
spritesheet/trim=false
spritesheet/ignore_empty=false
spritesheet/merge_duplicates=false
animation/default/name="default"
animation/default/direction=0
animation/default/repeat_count=0
animation/autoplay=""

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://behwcom00xhg7"
path.s3tc="res://.godot/imported/hero01_basic.png-d8f9d6bc11711a4782ed9554042f284e.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://resource/animation/character/hero01_basic.png"
dest_files=["res://.godot/imported/hero01_basic.png-d8f9d6bc11711a4782ed9554042f284e.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,142 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://73awn8b7c63v"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="1_q5y28"]
[resource]
resource_name = "hero01_basic_air_flash"
length = 0.8
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_q5y28")]
}
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": ["basic_air_flash"]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/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]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Status:break_level")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.2, 0.3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 3, 4]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Status:speed_up_rate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [0.0, 0.0]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Status:skill_move_speed")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.1, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [8.0, 0.0]
}
tracks/6/type = "method"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Effect")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"values": [{
"args": [],
"method": &"cast_after_image"
}, {
"args": [],
"method": &"cast_after_image"
}, {
"args": [],
"method": &"cast_after_image"
}, {
"args": [],
"method": &"cast_after_image"
}]
}
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.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"cast_attack_particle1"
}]
}
tracks/8/type = "method"
tracks/8/imported = false
tracks/8/enabled = true
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": &"stop"
}]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Status:is_speed_y_freeze")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}

@ -0,0 +1,142 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://cfapnjkj5dkws"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="1_mwddk"]
[resource]
resource_name = "hero01_basic_flash"
length = 0.8
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_mwddk")]
}
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": ["basic_flash"]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/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]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Status:break_level")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.2, 0.3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 3, 4]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Status:speed_up_rate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [0.0, 0.0]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Status:skill_move_speed")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.1, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [8.0, 0.0]
}
tracks/6/type = "method"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Effect")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"values": [{
"args": [],
"method": &"cast_after_image"
}, {
"args": [],
"method": &"cast_after_image"
}, {
"args": [],
"method": &"cast_after_image"
}, {
"args": [],
"method": &"cast_after_image"
}]
}
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.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"cast_attack_particle1"
}]
}
tracks/8/type = "method"
tracks/8/imported = false
tracks/8/enabled = true
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": &"stop"
}]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Status:is_speed_y_freeze")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}

@ -49,10 +49,10 @@ tracks/3/path = NodePath("Status:break_level")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.5, 0.8),
"transitions": PackedFloat32Array(1, 1, 1),
"times": PackedFloat32Array(0, 0.4, 0.5, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [0, 3, 4]
"values": [0, 0, 3, 4]
}
tracks/4/type = "value"
tracks/4/imported = false
@ -138,3 +138,17 @@ tracks/9/keys = {
"method": &"check_ground"
}]
}
tracks/10/type = "method"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Battle")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0.4),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"stop"
}]
}

@ -0,0 +1,43 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://j1o3tdfew2qw"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="1_eoekm"]
[resource]
resource_name = "hero01_flash"
length = 0.8
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_eoekm")]
}
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": ["basic_flash"]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/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]
}

@ -5,6 +5,7 @@
[resource]
resource_name = "hero01_long_air_attack01"
length = 0.9
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -36,7 +37,7 @@ tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.3, 0.5),
"times": PackedFloat32Array(0, 0.3, 0.6),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 3, 4]

@ -5,6 +5,7 @@
[resource]
resource_name = "hero01_long_air_attack02"
length = 0.9
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -36,7 +37,7 @@ tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.3, 0.5),
"times": PackedFloat32Array(0, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 3, 4]
@ -103,3 +104,17 @@ tracks/7/keys = {
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
}
tracks/8/type = "method"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Effect")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"cast_attack_particle1"
}]
}

@ -103,3 +103,17 @@ tracks/7/keys = {
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
}
tracks/8/type = "method"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Effect")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"cast_attack_particle1"
}]
}

@ -0,0 +1,126 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://uxuayi0qf3b7"]
[ext_resource type="SpriteFrames" uid="uid://dhfqj1dxldqao" path="res://resource/animation/character/hero01_long_skill01.aseprite" id="1_sg0me"]
[resource]
resource_name = "hero01_long_air_skill01"
length = 1.5
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_sg0me")]
}
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": ["long_air_skill01"]
}
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.8, 1.3),
"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(0.3, 0.7),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.0]
}
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.3, 0.7),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0.0, 1.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.5, 0.6),
"transitions": PackedFloat32Array(1, 1, 1),
"values": [{
"args": [],
"method": &"attack1"
}, {
"args": [],
"method": &"attack1"
}, {
"args": [],
"method": &"attack1"
}]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Status:skill_float_speed")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.3, 0.7),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0.1, 2.0, 0.0]
}
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.2),
"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, 1.1, 1.2, 1.3, 1.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 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, 11, 12, 13, 14]
}

@ -0,0 +1,154 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://cjc6sis2xn1yy"]
[ext_resource type="SpriteFrames" uid="uid://dhfqj1dxldqao" path="res://resource/animation/character/hero01_long_skill01.aseprite" id="1_5qvu2"]
[resource]
resource_name = "hero01_long_air_skill02"
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_5qvu2")]
}
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": ["long_air_skill02"]
}
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.6, 0.8, 0.9),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [0, 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(0.1, 0.6),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.0]
}
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, 0.6),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0.0, 4.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.6),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"attack1"
}, {
"args": [],
"method": &"attack2"
}]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Status:skill_float_speed")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.1, 0.6),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0.1, -4.0, 0.0]
}
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.2, 0.6),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"cast_attack_particle1"
}, {
"args": [],
"method": &"cast_attack_particle2_release"
}]
}
tracks/8/type = "method"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Battle")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0.5),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"check_ground2"
}]
}
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.6),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"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, 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]
}

@ -4,6 +4,7 @@
[resource]
resource_name = "hero01_long_attack01"
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -35,10 +36,10 @@ tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.3, 0.4, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"times": PackedFloat32Array(0, 0.3, 0.7),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 1, 3, 4]
"values": [0, 3, 4]
}
tracks/3/type = "value"
tracks/3/imported = false
@ -47,7 +48,7 @@ tracks/3/path = NodePath("Status:speed_up_rate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.2, 0.4),
"times": PackedFloat32Array(0.2, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.0]
@ -59,7 +60,7 @@ tracks/4/path = NodePath("Status:skill_move_speed")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.1, 0.4),
"times": PackedFloat32Array(0.1, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [2.0, 0.0]

@ -4,8 +4,8 @@
[resource]
resource_name = "hero01_long_flash"
length = 0.5
step = 0.08
length = 0.8
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -64,7 +64,7 @@ tracks/4/keys = {
"times": PackedFloat32Array(0.1, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [6.0, 0.0]
"values": [8.0, 0.0]
}
tracks/5/type = "method"
tracks/5/imported = false
@ -103,15 +103,41 @@ tracks/6/keys = {
"method": &"cast_attack_particle1"
}]
}
tracks/7/type = "value"
tracks/7/type = "method"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("View:frame")
tracks/7/path = NodePath("Battle")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"times": PackedFloat32Array(0.3),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"stop"
}]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Status:is_speed_y_freeze")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
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]
"values": [0, 1, 2, 3, 4, 5, 6, 7]
}

@ -4,6 +4,8 @@
[resource]
resource_name = "hero01_long_skill01"
length = 0.9
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -35,7 +37,7 @@ tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.4, 0.7),
"times": PackedFloat32Array(0, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 3, 4]
@ -47,7 +49,7 @@ tracks/3/path = NodePath("Status:speed_up_rate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.3, 0.4),
"times": PackedFloat32Array(0.1, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.0]
@ -59,7 +61,7 @@ tracks/4/path = NodePath("Status:skill_move_speed")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.2, 0.4),
"times": PackedFloat32Array(0.1, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [8.0, 0.0]
@ -71,22 +73,50 @@ tracks/5/path = NodePath("Battle")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.3),
"times": PackedFloat32Array(0.4),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"attack1"
}]
}
tracks/6/type = "value"
tracks/6/type = "method"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("View:frame")
tracks/6/path = NodePath("Effect")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"times": PackedFloat32Array(0.3),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"cast_attack_particle1"
}]
}
tracks/7/type = "method"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Battle")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.4),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"stop"
}]
}
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),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
}

@ -5,6 +5,7 @@
[resource]
resource_name = "hero01_long_skill02"
length = 0.8
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -91,13 +92,27 @@ tracks/6/keys = {
"method": &"attack1"
}]
}
tracks/7/type = "value"
tracks/7/type = "method"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("View:frame")
tracks/7/path = NodePath("Effect")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.2),
"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),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,

@ -1,7 +1,9 @@
[gd_resource type="AnimationLibrary" load_steps=29 format=3 uid="uid://croik07a1qko5"]
[gd_resource type="AnimationLibrary" load_steps=34 format=3 uid="uid://croik07a1qko5"]
[ext_resource type="Animation" uid="uid://t01a4jvp8srr" path="res://resource/skill_animation/hero01_fist_attack01.tres" id="1_4bwwm"]
[ext_resource type="Animation" uid="uid://cfapnjkj5dkws" path="res://resource/skill_animation/hero01_basic_flash.tres" id="1_46f01"]
[ext_resource type="Animation" uid="uid://p8l0puqxrkwh" path="res://resource/skill_animation/hero01_long_air_attack01.tres" id="1_b46g3"]
[ext_resource type="Animation" uid="uid://73awn8b7c63v" path="res://resource/skill_animation/hero01_basic_air_flash.tres" id="1_np5aa"]
[ext_resource type="Animation" uid="uid://daopmieibx3b7" path="res://resource/skill_animation/hero01_long_attack01.tres" id="1_nwjtl"]
[ext_resource type="Animation" uid="uid://dokxns0q44rux" path="res://resource/skill_animation/hero01_common_skill0101.tres" id="1_vt4qf"]
[ext_resource type="Animation" uid="uid://d0rn5wwwnu4oh" path="res://resource/skill_animation/hero01_common_skill0102.tres" id="2_8l02x"]
@ -28,9 +30,14 @@
[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://b8ypa7uw0uam5" path="res://resource/skill_animation/monster01_attack01.tres" id="11_q5gn4"]
[ext_resource type="Animation" uid="uid://j1o3tdfew2qw" path="res://resource/skill_animation/hero01_flash.tres" id="16_ctotk"]
[ext_resource type="Animation" uid="uid://uxuayi0qf3b7" path="res://resource/skill_animation/hero01_long_air_skill01.tres" id="20_0ey8y"]
[ext_resource type="Animation" uid="uid://cjc6sis2xn1yy" path="res://resource/skill_animation/hero01_long_air_skill02.tres" id="21_ks43l"]
[resource]
_data = {
"hero01_basic_air_flash": ExtResource("1_np5aa"),
"hero01_basic_flash": ExtResource("1_46f01"),
"hero01_common_skill0101": ExtResource("1_vt4qf"),
"hero01_common_skill0102": ExtResource("2_8l02x"),
"hero01_common_skill0103": ExtResource("3_ily05"),
@ -44,9 +51,12 @@ _data = {
"hero01_fist_attack03": ExtResource("3_lo6yb"),
"hero01_fist_attack04": ExtResource("4_087em"),
"hero01_fist_attack05": ExtResource("2_y7w3h"),
"hero01_flash": ExtResource("16_ctotk"),
"hero01_long_air_attack01": ExtResource("1_b46g3"),
"hero01_long_air_attack02": ExtResource("2_8wtap"),
"hero01_long_air_attack03": ExtResource("2_nqaew"),
"hero01_long_air_skill01": ExtResource("20_0ey8y"),
"hero01_long_air_skill02": ExtResource("21_ks43l"),
"hero01_long_attack01": ExtResource("1_nwjtl"),
"hero01_long_attack02": ExtResource("2_klfcs"),
"hero01_long_attack03": ExtResource("3_g8q4d"),

@ -1,4 +1,4 @@
[gd_scene load_steps=19 format=3 uid="uid://8rcvw1vnjcf7"]
[gd_scene load_steps=21 format=3 uid="uid://8rcvw1vnjcf7"]
[ext_resource type="Script" path="res://script/character/character.gd" id="1_tonbs"]
[ext_resource type="Script" path="res://script/character/hitbox.gd" id="2_6xf87"]
@ -7,9 +7,9 @@
[ext_resource type="Script" path="res://script/character/move.gd" id="4_66r53"]
[ext_resource type="Texture2D" uid="uid://daqn6aqfp1hva" path="res://resource/animation/character/hero01_long_attack.png" id="4_fcd8a"]
[ext_resource type="Script" path="res://script/character/view.gd" id="4_vijjv"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="6_c3rai"]
[ext_resource type="Script" path="res://script/character/skill.gd" id="6_h4xqy"]
[ext_resource type="AnimationLibrary" uid="uid://croik07a1qko5" path="res://resource/skill_animation_library/animation_library.tres" id="6_pakq5"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="6_xxsnj"]
[ext_resource type="Script" path="res://script/character/battle.gd" id="8_w84sf"]
[ext_resource type="Script" path="res://script/character/buff.gd" id="9_jlnhy"]
[ext_resource type="Script" path="res://script/character/effect.gd" id="12_eyfcd"]
@ -33,6 +33,38 @@ shader_parameter/deformation_dir = Vector2(0, 0)
shader_parameter/deformation_rate = 0.0
shader_parameter/tex = ExtResource("4_fcd8a")
[sub_resource type="Animation" id="Animation_dbjx6"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Status:break_level")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Status:is_speed_y_freeze")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_avnjy"]
_data = {
"RESET": SubResource("Animation_dbjx6")
}
[sub_resource type="Curve" id="Curve_e7j3f"]
max_value = 6.0
_data = [Vector2(0, 6), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
@ -59,7 +91,6 @@ shape = SubResource("CylinderShape3D_ehwx5")
[node name="Status" type="Node3D" parent="."]
unique_name_in_owner = true
script = ExtResource("2_txdip")
speed_up_rate = -0.5
skill_float_speed = 0.1
[node name="View" type="AnimatedSprite3D" parent="."]
@ -73,8 +104,8 @@ pixel_size = 0.02
double_sided = false
alpha_cut = 2
texture_filter = 0
sprite_frames = ExtResource("6_xxsnj")
animation = &"fist_air_attack02"
sprite_frames = ExtResource("6_c3rai")
animation = &"basic_air_flash"
script = ExtResource("4_vijjv")
[node name="Move" type="Node3D" parent="."]
@ -84,6 +115,7 @@ script = ExtResource("4_66r53")
[node name="Skill" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
"": SubResource("AnimationLibrary_avnjy"),
"animation_library": ExtResource("6_pakq5")
}
script = ExtResource("6_h4xqy")

@ -46,7 +46,6 @@ cull_mask = 1
script = ExtResource("3_dwi0o")
lifetime = 0.5
scale_curve = SubResource("Curve_r6bwy")
rotate = 15
[node name="DecalShockwave" type="Decal" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.358925, 0)

@ -0,0 +1,5 @@
[gd_scene load_steps=2 format=3 uid="uid://7d1g2owlw8pt"]
[ext_resource type="PackedScene" uid="uid://cxopc3y11lwg1" path="res://scene/effect/particle/_particle_dash1.tscn" id="1_6uo0m"]
[node name="Particle" instance=ExtResource("1_6uo0m")]

@ -0,0 +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_slash1.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)

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://cbt3er35f7tsd"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.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)

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://dhjq2xc2o5a8t"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.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)

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://causskv1ei4uj"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.tscn" id="1_evguo"]
[node name="Particle" instance=ExtResource("1_evguo")]
transform = Transform3D(1, 0, 0, 0, -0.707107, 0.353553, 0, -0.707107, -0.353553, 0, 0, 0)

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://bwapjpr0eg56t"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.tscn" id="1_o7nef"]
[node name="Particle" instance=ExtResource("1_o7nef")]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0)

@ -0,0 +1,35 @@
[gd_scene load_steps=6 format=3 uid="uid://ceblxqdmgyu0j"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_bgrcd"]
[ext_resource type="Shader" path="res://render/shader/effect_debug.gdshader" id="2_xpi14"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hupcc"]
render_priority = 0
shader = ExtResource("2_xpi14")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_f5m0v"]
particle_flag_rotate_y = true
angle_min = 90.0
angle_max = 90.0
gravity = Vector3(0, 0, 0)
color = Color(1, 0, 0, 1)
[sub_resource type="BoxMesh" id="BoxMesh_mq65o"]
[node name="Particle" type="Node3D"]
script = ExtResource("1_bgrcd")
[node name="Dash" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_hupcc")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.5
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_f5m0v")
draw_pass_1 = SubResource("BoxMesh_mq65o")

@ -0,0 +1,38 @@
[gd_scene load_steps=6 format=3 uid="uid://bm0unv0m2osgf"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_pded4"]
[ext_resource type="Shader" path="res://render/shader/effect_debug.gdshader" id="2_qehyu"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hupcc"]
render_priority = 0
shader = ExtResource("2_qehyu")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_f5m0v"]
particle_flag_rotate_y = true
angle_min = 90.0
angle_max = 90.0
gravity = Vector3(0, 0, 0)
color = Color(1, 0, 0, 1)
[sub_resource type="CylinderMesh" id="CylinderMesh_iwf0a"]
top_radius = 1.0
bottom_radius = 1.0
height = 1.0
[node name="Particle" type="Node3D"]
script = ExtResource("1_pded4")
[node name="Dash" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_hupcc")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.5
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_f5m0v")
draw_pass_1 = SubResource("CylinderMesh_iwf0a")

@ -18,4 +18,4 @@ cell_size = Vector3(0.64, 0.64, 0.64)
data = {
"cells": PackedInt32Array(0, 0, 16, 0, 1, 16, 0, 2, 16, 0, 3, 16, 0, 4, 16, 0, 5, 16, 0, 6, 16, 0, 7, 16, 0, 8, 16, 0, 9, 16, 0, 10, 16, 0, 65535, 16, 1, 65535, 16, 2, 65535, 16, 3, 65535, 16, 4, 65535, 16, 5, 65535, 16, 6, 65535, 16, 7, 65535, 16, 8, 65535, 16, 9, 65535, 16, 10, 65535, 16, 11, 65535, 16, 12, 65535, 16, 13, 65535, 16, 14, 65535, 16, 15, 65535, 16, 16, 65535, 16, 17, 65535, 16, 18, 65535, 16, 19, 65535, 16, 19, 0, 16, 19, 1, 16, 19, 2, 16, 19, 3, 16, 19, 4, 16, 19, 5, 16, 19, 6, 16, 19, 7, 16, 19, 8, 16, 19, 9, 16, 19, 10, 16, 18, 10, 16, 17, 10, 16, 16, 10, 16, 15, 10, 16, 14, 10, 16, 1, 10, 16, 2, 10, 16, 3, 10, 16, 4, 10, 16, 5, 10, 16, 6, 10, 16, 7, 10, 16, 8, 10, 16, 9, 10, 16, 10, 10, 16, 11, 10, 16, 12, 10, 16, 13, 10, 16, 65555, 10, 16, 65555, 9, 16, 65555, 8, 16, 65555, 7, 16, 65555, 6, 16, 65555, 5, 16, 65555, 4, 16, 65555, 3, 16, 65555, 2, 16, 65555, 1, 16, 65555, 0, 16, 65555, 65535, 16, 65554, 65535, 16, 65553, 65535, 16, 65552, 65535, 16, 65551, 65535, 16, 65550, 65535, 16, 65549, 65535, 16, 65548, 65535, 16, 65547, 65535, 16, 65546, 65535, 16, 65545, 65535, 16, 65544, 65535, 16, 65543, 65535, 16, 65542, 65535, 16, 65541, 65535, 16, 65540, 65535, 16, 65539, 65535, 16, 65538, 65535, 16, 65537, 65535, 16, 65536, 65535, 16, 65536, 0, 16, 65536, 1, 16, 65536, 2, 16, 65536, 3, 16, 65536, 4, 16, 65536, 5, 16, 65536, 6, 16, 65536, 7, 16, 65536, 8, 16, 65536, 9, 16, 65536, 10, 16, 65537, 10, 16, 65538, 10, 16, 65539, 10, 16, 65540, 10, 16, 65541, 10, 16, 65542, 10, 16, 65543, 10, 16, 65544, 10, 16, 65545, 10, 16, 65546, 10, 16, 65547, 10, 16, 65548, 10, 16, 65549, 10, 16, 65550, 10, 16, 65551, 10, 16, 65552, 10, 16, 65553, 10, 16, 65554, 10, 16, 131091, 10, 16, 131091, 9, 16, 131091, 8, 16, 131091, 7, 16, 131091, 6, 16, 131091, 5, 16, 131091, 4, 16, 131091, 3, 16, 131091, 2, 16, 131091, 1, 16, 131091, 0, 16, 131091, 65535, 16, 131090, 65535, 16, 131089, 65535, 16, 131088, 65535, 16, 131087, 65535, 16, 131086, 65535, 16, 131085, 65535, 16, 131084, 65535, 16, 131083, 65535, 16, 131082, 65535, 16, 131081, 65535, 16, 131080, 65535, 16, 131079, 65535, 16, 131078, 65535, 16, 131077, 65535, 16, 131076, 65535, 16, 131075, 65535, 16, 131074, 65535, 16, 131073, 65535, 16, 131072, 65535, 16, 131072, 0, 16, 131072, 1, 16, 131072, 2, 16, 131072, 3, 16, 131072, 4, 16, 131072, 5, 16, 131072, 6, 16, 131072, 7, 16, 131072, 8, 16, 131072, 9, 16, 131072, 10, 16, 131073, 10, 16, 131074, 10, 16, 131075, 10, 16, 131076, 10, 16, 131077, 10, 16, 131078, 10, 16, 131079, 10, 16, 131080, 10, 16, 131081, 10, 16, 131082, 10, 16, 131083, 10, 16, 131084, 10, 16, 131085, 10, 16, 131086, 10, 16, 131087, 10, 16, 131088, 10, 16, 131089, 10, 16, 131090, 10, 16)
}
metadata/_editor_floor_ = Vector3(0, 2, 0)
metadata/_editor_floor_ = Vector3(0, 1, 0)

@ -155,6 +155,14 @@ offset_right = 65.0
offset_bottom = 28.0
theme_override_constants/separation = -5
[node name="TestBreakLevel" type="Label" parent="HudPage/PlayerStatusItem"]
layout_mode = 0
offset_left = 132.0
offset_top = 3.0
offset_right = 172.0
offset_bottom = 26.0
text = "1"
[node name="BossStatusItem" type="Control" parent="HudPage"]
visible = false
layout_mode = 1

@ -6,10 +6,11 @@ enum EDamageType {Sharp, Blunt, Ground}
enum ECharacterType {Player, Monster, Bullet}
enum ETeam {Player, Monster}
enum EStance {
Idle, Ground1, Ground2, Ground3, Ground4, Ground5, Ground6, Ground7,
GroundIdle, Ground1, Ground2, Ground3, Ground4, Ground5, Ground6, Ground7,
AirIdle = 10, Air1, Air2, Air3,
None = 99,
Any = 100,
GroundAny = 100,
AirAny = 101,
}
enum EBreakLevel {None, Cancel, Jump, Break, Walk} #不可打断 取消技打断 跳跃打断 连招打断 行走打断
enum ECoreType {Free, Lock, Passive}

@ -174,6 +174,18 @@ func get_all_skill_player_weapon() -> Array[SkillPlayerCfg]:
return ret
func get_all_skill_player_basic() -> Array[SkillPlayerCfg]:
var ret: Array[SkillPlayerCfg] = []
var dir_path: String = "res://config/skill_player_basic"
var dir: DirAccess = DirAccess.open(dir_path)
for file in dir.get_files():
var path: String = dir_path + "/" + file
var res = load(path)
if res is SkillPlayerCfg:
ret.append(res)
return ret
func get_skill_player_weapon_by_weapon(weapon: WeaponCfg) -> Array[SkillPlayerCfg]:
var ret: Array[SkillPlayerCfg] = []
var dir_path: String = "res://config/skill_player_weapon"

@ -6,6 +6,7 @@ class_name Battle
@onready var character: Character = (get_owner() as Character)
@onready var status: Status = (%Status as Status)
@onready var skill: Skill = (%Skill as Skill)
@onready var move: Move = (%Move as Move)
class HitInfo:
@ -32,12 +33,16 @@ func attack2():
func _attack(attack: AttackCfg, attack_box: AttackBoxCfg):
var pos: Vector3 = character.pos()
var attack_dir: Vector2 = status.skill_dir.normalized()
var offset_xz: Vector2 = attack_dir * attack_box.offset.x
var offset_y: float = attack_box.offset.y
pos += Vector3(offset_xz.x, offset_y, offset_xz.y)
var result: Array[Character] = Util.raycast_character(attack_box.shape, pos, attack_dir)
if not attack or not attack_box:
return
var pos: Vector3 = character.pos()
var attack_dir: Vector2 = status.skill_dir.normalized()
var offset_xz: Vector2 = attack_dir * attack_box.offset.x
var offset_y: float = attack_box.offset.y
var offset: Vector3 = Vector3(offset_xz.x, offset_y, offset_xz.y)
var shape: Shape3D = attack_box.shape
_debug_draw_attack_box(shape, offset)
var result: Array[Character] = Util.raycast_character(shape, pos+offset, attack_dir)
var is_stuck: bool = false
for target: Character in result:
if target.team() == character.team():
@ -48,6 +53,15 @@ func _attack(attack: AttackCfg, attack_box: AttackBoxCfg):
skill.on_attack_miss()
func _debug_draw_attack_box(shape: Shape3D, offset: Vector3):
if shape is BoxShape3D:
var scale: Vector3 = shape.size
character.cast_particle(ResourceManager.particle_debug_box, false, offset, scale)
elif shape is CylinderShape3D:
var scale: Vector3 = Vector3(shape.radius, shape.height, shape.radius)
character.cast_particle(ResourceManager.particle_debug_cylinder, false, offset, scale)
func add_attack(from: int, dir: Vector2, attack: AttackCfg):
var hit_info = HitInfo.new()
hit_info.from = from
@ -73,7 +87,7 @@ func settle(hit_info: HitInfo) -> bool:
var attack: AttackCfg = hit_info.attack
var is_floating: bool = attack.is_floating or not character_to.get_status("is_on_floor")
var is_hit_down: bool = attack.is_hit_down
var is_hit_down: bool = attack.is_hit_down and not character_to.get_status("is_on_floor")
var is_rebound: bool = attack.is_rebound
var is_break_shield: bool = false
@ -168,7 +182,7 @@ func settle(hit_info: HitInfo) -> bool:
hit_back_speed = max(hit_back_limit_curve.sample(dist), hit_back_speed)
if is_hit_down:
character_to.add_buff("hit_down", -1)
character_to.set_hit_move(hit_info.dir, hit_back_speed, hit_up_speed)
character_to.add_buff("hit_back", attack.hit_back_duration)
character_to.add_buff("hit_up", attack.hit_up_duration)
@ -228,4 +242,16 @@ func add_mp(value: float):
func check_ground():
skill.on_check_ground()
skill.on_check_ground(0)
func check_ground1():
skill.on_check_ground(1)
func check_ground2():
skill.on_check_ground(2)
func stop():
move.stop()

@ -107,7 +107,7 @@ func target()->int: return status.target
#==interface==
func get_status(status_name: String): return status.get_status(status_name)
func get_status(status_name: String) -> Variant: return status.get_status(status_name)
func set_status(status_name: String, value): status.set_status(status_name, value)
@ -144,26 +144,33 @@ func set_pause_time(pause_time: float):
add_buff("pause", pause_time)
func cancel_skill(): skill.cancel_skill()
func cancel_skill():
skill.cancel_skill()
func set_view_trigger(trigger_name: String):
status.set("trigger_%s" % trigger_name, true)
func add_attack(from: int, dir: Vector2, attack: AttackCfg): battle.add_attack(from, dir, attack)
func add_attack(from: int, dir: Vector2, attack: AttackCfg):
battle.add_attack(from, dir, attack)
func show_hit_text(value: String): SignalManager.character_hit_text.emit(id(), value)
func show_hit_text(value: String):
SignalManager.character_hit_text.emit(id(), value)
func show_hit_damage(value: float): SignalManager.character_hit_damage.emit(id(), value)
func show_hit_damage(value: float):
SignalManager.character_hit_damage.emit(id(), value)
func add_mp(value: float): battle.add_mp(value)
func add_mp(value: float):
battle.add_mp(value)
func set_target(target: int): set_status("target", target)
func set_target(target: int):
set_status("target", target)
func cast_particle(resource: Resource, is_attach: bool): effect.cast_particle(resource, is_attach)
func cast_particle(resource: Resource, is_attach: bool, offset: Vector3 = Vector3.ZERO, scale: Vector3 = Vector3.ONE):
effect.cast_particle(resource, is_attach, offset, scale)

@ -73,7 +73,7 @@ func cast_after_image(): cast_image(afterimage)
func cast_corpse(): cast_image(corpse)
func cast_particle(resource: Resource, is_attach: bool): _cast_particle(resource, is_attach)
func cast_particle(resource: Resource, is_attach: bool, offset: Vector3, scale: Vector3): _cast_particle(resource, is_attach, offset, scale)
func cast_attack_particle1(): _cast_attack_particle(1, true)
@ -95,10 +95,10 @@ func _cast_attack_particle(index: int, is_attach: bool) -> void:
if !attack_particle:
print("未配置技能攻击特效:", status.skill_cfg.resource_path)
return
_cast_particle(attack_particle, is_attach)
_cast_particle(attack_particle, is_attach, Vector3.ZERO, Vector3.ZERO)
func _cast_particle(resource: Resource, is_attach: bool) -> void:
func _cast_particle(resource: Resource, is_attach: bool, offset: Vector3, scale: Vector3) -> void:
if !resource:
print("未配置技能特效")
return
@ -106,8 +106,13 @@ func _cast_particle(resource: Resource, is_attach: bool) -> void:
new_particle.name = "particle"
var angle: float = Util.dir_angle(status.skill_dir)
new_particle.rotation.y = angle if is_right else -angle
if scale:
new_particle.scale = scale
new_particle.scale.x = abs(new_particle.scale.x) * (1 if is_right else -1)
new_particle.position = status.basic_offset
if offset:
new_particle.position = offset
else:
new_particle.position = status.basic_offset
add_child(new_particle)
if !is_attach:
temp_release_particle_list.append(new_particle)
@ -120,8 +125,9 @@ func release_effect():
func _release_effect(particle: Particle):
var pos: Vector3 = particle.get_global_position()
particle.set_pause(false)
particle.position = character.view_pos()
particle.position = pos
remove_child(particle)
SignalManager.effect_create.emit(particle)

@ -19,7 +19,17 @@ func _process(delta) -> void:
var speed_dir: Vector2 = character.get_status("speed_dir") as Vector2
if speed_dir.length() == 0:
return
var speed_down_push_rate: int = 0
var is_skill_running: bool = character.get_status("is_skill_running") as bool
if not is_skill_running:
character.set_status("speed_down_push_rate", 0)
return
var skill_cfg: SkillCfg = character.get_status("skill_cfg") as SkillCfg
if not skill_cfg:
return
if skill_cfg.ignore_push:
character.set_status("speed_down_push_rate", 0)
return
var speed_down_push_rate: float = 0
var pos: Vector2 = character.pos2D()
for pushbox: Hitbox in pushbox_list:
var target_pos: Vector2 = pushbox.character.pos2D()

@ -37,7 +37,10 @@ func update_on_floor(delta) -> bool:
return is_hit
func update_speed_y(delta):
func update_speed_y(delta) -> void:
if status.is_speed_y_freeze:
character.velocity.y = 0
return
var has_y_speed: bool = (status.skill_float_speed != 0) or (status.hit_up_speed != 0)
var is_on_stair: bool = character.is_on_stair()
if has_y_speed:
@ -90,3 +93,6 @@ func jump():
status.is_jumped = true
status.trigger_jump = true
buff.add_buff("jumping", 0.1)
func stop():
character.velocity = Vector3.ZERO

@ -17,6 +17,7 @@ var input_list: Array[Variant] = [] #指令缓存
func _ready():
# test
add_basic_skill()
add_weapon(load("res://config/weapon/long.tres") as WeaponCfg)
#add_weapon(load("res://config/weapon/short.tres") as WeaponCfg)
add_weapon(load("res://config/weapon/fist.tres") as WeaponCfg)
@ -88,8 +89,10 @@ func update_break_by_level(break_level: Enum.EBreakLevel) -> bool:
var skill_player_weapon_cfg: SkillPlayerCfg = skill_cfg as SkillPlayerCfg
if skill_player_weapon_cfg.break_level != break_level:
continue
var stance_from: Enum.EStance = skill_player_weapon_cfg.stance_from
if (stance_from != status.stance) and (int(stance_from) != Enum.EStance.Any):
var stance_from: int = skill_player_weapon_cfg.stance_from
var check_any_ground: bool = (stance_from == Enum.EStance.GroundAny) and status.is_on_floor
var check_any_air: bool = (stance_from == Enum.EStance.AirAny) and not status.is_on_floor
if (stance_from != int(status.stance)) and not check_any_ground and not check_any_air:
continue
if skill_player_weapon_cfg.weapon:
if skill_player_weapon_cfg.weapon != status.weapon_list[status.weapon_index]:
@ -116,7 +119,7 @@ func update_move():
if not status.is_on_floor or status.is_jumping:
status.stance = Enum.EStance.AirIdle
else:
status.stance = Enum.EStance.Idle
status.stance = Enum.EStance.GroundIdle
status.break_level = Enum.EBreakLevel.Walk
@ -147,6 +150,10 @@ func add_weapon(weapon: WeaponCfg):
status.emit_status("weapon_list")
status.set_status("weapon_index", 0)
func add_basic_skill():
for skill_player_weapon_res: SkillPlayerCfg in Util.get_all_skill_player_basic():
var skill_player_weapon: SkillPlayerCfg = skill_player_weapon_res as SkillPlayerCfg
add_skill(skill_player_weapon.action, skill_player_weapon_res)
func weapon_index_change(dir: int) -> void:
if not status.weapon_list:

@ -39,6 +39,7 @@ func cast_skill(cfg: SkillCfg, cast_dir: Vector2):
status.break_level = Enum.EBreakLevel.None
status.speed_down_push_rate = 0
status.skill_move_stop = false
status.is_speed_y_freeze = false
if cast_dir.x != 0: status.is_right = cast_dir.x > 0
play(animation_name, -1, Setting.animation_speed_scale)
else:
@ -57,6 +58,7 @@ func break_skill():
status.break_level = Enum.EBreakLevel.Walk
status.speed_down_push_rate = 0
status.skill_move_stop = false
status.is_speed_y_freeze = false
effect.release_effect()
@ -70,13 +72,14 @@ func on_attack_miss():
advance(Setting.animation_frame_rate)
func on_check_ground():
func on_check_ground(frame_offset: int) -> void:
if status.is_on_floor:
# 落地检测成功时跳帧
advance(Setting.animation_frame_rate)
else:
# 落地检测失败时回退半帧
var frame: int = int(current_animation_position / Setting.animation_frame_rate)
var frame: int = int(current_animation_position / Setting.animation_frame_rate) - frame_offset
frame = frame if frame >= 0 else 0
var frame_pos: float = frame * Setting.animation_frame_rate
seek(frame_pos- Setting.animation_frame_rate / 2, true, true)

@ -45,6 +45,7 @@ class_name Status
@export var is_right: bool = true #是否向右
@export var is_jumping: bool #是否正在跳跃
@export var is_jumped: bool #是否已跳跃
@export var is_speed_y_freeze: bool #是否冻结竖直速度
@export_category("buff状态")
@export var is_stagger: bool #是否硬直
@export var is_stun: bool #是否眩晕
@ -86,7 +87,7 @@ class_name Status
func get_status(status_name: String) -> Variant: return get(status_name)
func set_status(status_name: String, value):
func set_status(status_name: String, value: Variant):
set(status_name, value)
SignalManager.character_status_changed.emit(id, status_name, value)

@ -3,7 +3,7 @@ extends SkillCfg
class_name SkillPlayerCfg
@export var weapon: WeaponCfg
@export var stance_from: Enum.EStance = Enum.EStance.Any
@export var stance_from: Enum.EStance = Enum.EStance.GroundAny
@export var stance_to: Enum.EStance
@export var break_level: Enum.EBreakLevel = Enum.EBreakLevel.Break

@ -5,6 +5,7 @@ class_name SkillCfg
@export var name: String
@export var skill_animation: Animation
@export var free_lock: bool
@export var ignore_push: bool
@export var attack1: AttackCfg
@export var attack1_box: AttackBoxCfg
@export var attack2: AttackCfg

@ -11,6 +11,8 @@ var material_character_sub: Material = load("res://render/material/character_sub
var particle_hit_sharp: PackedScene = load("res://scene/effect/particle/particle_hit_sharp.tscn")
var particle_hit_blunt: PackedScene = load("res://scene/effect/particle/particle_hit_blunt.tscn")
var particle_hit_ground: PackedScene = load("res://scene/effect/particle/particle_hit_ground.tscn")
var particle_debug_box: PackedScene = load("res://scene/effect/particle/particle_debug_box.tscn")
var particle_debug_cylinder: PackedScene = load("res://scene/effect/particle/particle_debug_cylinder.tscn")
#==config==
#character
var cfg_character_player: CharacterCfg = load("res://config/character/hero01.tres") as CharacterCfg

@ -4,7 +4,12 @@ extends Control
@onready var hp_bar = $HpBar as TextureProgressBar
@onready var mp_sub_bar = $MpSubBar as TextureProgressBar
@onready var mp_list = $MpList as HBoxContainer
@onready var break_level_label = $TestBreakLevel as Label
func _process(delta: float) -> void:
# test
var player: Character = Global.character_mgr.get_player()
break_level_label.text = str(player.get_status("break_level"))
func on_hp_max_changed(value: float):
hp_bar.max_value = value

Loading…
Cancel
Save