闪避优化

master
chendian 10 months ago
parent 9f1ce2da8b
commit 4ca24f708c

@ -1,5 +1,6 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=4 format=3 uid="uid://cyqiiar75vf87"]
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=5 format=3 uid="uid://cyqiiar75vf87"]
[ext_resource type="Resource" uid="uid://djuch6s4ycecd" path="res://config/skill_player_basic/hero01_basic_air_flash_back.tres" id="1_2dm0o"]
[ext_resource type="Script" path="res://script/config/skill_weapon_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"]
@ -16,7 +17,11 @@ stance_from = 101
stance_to = 10
break_level = 1
is_charging = false
mp_cost = 0
mp_cost = 1
warn_type = 0
with_stop = false
is_lock_x = true
back_up_skill_cfg = ExtResource("1_2dm0o")
refresh_animation = false
sprite_frames = ExtResource("3_ciqr7")
animation_name = "basic_air_flash"

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=4 format=3 uid="uid://djuch6s4ycecd"]
[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="1_pv5y3"]
[ext_resource type="Animation" uid="uid://5gj6dy1eysha" path="res://resource/skill_animation/hero01_basic_air_flash_back.tres" id="2_o1a71"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="3_ti2km"]
[resource]
script = ExtResource("1_pv5y3")
action = "none"
name = ""
skill_animation = ExtResource("2_o1a71")
range = 0.0
free_lock = true
ignore_push = true
stance_from = 101
stance_to = 10
break_level = 1
is_charging = false
mp_cost = 0
warn_type = 0
with_stop = false
is_lock_x = null
refresh_animation = false
sprite_frames = ExtResource("3_ti2km")
animation_name = "basic_air_flash"

@ -1,6 +1,7 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=4 format=3 uid="uid://cyqiiar75vf87"]
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=5 format=3 uid="uid://cyqiiar75vf87"]
[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="1_raqfe"]
[ext_resource type="Resource" uid="uid://copd3b35mo2vn" path="res://config/skill_player_basic/hero01_basic_flash_back.tres" id="1_rkdn8"]
[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"]
@ -16,7 +17,11 @@ stance_from = 100
stance_to = 0
break_level = 1
is_charging = false
mp_cost = 0
mp_cost = 1
warn_type = 0
with_stop = false
is_lock_x = true
back_up_skill_cfg = ExtResource("1_rkdn8")
refresh_animation = false
sprite_frames = ExtResource("3_i6jjr")
animation_name = "basic_flash"

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=4 format=3 uid="uid://copd3b35mo2vn"]
[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="1_obmuu"]
[ext_resource type="Animation" uid="uid://bl2o7f7akp6if" path="res://resource/skill_animation/hero01_basic_flash_back.tres" id="2_cf3hj"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="3_yxy1c"]
[resource]
script = ExtResource("1_obmuu")
action = "none"
name = ""
skill_animation = ExtResource("2_cf3hj")
range = 0.0
free_lock = true
ignore_push = true
stance_from = 100
stance_to = 0
break_level = 1
is_charging = false
mp_cost = 0
warn_type = 0
with_stop = false
is_lock_x = null
refresh_animation = false
sprite_frames = ExtResource("3_yxy1c")
animation_name = "basic_flash"

@ -25,6 +25,7 @@ is_charging = false
mp_cost = 0
warn_type = 0
with_stop = false
is_lock_x = true
refresh_animation = false
sprite_frames = ExtResource("4_ymqrn")
animation_name = "fist_attack01"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -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.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [8.0, 0.0]

@ -0,0 +1,120 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://5gj6dy1eysha"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="1_ayygu"]
[resource]
resource_name = "hero01_basic_air_flash_back"
length = 0.8
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_ayygu")]
}
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.4, 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.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -0.5]
}
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, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [4.0, 0.0]
}
tracks/6/type = "method"
tracks/6/imported = false
tracks/6/enabled = false
tracks/6/path = NodePath("Effect")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0.1),
"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.3),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"stop"
}]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = false
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]
}

@ -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.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [8.0, 0.0]

@ -0,0 +1,120 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://bl2o7f7akp6if"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="1_j0lu6"]
[resource]
resource_name = "hero01_basic_flash_back"
length = 0.8
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_j0lu6")]
}
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.4, 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.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -0.5]
}
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, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [4.0, 0.0]
}
tracks/6/type = "method"
tracks/6/imported = false
tracks/6/enabled = false
tracks/6/path = NodePath("Effect")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0.1),
"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.3),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"stop"
}]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = false
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]
}

@ -1,4 +1,4 @@
[gd_resource type="AnimationLibrary" load_steps=49 format=3 uid="uid://croik07a1qko5"]
[gd_resource type="AnimationLibrary" load_steps=51 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"]
@ -17,6 +17,7 @@
[ext_resource type="Animation" uid="uid://c8yueqe7rjn60" path="res://resource/skill_animation/hero01_long_attack03.tres" id="3_g8q4d"]
[ext_resource type="Animation" uid="uid://cm4c0rwh0mqn4" path="res://resource/skill_animation/hero01_common_skill0103.tres" id="3_ily05"]
[ext_resource type="Animation" uid="uid://c6mk8tfdpniys" path="res://resource/skill_animation/hero01_fist_attack03.tres" id="3_lo6yb"]
[ext_resource type="Animation" uid="uid://5gj6dy1eysha" path="res://resource/skill_animation/hero01_basic_air_flash_back.tres" id="3_qmf5w"]
[ext_resource type="Animation" uid="uid://dk1o3gqhjmuvh" path="res://resource/skill_animation/hero01_long_attack04.tres" id="4_36e6x"]
[ext_resource type="Animation" uid="uid://6u3dhxly760l" path="res://resource/skill_animation/hero01_fist_attack04.tres" id="4_087em"]
[ext_resource type="Animation" uid="uid://cvxifa2uac5oc" path="res://resource/skill_animation/hero01_combo0102.tres" id="4_dc8mt"]
@ -24,6 +25,7 @@
[ext_resource type="Animation" uid="uid://dxgqn5fa7aokj" path="res://resource/skill_animation/hero01_fist_air_skill01.tres" id="5_df32u"]
[ext_resource type="Animation" uid="uid://bjnkrte7660pt" path="res://resource/skill_animation/hero01_long_skill01.tres" id="5_kt0qw"]
[ext_resource type="Animation" uid="uid://cqc30d5uqi2my" path="res://resource/skill_animation/hero01_combo0103.tres" id="5_o144c"]
[ext_resource type="Animation" uid="uid://bl2o7f7akp6if" path="res://resource/skill_animation/hero01_basic_flash_back.tres" id="5_u1e1p"]
[ext_resource type="Animation" uid="uid://d1f7iluo8ejne" path="res://resource/skill_animation/hero01_common_skill03.tres" id="7_05hi3"]
[ext_resource type="Animation" uid="uid://iprcbf277rf4" path="res://resource/skill_animation/hero01_long_skill02.tres" id="7_ui68j"]
[ext_resource type="Animation" uid="uid://chj3rlh6krt66" path="res://resource/skill_animation/hero01_fist_air_attack01.tres" id="8_svst8"]
@ -52,7 +54,9 @@
[resource]
_data = {
"hero01_basic_air_flash": ExtResource("1_np5aa"),
"hero01_basic_air_flash_back": ExtResource("3_qmf5w"),
"hero01_basic_flash": ExtResource("1_46f01"),
"hero01_basic_flash_back": ExtResource("5_u1e1p"),
"hero01_combo0101": ExtResource("3_dkedy"),
"hero01_combo0102": ExtResource("4_dc8mt"),
"hero01_combo0103": ExtResource("5_o144c"),

@ -21,7 +21,7 @@
[ext_resource type="Script" path="res://script/manager/item_manager.gd" id="12_xwufn"]
[ext_resource type="Script" path="res://script/character/status.gd" id="18_nr8sb"]
[ext_resource type="SpriteFrames" uid="uid://2cb8lknel0ih" path="res://resource/animation/character/basic_move.aseprite" id="20_4ni1a"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="21_pgtwe"]
[ext_resource type="SpriteFrames" uid="uid://jpxh0jr8wp8g" path="res://resource/animation/character/hero01_basic.aseprite" id="21_mlmn1"]
[ext_resource type="AnimationLibrary" uid="uid://croik07a1qko5" path="res://resource/skill_animation_library/animation_library.tres" id="22_qyapv"]
[ext_resource type="Script" path="res://script/character/skill.gd" id="23_783eu"]
[ext_resource type="Script" path="res://script/character/move.gd" id="25_d520l"]
@ -273,8 +273,8 @@ pixel_size = 0.02
double_sided = false
alpha_cut = 2
texture_filter = 0
sprite_frames = ExtResource("21_pgtwe")
animation = &"fist_attack01"
sprite_frames = ExtResource("21_mlmn1")
animation = &"basic_flash"
[node name="Throw" type="AnimatedSprite3D" parent="EditorTool/Character"]
unique_name_in_owner = true

@ -120,9 +120,10 @@ func update_break_by_level(break_level: Enum.EBreakLevel) -> bool:
if not skill.cast_skill_check(skill_cfg, break_level):
continue
#施放技能扣除mp
if not skill.cast_skill_mp_cost(skill_cfg):
var skill_cfg_with_cost: SkillCfg = skill.cast_skill_mp_cost(skill_cfg)
if not skill_cfg_with_cost:
continue
skill.cast_skill(skill_cfg, status.input_dir, input.action)
skill.cast_skill(skill_cfg_with_cost, status.input_dir, input.action)
refresh_input(i)
return true
return false

@ -69,12 +69,14 @@ func cast_skill_check(cfg: SkillCfg, break_level: Enum.EBreakLevel = Enum.EBreak
return true
func cast_skill_mp_cost(cfg: SkillCfg) -> bool:
func cast_skill_mp_cost(cfg: SkillCfg) -> SkillCfg:
if status.mp < cfg.mp_cost:
#todo mp不足
return false
if cfg.back_up_skill_cfg:
return cast_skill_mp_cost(cfg.back_up_skill_cfg)
return null
character.cost_mp(cfg.mp_cost)
return true
return cfg
func cast_skill_by_name(name: String, cast_dir: Vector2):

@ -20,6 +20,7 @@ class_name SkillCfg
@export var warn_type: Enum.ESkillWarnType = Enum.ESkillWarnType.None
@export var with_stop: bool = false
@export var is_lock_x: bool = true
@export var back_up_skill_cfg: SkillCfg
@export var refresh_animation: bool:
get: return false

Loading…
Cancel
Save