long stab03,long技能优化

master
chendian 9 months ago
parent a1433e906e
commit 497d711912

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://ctbdt77yyubxn"]
[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_r7m5n"]
[ext_resource type="Script" uid="uid://bm8fn2yciam1g" path="res://script/config/attack_cfg.gd" id="1_r7m5n"]
[resource]
script = ExtResource("1_r7m5n")
@ -10,12 +10,9 @@ stun_attack = 10.0
damage_type = 1
is_floating = true
is_rebound = false
is_stop_self = true
is_throw_check = false
is_throw_end = false
hit_back_speed = 0.0
hit_up_speed = 3.0
hit_up_speed = 2.0
hit_back_duration = 0.05
hit_up_duration = 0.1
pause_time = 0.05

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://2bkub7vmxjeu"]
[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_ggt4q"]
[ext_resource type="Script" uid="uid://bm8fn2yciam1g" path="res://script/config/attack_cfg.gd" id="1_ggt4q"]
[resource]
script = ExtResource("1_ggt4q")
@ -10,7 +10,6 @@ stun_attack = 10.0
damage_type = 0
is_floating = true
is_rebound = false
is_stop_self = true
is_throw_check = false
is_throw_end = false
hit_back_speed = 3.5

@ -13,6 +13,6 @@ is_rebound = false
is_throw_check = false
is_throw_end = false
hit_back_speed = 0.0
hit_up_speed = -10.0
hit_up_speed = -12.0
hit_back_duration = 0.05
hit_up_duration = 1.0
hit_up_duration = 0.05

@ -0,0 +1,18 @@
[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://dmfr73m28vsqj"]
[ext_resource type="Script" uid="uid://bm8fn2yciam1g" path="res://script/config/attack_cfg.gd" id="1_rye6c"]
[resource]
script = ExtResource("1_rye6c")
damage_rate = 1.0
break_level = 2
stun_attack = 10.0
damage_type = 0
is_floating = true
is_rebound = false
is_throw_check = false
is_throw_end = false
hit_back_speed = 4.5
hit_up_speed = 0.1
hit_back_duration = 0.1
hit_up_duration = 0.05

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://bnqnw10v7kude"]
[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_fl1sp"]
[ext_resource type="Script" uid="uid://bm8fn2yciam1g" path="res://script/config/attack_cfg.gd" id="1_fl1sp"]
[resource]
script = ExtResource("1_fl1sp")
@ -9,14 +9,10 @@ break_level = 1
stun_attack = 10.0
damage_type = 0
is_floating = true
is_hit_down = true
is_rebound = false
is_stop_self = true
is_throw_check = false
is_throw_end = false
hit_back_speed = 6.0
hit_up_speed = -6.0
hit_back_speed = 1.0
hit_up_speed = -10.0
hit_back_duration = 0.05
hit_up_duration = 0.05
pause_time = 0.02

@ -3,8 +3,8 @@
[ext_resource type="Resource" uid="uid://ctbdt77yyubxn" path="res://config/attack/blunt_normal_hit_up.tres" id="1_4vq22"]
[ext_resource type="Resource" uid="uid://bhxq1uffxyda8" path="res://config/attack_box/circle_normal_thin.tres" id="2_ewiqr"]
[ext_resource type="Resource" uid="uid://dpajmgrlaytah" path="res://config/character_mp/normal.tres" id="2_hrxfp"]
[ext_resource type="Resource" uid="uid://iv8g1x3bkxvv" path="res://config/character_move/fast_fly.tres" id="3_gqffj"]
[ext_resource type="Script" path="res://script/config/character_cfg.gd" id="3_p63bn"]
[ext_resource type="Resource" uid="uid://iv8g1x3bkxvv" path="res://config/character_move/fly_fast.tres" id="3_gqffj"]
[ext_resource type="Script" uid="uid://dt3chi1tgnaef" path="res://script/config/character_cfg.gd" id="3_p63bn"]
[ext_resource type="Resource" uid="uid://h1curvk64vm3" path="res://config/character_shield/none.tres" id="4_qnn3b"]
[ext_resource type="Resource" uid="uid://5jes0p152akr" path="res://config/character_stun/none.tres" id="6_y4hsh"]

@ -0,0 +1,32 @@
[gd_resource type="Resource" script_class="CharacterCfg" load_steps=10 format=3 uid="uid://rxt1emwats2v"]
[ext_resource type="PackedScene" uid="uid://tr65aikkpp2e" path="res://scene/ai/bullet_simple_penetrat.tscn" id="1_70j82"]
[ext_resource type="Resource" uid="uid://dmfr73m28vsqj" path="res://config/attack/sharp_normal_hit_back_hard.tres" id="2_70j82"]
[ext_resource type="Resource" uid="uid://decgfcx2xsj8i" path="res://config/attack_box/circle_mid.tres" id="3_6gt06"]
[ext_resource type="Resource" uid="uid://cw7rb4rlfw33q" path="res://config/attack/sharp_heavy_hit_back.tres" id="4_2lpps"]
[ext_resource type="Resource" uid="uid://dc2iepk6nb7rs" path="res://config/character_move/fly_normal.tres" id="4_70j82"]
[ext_resource type="Resource" uid="uid://dpajmgrlaytah" path="res://config/character_mp/normal.tres" id="5_1lrf8"]
[ext_resource type="Script" uid="uid://dt3chi1tgnaef" path="res://script/config/character_cfg.gd" id="6_pyp0d"]
[ext_resource type="Resource" uid="uid://h1curvk64vm3" path="res://config/character_shield/none.tres" id="7_iotq2"]
[ext_resource type="Resource" uid="uid://5jes0p152akr" path="res://config/character_stun/none.tres" id="8_euuy0"]
[resource]
script = ExtResource("6_pyp0d")
name = "hero01"
type = 2
sprite_height = 26
sprite_width = 16
move = ExtResource("4_70j82")
shield = ExtResource("7_iotq2")
stun = ExtResource("8_euuy0")
mp = ExtResource("5_1lrf8")
ai_behavior_tree = ExtResource("1_70j82")
hp_max = 100.0
attack = 1.0
attack1 = ExtResource("2_70j82")
attack1_box = ExtResource("3_6gt06")
attack2 = ExtResource("4_2lpps")
attack2_box = ExtResource("3_6gt06")
sub_character_auto_create = false
material_on = 0
material_off = 0

@ -3,7 +3,7 @@
[ext_resource type="PackedScene" uid="uid://bei75ysjq2pi4" path="res://scene/ai/bullet_simple.tscn" id="1_3q8i1"]
[ext_resource type="Resource" uid="uid://d3mcp8sf6qbmd" path="res://config/attack/sharp_normal_hit.tres" id="2_3q8i1"]
[ext_resource type="Resource" uid="uid://decgfcx2xsj8i" path="res://config/attack_box/circle_mid.tres" id="3_3q8i1"]
[ext_resource type="Resource" uid="uid://iv8g1x3bkxvv" path="res://config/character_move/fast_fly.tres" id="4_2bsgq"]
[ext_resource type="Resource" uid="uid://iv8g1x3bkxvv" path="res://config/character_move/fly_fast.tres" id="4_2bsgq"]
[ext_resource type="Resource" uid="uid://dpajmgrlaytah" path="res://config/character_mp/normal.tres" id="5_gsbwd"]
[ext_resource type="Script" uid="uid://dt3chi1tgnaef" path="res://script/config/character_cfg.gd" id="6_1ypqo"]
[ext_resource type="Resource" uid="uid://h1curvk64vm3" path="res://config/character_shield/none.tres" id="7_k8icm"]

@ -3,7 +3,7 @@
[ext_resource type="Resource" uid="uid://ckbf40c75bfqf" path="res://config/attack/sharp_normal_hit_up.tres" id="1_at6jo"]
[ext_resource type="PackedScene" uid="uid://bei75ysjq2pi4" path="res://scene/ai/bullet_simple.tscn" id="1_m7qit"]
[ext_resource type="Resource" uid="uid://bld0vhuhgydm8" path="res://config/attack_box/direct.tres" id="2_780us"]
[ext_resource type="Resource" uid="uid://iv8g1x3bkxvv" path="res://config/character_move/fast_fly.tres" id="3_cx00u"]
[ext_resource type="Resource" uid="uid://iv8g1x3bkxvv" path="res://config/character_move/fly_fast.tres" id="3_cx00u"]
[ext_resource type="Resource" uid="uid://dpajmgrlaytah" path="res://config/character_mp/normal.tres" id="4_alws1"]
[ext_resource type="Script" uid="uid://dt3chi1tgnaef" path="res://script/config/character_cfg.gd" id="5_4n1ni"]
[ext_resource type="Resource" uid="uid://h1curvk64vm3" path="res://config/character_shield/none.tres" id="6_u7wv4"]

@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="CharacterMoveCfg" load_steps=2 format=3 uid="uid://dc2iepk6nb7rs"]
[ext_resource type="Script" uid="uid://dk6mufc8e8i88" path="res://script/config/character_move_cfg.gd" id="1_33bqv"]
[resource]
script = ExtResource("1_33bqv")
speed = 5.0
gravity_scale = 0.0
jump_velocity = 6.0

@ -2,7 +2,7 @@
[ext_resource type="Resource" uid="uid://bwe8xlgfhx1gl" path="res://config/attack/blunt_heavy_hit_blow.tres" id="1_5lwhl"]
[ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_g7bbg"]
[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="2_ym7q1"]
[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_cfg.gd" id="2_ym7q1"]
[ext_resource type="Animation" uid="uid://b2xdmgnem1h4g" path="res://resource/skill_animation/hero01_fist_attack05.tres" id="3_dbjmb"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_mhr07"]
[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="5_en30r"]
@ -13,24 +13,21 @@ weapon = ExtResource("5_en30r")
action = "attack_light"
name = ""
skill_animation = ExtResource("3_dbjmb")
range = 0.0
free_lock = false
ignore_push = false
attack1 = ExtResource("1_5lwhl")
attack1_box = ExtResource("2_g7bbg")
attack1_with_pause_frame = true
attack1_with_stop = true
attack2_with_pause_frame = false
attack2_with_stop = false
stance_from = 4
stance_to = 5
break_level = 3
is_charging = false
attack1 = ExtResource("1_5lwhl")
attack1_box = ExtResource("2_g7bbg")
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_mhr07")
animation_name = "fist_attack05"

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=7 format=3 uid="uid://dbviuasvknl8q"]
[ext_resource type="Resource" uid="uid://b5sendxmglojg" path="res://config/attack/blunt_tackle.tres" id="1_aubbe"]
[ext_resource type="Resource" uid="uid://dja8jwx16njmf" path="res://config/attack_box/box_small.tres" id="2_xjtqg"]
[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="3_6wryu"]
[ext_resource type="Resource" uid="uid://ctbdt77yyubxn" path="res://config/attack/blunt_normal_hit_up.tres" id="1_ywehi"]
[ext_resource type="Resource" uid="uid://decgfcx2xsj8i" path="res://config/attack_box/circle_mid.tres" id="2_ywehi"]
[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_cfg.gd" id="3_6wryu"]
[ext_resource type="Animation" uid="uid://mnmlwnqk4aqq" path="res://resource/skill_animation/hero01_fist_skill03.tres" id="4_c7ye6"]
[ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="5_sjxkh"]
[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="6_aemq5"]
@ -13,20 +13,22 @@ weapon = ExtResource("6_aemq5")
action = "attack_heavy"
name = ""
skill_animation = ExtResource("4_c7ye6")
range = 0.0
free_lock = false
ignore_push = true
attack1 = ExtResource("1_aubbe")
attack1_box = ExtResource("2_xjtqg")
stance_from = 2
stance_to = 3
break_level = 3
is_charging = false
attack1 = ExtResource("1_ywehi")
attack1_box = ExtResource("2_ywehi")
attack1_with_stop = false
attack2_with_stop = false
mp_cost = 0
mp_sub_cost = false
warn_type = 0
free_lock = false
ignore_push = true
with_stop = false
is_lock_x = true
refresh_animation = false
is_lock_x_move = false
range = 0.0
warn_type = 0
sprite_frames = ExtResource("5_sjxkh")
animation_name = "fist_skill03"

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=6 format=3 uid="uid://b705py5rht5i3"]
[ext_resource type="Resource" uid="uid://dj7tchh0202t2" path="res://config/attack/sharp_mid_hit_down.tres" id="1_11m12"]
[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="2_0x7hh"]
[ext_resource type="Resource" uid="uid://bnqnw10v7kude" path="res://config/attack/sharp_normal_hit_down.tres" id="1_iyjil"]
[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_cfg.gd" id="2_0x7hh"]
[ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_rpr7r"]
[ext_resource type="Animation" uid="uid://bh5s2t3cbobpp" path="res://resource/skill_animation/hero01_long_air_attack03.tres" id="3_1erk8"]
[ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="5_u3vas"]
@ -12,23 +12,20 @@ weapon = ExtResource("5_u3vas")
action = "attack_light"
name = ""
skill_animation = ExtResource("3_1erk8")
range = 0.0
free_lock = false
ignore_push = false
attack1 = ExtResource("1_11m12")
attack1_box = ExtResource("2_rpr7r")
attack1_with_pause_frame = false
attack1_with_stop = false
attack2_with_pause_frame = false
attack2_with_stop = false
stance_from = 12
stance_to = 2
stance_to = 3
break_level = 3
is_charging = false
attack1 = ExtResource("1_iyjil")
attack1_box = ExtResource("2_rpr7r")
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 = false
is_lock_x = true
refresh_animation = false
is_lock_x_move = false
range = 0.0
warn_type = 0
animation_name = ""

@ -19,9 +19,7 @@ break_level = 3
is_charging = false
attack1 = ExtResource("1_orvsj")
attack1_box = ExtResource("2_332ws")
attack1_with_pause_frame = false
attack1_with_stop = false
attack2_with_pause_frame = false
attack2_with_stop = false
mp_cost = 0
mp_sub_cost = false
@ -33,4 +31,4 @@ is_lock_x_move = true
range = 0.0
warn_type = 0
sprite_frames = ExtResource("5_j4rp7")
animation_name = "long_skill_stab01"
animation_name = "long_skill_stab02"

@ -0,0 +1,36 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=8 format=3 uid="uid://cahm6vjsskkc5"]
[ext_resource type="Resource" uid="uid://dmfr73m28vsqj" path="res://config/attack/sharp_normal_hit_back_hard.tres" id="1_o1kbx"]
[ext_resource type="Animation" uid="uid://dbm6ssy6cqb2d" path="res://resource/skill_animation/hero01_long_stab03.tres" id="2_jcwvc"]
[ext_resource type="Resource" uid="uid://diedb7vw7eyxp" path="res://config/attack_box/box_mid.tres" id="2_o1kbx"]
[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_cfg.gd" id="3_51oqr"]
[ext_resource type="Resource" uid="uid://rxt1emwats2v" path="res://config/character/bullet_hero01_long_stab.tres" id="4_hrq33"]
[ext_resource type="SpriteFrames" uid="uid://c6w03xigmrd31" path="res://resource/animation/character/hero01_long_skill03.aseprite" id="5_aqnpo"]
[ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="6_cys3s"]
[resource]
script = ExtResource("3_51oqr")
weapon = ExtResource("6_cys3s")
action = "attack_heavy"
name = ""
sub_character = ExtResource("4_hrq33")
skill_animation = ExtResource("2_jcwvc")
stance_from = 30
stance_to = 99
break_level = 3
is_charging = false
attack1 = ExtResource("1_o1kbx")
attack1_box = ExtResource("2_o1kbx")
attack1_with_stop = false
attack2_with_stop = false
mp_cost = 0
mp_sub_cost = false
free_lock = false
ignore_push = true
with_stop = false
is_lock_x = true
is_lock_x_move = true
range = 0.0
warn_type = 0
sprite_frames = ExtResource("5_aqnpo")
animation_name = "long_skill_stab02"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 16 KiB

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_combo0101"
length = 0.9
length = 0.8
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -36,8 +36,8 @@ 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, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"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]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_combo0102"
length = 0.9
length = 0.8
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -36,8 +36,8 @@ 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, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"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]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_common_skill0101"
length = 0.9
length = 0.8
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -36,8 +36,8 @@ 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, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"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]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_common_skill0102"
length = 0.9
length = 0.8
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -36,8 +36,8 @@ 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, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"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]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_common_skill03"
length = 0.9
length = 0.8
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -86,8 +86,8 @@ tracks/6/path = NodePath("View:frame")
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),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"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]
}

@ -61,10 +61,10 @@ 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.6),
"transitions": PackedFloat32Array(1, 1),
"times": PackedFloat32Array(0.2, 0.5, 0.6),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [2.0, 0.0]
"values": [1.0, 4.0, 0.0]
}
tracks/5/type = "method"
tracks/5/imported = false

@ -49,10 +49,10 @@ 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.2),
"transitions": PackedFloat32Array(1, 1),
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [6.0, 0.0]
"values": [2.0, 8.0, 6.0, 0.0]
}
tracks/4/type = "method"
tracks/4/imported = false
@ -61,11 +61,17 @@ tracks/4/path = NodePath("Battle")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"times": PackedFloat32Array(0.1, 0.2, 0.3),
"transitions": PackedFloat32Array(1, 1, 1),
"values": [{
"args": [],
"method": &"attack1"
}, {
"args": [],
"method": &"attack1"
}, {
"args": [],
"method": &"attack1"
}]
}
tracks/5/type = "method"
@ -94,3 +100,14 @@ tracks/6/keys = {
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6]
}
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(),
"transitions": PackedFloat32Array(),
"values": []
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_long_air_attack01"
length = 0.9
length = 0.8
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
@ -37,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.6),
"times": PackedFloat32Array(0, 0.2, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 3, 4]
@ -49,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.2, 0.3),
"times": PackedFloat32Array(0.1, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.0]
@ -61,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.1, 0.3),
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [1.0, 0.0]
@ -73,7 +73,7 @@ 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.4),
"times": PackedFloat32Array(0, 0.1, 0.3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0.1, 1.0, 0.0]
@ -85,7 +85,7 @@ tracks/6/path = NodePath("Battle")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0.2),
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
@ -99,7 +99,7 @@ tracks/7/path = NodePath("Effect")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.2),
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
@ -113,8 +113,8 @@ 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),
"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]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_long_air_attack02"
length = 0.9
length = 0.8
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
@ -37,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.5),
"times": PackedFloat32Array(0, 0.3, 0.4),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 3, 4]
@ -49,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.2, 0.3),
"times": PackedFloat32Array(0.1, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.0]
@ -61,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.1, 0.3),
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [1.0, 0.0]
@ -73,7 +73,7 @@ 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.4),
"times": PackedFloat32Array(0, 0.1, 0.3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0.1, 1.0, 0.0]
@ -85,7 +85,7 @@ tracks/6/path = NodePath("Battle")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0.2),
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
@ -99,7 +99,7 @@ tracks/7/path = NodePath("Effect")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.2),
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
@ -113,8 +113,8 @@ 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),
"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]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_long_air_attack03"
length = 0.9
length = 0.8
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
@ -37,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.5, 0.7),
"times": PackedFloat32Array(0, 0.3, 0.4, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [0, 1, 3, 4]
@ -49,7 +49,7 @@ tracks/3/path = NodePath("Battle")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.2),
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
@ -63,7 +63,7 @@ tracks/4/path = NodePath("Status:skill_float_speed")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.2, 0.3),
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [2.0, -10.0, 0.0]
@ -75,7 +75,7 @@ tracks/5/path = NodePath("Effect")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.2, 0.3),
"times": PackedFloat32Array(0.1, 0.2),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
@ -92,7 +92,7 @@ tracks/6/path = NodePath("Battle")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0.2),
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
@ -106,7 +106,7 @@ tracks/7/path = NodePath("Battle")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.3),
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
@ -123,8 +123,8 @@ 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),
"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]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_long_air_skill01"
length = 1.4
length = 1.3
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
@ -37,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.7, 1.3),
"times": PackedFloat32Array(0, 0.6, 1.3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 3, 4]
@ -49,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.6),
"times": PackedFloat32Array(0.2, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.0]
@ -61,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, 0.3, 0.6),
"times": PackedFloat32Array(0, 0.2, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0.0, 1.0, 0.0]
@ -73,7 +73,7 @@ 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),
"times": PackedFloat32Array(0.2, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"values": [{
"args": [],
@ -93,7 +93,7 @@ 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.6),
"times": PackedFloat32Array(0, 0.2, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0.1, 2.0, 0.0]
@ -105,7 +105,7 @@ tracks/7/path = NodePath("Effect")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.3, 0.5, 0.6),
"times": PackedFloat32Array(0.2, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"values": [{
"args": [],
@ -125,8 +125,8 @@ 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),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"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),
"transitions": PackedFloat32Array(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]
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_long_attack01"
length = 0.9
length = 0.8
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
@ -101,8 +101,8 @@ tracks/7/path = NodePath("View:frame")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/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),
"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]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_long_attack02"
length = 0.9
length = 0.8
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
@ -101,8 +101,8 @@ tracks/7/path = NodePath("View:frame")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/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),
"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]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_long_skill02"
length = 0.8
length = 0.7
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
@ -49,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, 0.2),
"times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.0]
@ -61,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.1, 0.2),
"times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [2.0, 0.0]
@ -73,7 +73,7 @@ tracks/5/path = NodePath("Status:skill_float_speed")
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),
"update": 1,
"values": [3.0, 0.0]
@ -85,7 +85,7 @@ tracks/6/path = NodePath("Battle")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0.3),
"times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
@ -99,7 +99,7 @@ tracks/7/path = NodePath("Effect")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.3),
"times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
@ -113,8 +113,8 @@ 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),
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7]
"values": [0, 1, 2, 3, 4, 5, 6]
}

@ -0,0 +1,121 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://dbm6ssy6cqb2d"]
[ext_resource type="SpriteFrames" uid="uid://c6w03xigmrd31" path="res://resource/animation/character/hero01_long_skill03.aseprite" id="1_uyr8p"]
[resource]
resource_name = "hero01_long_stab03"
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_uyr8p")]
}
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_skill_stab02"]
}
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, 0.8, 0.9),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
}
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.3, 0.5),
"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.1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.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.2),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"cast_sub_character"
}]
}
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.2),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"cast_attack_particle1"
}]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Status:skill_move_speed")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [2.0, 6.0, 0.0]
}
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.2),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"attack1"
}]
}

@ -4,7 +4,7 @@
[resource]
resource_name = "hero01_remote01"
length = 0.9
length = 0.8
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
@ -87,8 +87,8 @@ tracks/6/path = NodePath("View:frame")
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),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"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]
}

@ -1,4 +1,4 @@
[gd_resource type="AnimationLibrary" load_steps=56 format=3 uid="uid://croik07a1qko5"]
[gd_resource type="AnimationLibrary" load_steps=57 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"]
@ -51,6 +51,7 @@
[ext_resource type="Animation" uid="uid://cc086nunelk2q" path="res://resource/skill_animation/hero01_long_stab01.tres" id="43_0kutt"]
[ext_resource type="Animation" uid="uid://nhnwu6uccylr" path="res://resource/skill_animation/hero01_long_stab02.tres" id="44_c7cx4"]
[ext_resource type="Animation" uid="uid://2oxeq83bpofb" path="res://resource/skill_animation/monster03_slash02.tres" id="45_1vnur"]
[ext_resource type="Animation" uid="uid://dbm6ssy6cqb2d" path="res://resource/skill_animation/hero01_long_stab03.tres" id="45_hfosj"]
[ext_resource type="Animation" uid="uid://dyyt3nsvoye62" path="res://resource/skill_animation/monster03_slash01.tres" id="45_s1ue4"]
[ext_resource type="Animation" uid="uid://co8bivpp1fm6g" path="res://resource/skill_animation/monster03_slash03.tres" id="46_litb8"]
[ext_resource type="Animation" uid="uid://qcmj7d5pg6lw" path="res://resource/skill_animation/hero01_short_skill01.tres" id="50_1hav4"]
@ -102,6 +103,7 @@ _data = {
&"hero01_long_skill03": ExtResource("42_d2bqv"),
&"hero01_long_stab01": ExtResource("43_0kutt"),
&"hero01_long_stab02": ExtResource("44_c7cx4"),
&"hero01_long_stab03": ExtResource("45_hfosj"),
&"hero01_remote01": ExtResource("33_7i37k"),
&"hero01_short_attack01": ExtResource("11_n0dhn"),
&"hero01_short_attack02": ExtResource("11_h2vlt"),

@ -11,7 +11,7 @@
[node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")]
script = ExtResource("1_7oi2o")
blackboard = NodePath("@Node@25116")
blackboard = NodePath("@Node@25186")
[node name="SequenceComposite" type="Node" parent="."]
script = ExtResource("3_i33jf")

@ -1,20 +1,49 @@
[gd_scene load_steps=5 format=3 uid="uid://tr65aikkpp2e"]
[gd_scene load_steps=9 format=3 uid="uid://tr65aikkpp2e"]
[ext_resource type="Script" uid="uid://mvwcxqcetiqp" path="res://addons/beehave/nodes/beehave_tree.gd" id="1_6wcp2"]
[ext_resource type="Script" uid="uid://cugftmuc8v30c" path="res://addons/beehave/nodes/composites/sequence.gd" id="2_0p8p1"]
[ext_resource type="Script" uid="uid://cnw25wdsd3c76" path="res://script/ai/action/action_wait.gd" id="3_irjra"]
[ext_resource type="Script" uid="uid://dcqq2mursvw5m" path="res://addons/beehave/nodes/decorators/succeeder.gd" id="3_irjra"]
[ext_resource type="Script" uid="uid://csd1yh0ruy3yu" path="res://script/ai/action/action_wait_tick.gd" id="4_2fqct"]
[ext_resource type="Script" uid="uid://ddcaceywxwt20" path="res://script/ai/action/action_attack1.gd" id="4_klwmg"]
[ext_resource type="Script" uid="uid://bhxaiqao7nkth" path="res://script/ai/action/action_check_hit_wall.gd" id="6_7sn8v"]
[ext_resource type="Script" uid="uid://ci3tg5fkdn16f" path="res://script/ai/action/action_destroy.gd" id="7_dfpyy"]
[ext_resource type="Script" uid="uid://scokoi8g3sm8" path="res://script/ai/action/action_attack2.gd" id="7_klwmg"]
[node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")]
script = ExtResource("1_6wcp2")
blackboard = NodePath("@Node@25116")
blackboard = NodePath("@Node@25188")
[node name="SequenceComposite" type="Node" parent="."]
script = ExtResource("2_0p8p1")
[node name="ActionWait" type="Node" parent="SequenceComposite"]
[node name="AlwaysSucceedDecorator" type="Node" parent="SequenceComposite"]
script = ExtResource("3_irjra")
wait_time = 0.05
metadata/_custom_type_script = ExtResource("3_irjra")
[node name="ActionAttack1" type="Node" parent="SequenceComposite"]
[node name="保持攻击" type="Node" parent="SequenceComposite/AlwaysSucceedDecorator"]
script = ExtResource("2_0p8p1")
[node name="ActionWaitTick" type="Node" parent="SequenceComposite/AlwaysSucceedDecorator/保持攻击"]
script = ExtResource("4_2fqct")
metadata/_custom_type_script = ExtResource("4_2fqct")
[node name="ActionAttack1" type="Node" parent="SequenceComposite/AlwaysSucceedDecorator/保持攻击"]
script = ExtResource("4_klwmg")
[node name="AlwaysSucceedDecorator2" type="Node" parent="SequenceComposite"]
script = ExtResource("3_irjra")
metadata/_custom_type_script = ExtResource("3_irjra")
[node name="检测命中墙壁并销毁" type="Node" parent="SequenceComposite/AlwaysSucceedDecorator2"]
script = ExtResource("2_0p8p1")
[node name="ActionCheckHitWall" type="Node" parent="SequenceComposite/AlwaysSucceedDecorator2/检测命中墙壁并销毁"]
script = ExtResource("6_7sn8v")
metadata/_custom_type_script = ExtResource("6_7sn8v")
[node name="ActionAttack2" type="Node" parent="SequenceComposite/AlwaysSucceedDecorator2/检测命中墙壁并销毁"]
script = ExtResource("7_klwmg")
metadata/_custom_type_script = ExtResource("7_klwmg")
[node name="ActionDestroy" type="Node" parent="SequenceComposite/AlwaysSucceedDecorator2/检测命中墙壁并销毁"]
script = ExtResource("7_dfpyy")

@ -11,7 +11,7 @@
[node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")]
script = ExtResource("1_bbyao")
blackboard = NodePath("@Node@25117")
blackboard = NodePath("@Node@25187")
[node name="SequenceComposite" type="Node" parent="."]
script = ExtResource("2_04nig")

@ -3,8 +3,8 @@
[ext_resource type="Script" uid="uid://cdvtgxvof33j3" path="res://script/character/character.gd" id="1_tonbs"]
[ext_resource type="Script" uid="uid://cms637d0jt6sk" path="res://script/character/hitbox.gd" id="2_6xf87"]
[ext_resource type="Script" uid="uid://bfi4gneebe3oq" path="res://script/character/status.gd" id="2_txdip"]
[ext_resource type="SpriteFrames" uid="uid://c6w03xigmrd31" path="res://resource/animation/character/hero01_long_skill03.aseprite" id="4_53b4u"]
[ext_resource type="Script" uid="uid://cnaqs44siwa45" path="res://script/character/move.gd" id="4_66r53"]
[ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="4_sox5o"]
[ext_resource type="Script" uid="uid://c247mf44qb3uf" path="res://script/character/view.gd" id="4_vijjv"]
[ext_resource type="Script" uid="uid://c24is3uqqcmcn" 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"]
@ -137,8 +137,8 @@ gi_mode = 0
pixel_size = 0.02
double_sided = false
texture_filter = 0
sprite_frames = ExtResource("4_53b4u")
animation = &"long_skill_stab01"
sprite_frames = ExtResource("4_sox5o")
animation = &"long_air_attack03"
script = ExtResource("4_vijjv")
[node name="Move" type="Node3D" parent="."]
@ -187,6 +187,7 @@ script = ExtResource("14_gua01")
[node name="Throw" type="AnimatedSprite3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0.4, 0)
visible = false
pixel_size = 0.02
sprite_frames = ExtResource("15_70jx1")

@ -158,7 +158,7 @@ emitting = false
amount = 1
lifetime = 0.2
one_shot = true
speed_scale = 2.5
speed_scale = 2.8
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_eppsm")
@ -174,7 +174,7 @@ emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.8
speed_scale = 2.8
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_g33uw")
@ -190,7 +190,7 @@ emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.8
speed_scale = 2.8
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_k158j")

@ -1,7 +1,7 @@
[gd_scene load_steps=31 format=3 uid="uid://c2uyg7ktya04f"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_wk0x7"]
[ext_resource type="Shader" path="res://render/shader/effect_slash.gdshader" id="2_jb5vy"]
[ext_resource type="Script" uid="uid://dxoik7jm7xm2q" path="res://script/effect/particle.gd" id="1_wk0x7"]
[ext_resource type="Shader" uid="uid://b4x52xwsln0sq" path="res://render/shader/effect_slash.gdshader" id="2_jb5vy"]
[ext_resource type="Texture2D" uid="uid://4cxxxxdbbugc" path="res://render/texture/particle/gradient/gradient1.png" id="3_lkmel"]
[ext_resource type="Texture2D" uid="uid://c4byf37he3mjt" path="res://render/texture/particle/noise/noise1.png" id="3_t53xp"]
[ext_resource type="Texture2D" uid="uid://b5nr3mq3u5tjn" path="res://render/texture/particle/mask/mask13.png" id="5_637ga"]
@ -35,7 +35,7 @@ metadata/_snap_enabled = true
curve = SubResource("Curve_uh8b1")
[sub_resource type="Curve" id="Curve_onba8"]
max_value = 1.1
_limits = [0.0, 1.1, 0.0, 1.0]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1.1), 0.0, 0.0, 0, 0]
point_count = 2
@ -78,7 +78,7 @@ metadata/_snap_enabled = true
curve = SubResource("Curve_56tu5")
[sub_resource type="Curve" id="Curve_ixsbt"]
max_value = 1.1
_limits = [0.0, 1.1, 0.0, 1.0]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1.1), 0.0, 0.0, 0, 0]
point_count = 2
@ -117,6 +117,7 @@ emission_ring_axis = Vector3(0, 1, 0)
emission_ring_height = 0.2
emission_ring_radius = 1.25
emission_ring_inner_radius = 1.0
emission_ring_cone_angle = 90.0
radial_velocity_min = 2.99998
radial_velocity_max = 3.99998
radial_velocity_curve = SubResource("CurveTexture_stugk")

@ -1,7 +1,7 @@
[gd_scene load_steps=18 format=3 uid="uid://cp5eaiqn5u2tu"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_xld4w"]
[ext_resource type="Shader" path="res://render/shader/effect_slash.gdshader" id="2_x0g1q"]
[ext_resource type="Script" uid="uid://dxoik7jm7xm2q" path="res://script/effect/particle.gd" id="1_xld4w"]
[ext_resource type="Shader" uid="uid://b4x52xwsln0sq" path="res://render/shader/effect_slash.gdshader" id="2_x0g1q"]
[ext_resource type="Texture2D" uid="uid://4cxxxxdbbugc" path="res://render/texture/particle/gradient/gradient1.png" id="3_poysl"]
[ext_resource type="Texture2D" uid="uid://c4byf37he3mjt" path="res://render/texture/particle/noise/noise1.png" id="4_do65m"]
[ext_resource type="Texture2D" uid="uid://b5nr3mq3u5tjn" path="res://render/texture/particle/mask/mask13.png" id="5_4etjt"]
@ -54,6 +54,7 @@ emission_ring_axis = Vector3(0, 1, 0)
emission_ring_height = 0.0
emission_ring_radius = 1.0
emission_ring_inner_radius = 0.9
emission_ring_cone_angle = 90.0
direction = Vector3(0, 1, 1)
radial_velocity_min = 3.99998
radial_velocity_max = 3.99998

@ -1,7 +1,7 @@
[gd_scene load_steps=15 format=3 uid="uid://pyxtmwjjo8ch"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_dowcy"]
[ext_resource type="Shader" path="res://render/shader/effect_slash_down.gdshader" id="2_teaun"]
[ext_resource type="Script" uid="uid://dxoik7jm7xm2q" path="res://script/effect/particle.gd" id="1_dowcy"]
[ext_resource type="Shader" uid="uid://dw1itkg00sr2o" path="res://render/shader/effect_slash_down.gdshader" id="2_teaun"]
[ext_resource type="Texture2D" uid="uid://4cxxxxdbbugc" path="res://render/texture/particle/gradient/gradient1.png" id="3_xsyva"]
[ext_resource type="Texture2D" uid="uid://c4byf37he3mjt" path="res://render/texture/particle/noise/noise1.png" id="4_u6mi0"]
[ext_resource type="Texture2D" uid="uid://l5qeh3owctpm" path="res://render/texture/particle/mask/mask15.png" id="5_tixsx"]

@ -0,0 +1,94 @@
[gd_scene load_steps=17 format=3 uid="uid://bh3ydvhkb4771"]
[ext_resource type="Script" uid="uid://dxoik7jm7xm2q" path="res://script/effect/particle.gd" id="1_n7rn2"]
[ext_resource type="Shader" uid="uid://b4x52xwsln0sq" path="res://render/shader/effect_slash.gdshader" id="2_eydbp"]
[ext_resource type="Texture2D" uid="uid://4cxxxxdbbugc" path="res://render/texture/particle/gradient/gradient1.png" id="3_xand7"]
[ext_resource type="Texture2D" uid="uid://c4byf37he3mjt" path="res://render/texture/particle/noise/noise1.png" id="4_f8gw0"]
[ext_resource type="Texture2D" uid="uid://vy3c8opc6uju" path="res://render/texture/particle/mask/mask17.png" id="5_nj1by"]
[ext_resource type="Texture2D" uid="uid://dd3e7ol8qa5eq" path="res://render/texture/particle/noise/noise2.png" id="6_dq6ln"]
[ext_resource type="ArrayMesh" uid="uid://bhqhfenm05vo2" path="res://render/mesh/cone1.obj" id="7_dw3eu"]
[ext_resource type="Texture2D" uid="uid://bn6fmxdjlp3wf" path="res://render/texture/particle/mask/mask19.png" id="8_gc3w6"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_n7rn2"]
render_priority = 0
shader = ExtResource("2_eydbp")
shader_parameter/tex_main = ExtResource("4_f8gw0")
shader_parameter/tex_noise = ExtResource("6_dq6ln")
shader_parameter/tex_mask = ExtResource("5_nj1by")
shader_parameter/tex_gradient = ExtResource("3_xand7")
[sub_resource type="Curve" id="Curve_dq6ln"]
_limits = [0.0, 1.1, 0.0, 1.0]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1.1), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_dw3eu"]
curve = SubResource("Curve_dq6ln")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_gc3w6"]
particle_flag_rotate_y = true
angle_min = 180.0
angle_max = 180.0
angular_velocity_min = -720.0
angular_velocity_max = -720.0
gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_dw3eu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lhosn"]
render_priority = 0
shader = ExtResource("2_eydbp")
shader_parameter/tex_main = ExtResource("4_f8gw0")
shader_parameter/tex_noise = ExtResource("6_dq6ln")
shader_parameter/tex_mask = ExtResource("8_gc3w6")
shader_parameter/tex_gradient = ExtResource("3_xand7")
[sub_resource type="Curve" id="Curve_n7rn2"]
_limits = [0.0, 1.1, 0.0, 1.0]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1.1), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_eydbp"]
curve = SubResource("Curve_n7rn2")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_xand7"]
particle_flag_rotate_y = true
angle_min = 180.0
angle_max = 180.0
angular_velocity_min = -720.0
angular_velocity_max = -720.0
gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_eydbp")
[node name="Particle" type="Node3D"]
script = ExtResource("1_n7rn2")
[node name="Slash" type="GPUParticles3D" parent="."]
transform = Transform3D(-4.37114e-08, -1.5, 0, 1, -6.55671e-08, 0, 0, 0, 1, 0, 0, 0)
layers = 512
material_override = SubResource("ShaderMaterial_n7rn2")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 5.0
one_shot = true
seed = 1352074707
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_gc3w6")
draw_pass_1 = ExtResource("7_dw3eu")
[node name="Slash2" type="GPUParticles3D" parent="."]
transform = Transform3D(-2.62268e-08, -0.6, 0, 0.6, -2.62268e-08, 0, 0, 0, 0.6, 0, 0, 0)
layers = 512
material_override = SubResource("ShaderMaterial_lhosn")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 5.0
one_shot = true
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_xand7")
draw_pass_1 = ExtResource("7_dw3eu")

@ -0,0 +1,10 @@
[gd_scene load_steps=3 format=3 uid="uid://c8w1be7y1qejq"]
[ext_resource type="Script" uid="uid://dxoik7jm7xm2q" path="res://script/effect/particle.gd" id="1_q4l8b"]
[ext_resource type="PackedScene" uid="uid://bh3ydvhkb4771" path="res://scene/effect/particle/_particle_stab3.tscn" id="2_iixv7"]
[node name="Particle" type="Node3D"]
script = ExtResource("1_q4l8b")
[node name="Particle" parent="." instance=ExtResource("2_iixv7")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0.587818, 0, 0)

@ -14,7 +14,6 @@ const drag_air: float = 5
#关卡
const size_basic: Vector3 = Vector3(12.8, 5.12, 7.68)
#ui
const weapon_hide_duration: float = 2.0
const weapon_anime_duration: float = 0.1
#pt
const pt_mp_damage_rate: float = 0.5

@ -1,7 +1,14 @@
extends Action
class_name ActionDestroy
var live_time: float = 0.05
func run(character: Character, blackboard: Blackboard) -> int:
Global.character_mgr.destroy_character(character.id())
return SUCCESS
live_time -= get_physics_process_delta_time()
if live_time > 0:
return RUNNING
else:
Global.character_mgr.destroy_character(character.id())
return SUCCESS

@ -15,8 +15,8 @@ func attack1() -> void:
if not status.skill_cfg:
return
var attack_info: Struct.AttackInfo = Struct.AttackInfo.new()
attack_info.attack = status.skill_cfg.get_attack1()
attack_info.attack_box = status.skill_cfg.get_attack1_box()
attack_info.attack = status.skill_cfg.attack1
attack_info.attack_box = status.skill_cfg.attack1_box
attack_info.attack_dir = status.skill_dir
attack_info.with_stop = status.skill_cfg.attack1_with_stop
attack_info.ignore_push = status.skill_cfg.ignore_push
@ -27,8 +27,8 @@ func attack2() -> void:
if not status.skill_cfg:
return
var attack_info: Struct.AttackInfo = Struct.AttackInfo.new()
attack_info.attack = status.skill_cfg.get_attack2()
attack_info.attack_box = status.skill_cfg.get_attack2_box()
attack_info.attack = status.skill_cfg.attack2
attack_info.attack_box = status.skill_cfg.attack2_box
attack_info.attack_dir = status.skill_dir
attack_info.with_stop = status.skill_cfg.attack2_with_stop
attack_info.ignore_push = status.skill_cfg.ignore_push
@ -37,21 +37,26 @@ func attack2() -> void:
func character_attack1() -> void:
var attack_info: Struct.AttackInfo = Struct.AttackInfo.new()
attack_info.attack = status.cfg.get_attack1()
attack_info.attack_box = status.cfg.get_attack1_box()
attack_info.attack = status.cfg.attack1
attack_info.attack_box = status.cfg.attack1_box
attack_info.attack_dir = status.move_dir
add_attack(attack_info)
func character_attack2() -> void:
print("character_attack2")
var attack_info: Struct.AttackInfo = Struct.AttackInfo.new()
attack_info.attack = status.cfg.get_attack2()
attack_info.attack_box = status.cfg.get_attack2_box()
attack_info.attack = status.cfg.attack2
attack_info.attack_box = status.cfg.attack2_box
attack_info.attack_dir = status.move_dir
add_attack(attack_info)
func add_attack(attack_info: Struct.AttackInfo) -> void:
if not attack_info.attack or not attack_info.attack_box:
return
if character.has_buff("hit_ground_cd") and attack_info.attack == ResourceManager.cfg_attack_rebound:
return
var result: Character
if attack_info.attack_box.is_throw:
var target: Character = Global.character_mgr.get_character(status.throw_target)
@ -76,6 +81,7 @@ func on_attack_character(result: Character, attack_info: Struct.AttackInfo) -> v
func settle(from: int, to: int, attack_info: Struct.AttackInfo) -> Struct.HitResultInfo:
print("settle",from,to)
var attack: AttackCfg = attack_info.attack
var attack_dir: Vector2 = attack_info.attack_dir
var with_stop: bool = attack_info.with_stop
@ -326,7 +332,7 @@ func settle(from: int, to: int, attack_info: Struct.AttackInfo) -> Struct.HitRes
#卡帧
if not is_bullet:
character_from.set_pause_time(pause_time)
character_to.set_pause_time(pause_time)
character_to.set_pause_time(pause_time)
#全局特效
var has_global_effect: bool = character_from.is_player() or character_to.is_player()

@ -217,8 +217,8 @@ func set_effect_lock(value: bool):
effect.set_effect_lock(value)
func set_target(target: int):
set_status("target", target)
func set_target(target_new: int):
set_status("target", target_new)
set_status("is_lock", false)
@ -226,13 +226,13 @@ func set_is_lock(value: bool):
set_status("is_lock", value)
func cast_particle(resource: Resource, is_attach: bool, offset: Vector3 = Vector3.ZERO, scale: Vector3 = Vector3.ONE):
effect.cast_particle(resource, is_attach, offset, scale)
func cast_particle(resource: Resource, is_attach: bool, offset: Vector3 = Vector3.ZERO, effect_scale: Vector3 = Vector3.ONE):
effect.cast_particle(resource, is_attach, offset, effect_scale)
func get_character_owner() -> Character:
var owner: Character = Global.character_mgr.get_character(status.owner_id) as Character
if owner: return owner
var character_owner: Character = Global.character_mgr.get_character(status.owner_id) as Character
if character_owner: return character_owner
return self

@ -128,8 +128,9 @@ func update_move_check(delta) -> bool:
normal = normal.normalized()
var normal_speed: float = velocity.dot(normal)
if status.is_stagger:
if normal_speed < -6 and normal.y >= 0:
if normal_speed < -6 and normal.y >= 0 and not buff.has_buff("hit_ground_cd"):
#墙体互动
buff.add_buff("hit_ground_cd", 0.1)
Global.effect_mgr.cast_particle(ResourceManager.particle_hit_ground_heavy, character.pos(), normal)
var velocity_new: Vector3 = velocity - normal * normal_speed * 2
var attack_dir: Vector2 = Vector2(velocity_new.x, velocity_new.z).normalized()

@ -143,8 +143,6 @@ func cast_skill(cfg: SkillCfg, cast_dir: Vector2, action_key: String = ""):
if cfg.is_charging:
buff.add_buff("charging", -1)
if cast_dir.x != 0: status.is_right = cast_dir.x > 0
if cfg.with_stop:
move.stop()
#预警特效
match cfg.warn_type:
Enum.ESkillWarnType.Normal: character.cast_particle(ResourceManager.particle_warn_normal, true)
@ -229,7 +227,7 @@ func _frame_back(frame_offset: int) -> void:
var frame: int = int(current_animation_position / Setting.animation_frame_rate) - frame_offset
frame = max(0, frame)
var frame_pos: float = frame * Setting.animation_frame_rate
seek(frame_pos- Setting.animation_frame_rate / 5, true, true)
seek(frame_pos + 0.01, true, true)
func on_cast_sub_character() -> void:

@ -32,16 +32,16 @@ class_name CharacterCfg
var core_cfg_list: Array[CoreCfg]
func get_attack1()->AttackCfg: return attack1 if attack1 else ResourceManager.cfg_attack_normal
func get_attack1()->AttackCfg: return attack1
func get_attack1_box()->AttackBoxCfg: return attack1_box if attack1_box else ResourceManager.cfg_attack_box_normal
func get_attack1_box()->AttackBoxCfg: return attack1_box
func get_attack2()->AttackCfg: return attack2 if attack2 else ResourceManager.cfg_attack_normal
func get_attack2()->AttackCfg: return attack2
func get_attack2_box()->AttackBoxCfg: return attack2_box if attack2_box else ResourceManager.cfg_attack_box_normal
func get_attack2_box()->AttackBoxCfg: return attack2_box
func get_particle()->Resource:

@ -24,7 +24,6 @@ var refresh_animation: Callable = check_animation
@export var mp_sub_cost: bool
@export var free_lock: bool
@export var ignore_push: bool
@export var with_stop: bool = false
@export var is_lock_x: bool = true
@export var is_lock_x_move: bool = false
@export_group("辅助参数")
@ -58,16 +57,16 @@ func check_animation() -> bool:
return true
func get_attack1()->AttackCfg: return attack1 if attack1 else ResourceManager.cfg_attack_normal
func get_attack1()->AttackCfg: return attack1
func get_attack1_box()->AttackBoxCfg: return attack1_box if attack1_box else ResourceManager.cfg_attack_box_normal
func get_attack1_box()->AttackBoxCfg: return attack1_box
func get_attack2()->AttackCfg: return attack2 if attack2 else ResourceManager.cfg_attack_normal
func get_attack2()->AttackCfg: return attack2
func get_attack2_box()->AttackBoxCfg: return attack2_box if attack2_box else ResourceManager.cfg_attack_box_normal
func get_attack2_box()->AttackBoxCfg: return attack2_box
func get_attack_particle(index: int)->Resource:

@ -9,8 +9,14 @@ var rate: float
func _ready():
lifetime_now = lifetime
on_ready()
for child in get_children():
if child is EffectBase:
if child.lifetime > lifetime:
lifetime = child.lifetime
else:
continue
lifetime_now = lifetime
func _process(delta) -> void:
@ -27,7 +33,12 @@ func _process(delta) -> void:
func set_pause(is_pause_set: bool):
is_pause = is_pause_set
on_set_pause(is_pause_set)
for child in get_children():
if child is EffectBase:
child.set_pause(is_pause)
else:
continue
on_set_pause()
func on_ready(): pass
@ -36,4 +47,4 @@ func on_ready(): pass
func on_process(delta: float): pass
func on_set_pause(is_pause_set: bool): pass
func on_set_pause(): pass

@ -4,46 +4,25 @@ class_name Particle
@export var is_billboard: bool
@export var is_ground: bool
var sub_particle_list: Array[Particle] = []
var particle_list: Array[GPUParticles3D] = []
var speed_scale_list: Array[float] = []
var decal_list: Array[ParticleDecal] = []
var sub_emitter_list: Array[ParticleSubEmitter] = []
var particle_list: Array[GPUParticles3D] = []
var particle_speed_scale_list: Array[float] = []
func on_ready():
for child in get_children():
if child is Particle:
sub_particle_list.append(child)
elif child is GPUParticles3D:
if child is GPUParticles3D:
var particle: GPUParticles3D = child as GPUParticles3D
particle_list.append(particle)
speed_scale_list.append(particle.speed_scale)
particle_speed_scale_list.append(particle.speed_scale)
particle.restart()
elif child is ParticleDecal:
child.on_ready()
decal_list.append(child)
elif child is ParticleSubEmitter:
sub_emitter_list.append(child)
else:
continue
if child.lifetime > lifetime_now:
lifetime_now = child.lifetime
if child.lifetime > lifetime:
lifetime = child.lifetime
for particle: GPUParticles3D in particle_list:
if particle.lifetime > lifetime_now:
lifetime_now = particle.lifetime
func on_process(delta: float):
for decal: ParticleDecal in decal_list:
decal.on_process(delta)
func on_set_pause(is_pause_set: bool):
func on_set_pause():
for i in range(len(particle_list)):
var particle: GPUParticles3D = particle_list[i]
var speed_scale: float = speed_scale_list[i]
var speed_scale: float = particle_speed_scale_list[i]
particle.speed_scale = 0 if is_pause else speed_scale
for sub_particle: Particle in sub_particle_list:
sub_particle.set_pause(is_pause_set)

@ -9,41 +9,32 @@ var weapon_list: Array
var weapon_index: int
var weapon_index_dir: int
var weapon_index_rate: float
var hide_duration: float
func _process(delta) -> void:
if not visible:
return
if weapon_index_dir:
item_lerp(weapon_index_dir, weapon_index_rate)
hide_duration = Setting.weapon_hide_duration
return
item_lerp(weapon_index_dir, 1)
hide_duration -= delta
if hide_duration <= 0:
for item in weapon_item_list:
remove_child(item)
weapon_item_list.clear()
visible = false
func on_weapon_list_changed(list: Array): weapon_list = list
func on_weapon_list_changed(list: Array):
weapon_list = list
init_weapon_item()
func on_weapon_index_changed(index: int): weapon_index = index
func on_weapon_index_changed(index: int):
weapon_index = index
func on_weapon_index_change_rate_changed(rate: float): weapon_index_rate = rate
func on_weapon_index_change_rate_changed(rate: float):
weapon_index_rate = rate
func on_weapon_index_change_dir_changed(dir: int) -> void:
weapon_index_dir = dir
if not weapon_index_dir:
return
if not visible:
visible = true
for i in range(5): append()
else:
if dir > 0:
push_back()
@ -51,7 +42,6 @@ func on_weapon_index_change_dir_changed(dir: int) -> void:
else:
push_front()
pop_back()
hide_duration = Setting.weapon_hide_duration
func append(): weapon_item_list.append(create_weapon_item(len(weapon_item_list)-2+weapon_index_dir))
@ -68,6 +58,11 @@ func pop_front(): remove_child(weapon_item_list.pop_front())
func pop_back(): remove_child(weapon_item_list.pop_back())
func init_weapon_item():
for item in weapon_item_list:
remove_child(item)
weapon_item_list.clear()
for i in range(5): append()
func create_weapon_item(offset: int)->WeaponItemSub:
var weapon_count: int = len(weapon_list)

Loading…
Cancel
Save