优化技能命中 从单帧检测改为持续检测
parent
32b5343f1b
commit
9753cac24d
@ -0,0 +1,15 @@
|
|||||||
|
[gd_resource type="Resource" script_class="AttackBoxCfg" load_steps=3 format=3 uid="uid://df807k1y1vequ"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dekrsow0vntqs" path="res://script/config/attack_box_cfg.gd" id="1_fstin"]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_pmh6g"]
|
||||||
|
height = 0.8
|
||||||
|
radius = 0.25
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1_fstin")
|
||||||
|
shape = SubResource("CylinderShape3D_pmh6g")
|
||||||
|
offset = Vector2(0, 0)
|
||||||
|
is_throw = false
|
||||||
|
is_direct = false
|
||||||
|
is_hit_self = true
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
[gd_resource type="Resource" script_class="CharacterCfg" load_steps=9 format=3 uid="uid://cb4q16lmqwbin"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bei75ysjq2pi4" path="res://scene/ai/bullet_simple.tscn" id="1_3q8i1"]
|
||||||
|
[ext_resource type="Resource" uid="uid://ckbf40c75bfqf" path="res://config/attack/sharp_normal_hit_up.tres" id="2_m73qf"]
|
||||||
|
[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://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"]
|
||||||
|
[ext_resource type="Resource" uid="uid://5jes0p152akr" path="res://config/character_stun/none.tres" id="8_rojoo"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("6_1ypqo")
|
||||||
|
name = "hero01"
|
||||||
|
type = 2
|
||||||
|
sprite_height = 26
|
||||||
|
sprite_width = 16
|
||||||
|
move = ExtResource("4_2bsgq")
|
||||||
|
shield = ExtResource("7_k8icm")
|
||||||
|
stun = ExtResource("8_rojoo")
|
||||||
|
mp = ExtResource("5_gsbwd")
|
||||||
|
ai_behavior_tree = ExtResource("1_3q8i1")
|
||||||
|
hp_max = 100.0
|
||||||
|
attack = 1.0
|
||||||
|
attack1 = ExtResource("2_m73qf")
|
||||||
|
attack1_box = ExtResource("3_3q8i1")
|
||||||
|
sub_character_auto_create = false
|
||||||
|
material_on = 0
|
||||||
|
material_off = 0
|
||||||
@ -1,25 +0,0 @@
|
|||||||
[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,26 +0,0 @@
|
|||||||
[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
|
|
||||||
mp_sub_cost = false
|
|
||||||
warn_type = 0
|
|
||||||
with_stop = false
|
|
||||||
is_lock_x = true
|
|
||||||
refresh_animation = false
|
|
||||||
sprite_frames = ExtResource("3_yxy1c")
|
|
||||||
animation_name = "basic_flash"
|
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=7 format=3 uid="uid://fnub06pyo2l8"]
|
||||||
|
|
||||||
|
[ext_resource type="Resource" uid="uid://cw7rb4rlfw33q" path="res://config/attack/sharp_heavy_hit_back.tres" id="1_2k8jp"]
|
||||||
|
[ext_resource type="Resource" uid="uid://diedb7vw7eyxp" path="res://config/attack_box/box_mid.tres" id="2_1jdoh"]
|
||||||
|
[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_cfg.gd" id="3_tbh7t"]
|
||||||
|
[ext_resource type="Animation" uid="uid://nhnwu6uccylr" path="res://resource/skill_animation/hero01_long_stab02.tres" id="4_2k8jp"]
|
||||||
|
[ext_resource type="SpriteFrames" uid="uid://c6w03xigmrd31" path="res://resource/animation/character/hero01_long_skill03.aseprite" id="5_ys6gu"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="6_3b28o"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("3_tbh7t")
|
||||||
|
weapon = ExtResource("6_3b28o")
|
||||||
|
action = "none"
|
||||||
|
name = ""
|
||||||
|
skill_animation = ExtResource("4_2k8jp")
|
||||||
|
stance_from = 99
|
||||||
|
stance_to = 99
|
||||||
|
break_level = 0
|
||||||
|
is_charging = false
|
||||||
|
attack1 = ExtResource("1_2k8jp")
|
||||||
|
attack1_box = ExtResource("2_1jdoh")
|
||||||
|
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
|
||||||
|
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_ys6gu")
|
||||||
|
animation_name = "long_skill_stab02"
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=5 format=3 uid="uid://cjp4q8uhiryjd"]
|
||||||
|
|
||||||
|
[ext_resource type="Animation" uid="uid://qcmj7d5pg6lw" path="res://resource/skill_animation/hero01_short_skill01.tres" id="2_j0c0j"]
|
||||||
|
[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_cfg.gd" id="3_0dcj8"]
|
||||||
|
[ext_resource type="SpriteFrames" uid="uid://dlmesk4xyydmd" path="res://resource/animation/character/hero01_short_skill03.aseprite" id="3_j0c0j"]
|
||||||
|
[ext_resource type="Resource" uid="uid://pnhii1a83axg" path="res://config/weapon/short.tres" id="6_7qlca"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("3_0dcj8")
|
||||||
|
weapon = ExtResource("6_7qlca")
|
||||||
|
action = "attack_heavy"
|
||||||
|
name = ""
|
||||||
|
skill_animation = ExtResource("2_j0c0j")
|
||||||
|
stance_from = 1
|
||||||
|
stance_to = 30
|
||||||
|
break_level = 3
|
||||||
|
is_charging = false
|
||||||
|
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
|
||||||
|
free_lock = false
|
||||||
|
ignore_push = false
|
||||||
|
with_stop = false
|
||||||
|
is_lock_x = true
|
||||||
|
is_lock_x_move = false
|
||||||
|
range = 0.0
|
||||||
|
warn_type = 0
|
||||||
|
sprite_frames = ExtResource("3_j0c0j")
|
||||||
|
animation_name = "short_skill_stab01"
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=8 format=3 uid="uid://ckmsp5bdyk3tx"]
|
||||||
|
|
||||||
|
[ext_resource type="Resource" uid="uid://cuc04svaipss7" path="res://config/attack/sharp_normal_none.tres" id="1_5n6sn"]
|
||||||
|
[ext_resource type="Resource" uid="uid://diedb7vw7eyxp" path="res://config/attack_box/box_mid.tres" id="2_67ngl"]
|
||||||
|
[ext_resource type="Script" uid="uid://dgwtu2wj5033u" path="res://script/config/skill_weapon_cfg.gd" id="3_cub6b"]
|
||||||
|
[ext_resource type="Animation" uid="uid://b3fuombjh57oj" path="res://resource/skill_animation/hero01_short_stab01.tres" id="4_67ngl"]
|
||||||
|
[ext_resource type="SpriteFrames" uid="uid://c6w03xigmrd31" path="res://resource/animation/character/hero01_long_skill03.aseprite" id="5_kk2vu"]
|
||||||
|
[ext_resource type="Resource" uid="uid://pnhii1a83axg" path="res://config/weapon/short.tres" id="6_5n6sn"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cb4q16lmqwbin" path="res://config/character/bullet_hero01_short_stab01.tres" id="6_cub6b"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("3_cub6b")
|
||||||
|
weapon = ExtResource("6_5n6sn")
|
||||||
|
action = "attack_light"
|
||||||
|
name = ""
|
||||||
|
sub_character = ExtResource("6_cub6b")
|
||||||
|
skill_animation = ExtResource("4_67ngl")
|
||||||
|
stance_from = 30
|
||||||
|
stance_to = 30
|
||||||
|
break_level = 3
|
||||||
|
is_charging = false
|
||||||
|
attack1 = ExtResource("1_5n6sn")
|
||||||
|
attack1_box = ExtResource("2_67ngl")
|
||||||
|
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
|
||||||
|
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_kk2vu")
|
||||||
|
animation_name = "long_skill_stab01"
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 5.8 KiB |
Binary file not shown.
@ -0,0 +1,25 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="Aseprite SpriteFrames Import"
|
||||||
|
type="SpriteFrames"
|
||||||
|
uid="uid://dlmesk4xyydmd"
|
||||||
|
path="res://.godot/imported/hero01_short_skill03.aseprite-cf64863bc2c45d75bbeae9d71dcd4217.res"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resource/animation/character/hero01_short_skill03.aseprite"
|
||||||
|
dest_files=["res://.godot/imported/hero01_short_skill03.aseprite-cf64863bc2c45d75bbeae9d71dcd4217.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: 2.8 KiB |
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cyw16jypnrjt0"
|
||||||
|
path="res://.godot/imported/hero01_short_skill03.png-8257420af302734e3238b32df28eecd2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resource/animation/character/hero01_short_skill03.png"
|
||||||
|
dest_files=["res://.godot/imported/hero01_short_skill03.png-8257420af302734e3238b32df28eecd2.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
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=1
|
||||||
@ -0,0 +1,95 @@
|
|||||||
|
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://nhnwu6uccylr"]
|
||||||
|
|
||||||
|
[ext_resource type="SpriteFrames" uid="uid://c6w03xigmrd31" path="res://resource/animation/character/hero01_long_skill03.aseprite" id="1_yn72v"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
resource_name = "hero01_long_stab02"
|
||||||
|
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_yn72v")]
|
||||||
|
}
|
||||||
|
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("Status:break_level")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.4, 0.7),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0, 3, 4]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("Battle")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0.3),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"attack1"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
tracks/4/type = "method"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("Effect")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0.3),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"cast_attack_particle1"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/path = NodePath("View:frame")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/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/6/type = "value"
|
||||||
|
tracks/6/imported = false
|
||||||
|
tracks/6/enabled = true
|
||||||
|
tracks/6/path = NodePath("Status:skill_move_speed")
|
||||||
|
tracks/6/interp = 1
|
||||||
|
tracks/6/loop_wrap = true
|
||||||
|
tracks/6/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.3),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [-1.0, 4.0, 0.0]
|
||||||
|
}
|
||||||
@ -0,0 +1,82 @@
|
|||||||
|
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://qcmj7d5pg6lw"]
|
||||||
|
|
||||||
|
[ext_resource type="SpriteFrames" uid="uid://d1dgtfh3h3c24" path="res://resource/animation/character/hero01_short_skill01.aseprite" id="1_0x0f7"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
resource_name = "hero01_short_skill01"
|
||||||
|
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_0x0f7")]
|
||||||
|
}
|
||||||
|
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": ["short_skill01"]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Status:skill_move_speed")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [-7.0, 0.0]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("Battle")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0.2),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"stop"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("Status:break_level")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.6),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0, 3, 4]
|
||||||
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/path = NodePath("View:frame")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/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]
|
||||||
|
}
|
||||||
@ -0,0 +1,95 @@
|
|||||||
|
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://b3fuombjh57oj"]
|
||||||
|
|
||||||
|
[ext_resource type="SpriteFrames" uid="uid://c6w03xigmrd31" path="res://resource/animation/character/hero01_long_skill03.aseprite" id="1_rcy2y"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
resource_name = "hero01_short_stab01"
|
||||||
|
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_rcy2y")]
|
||||||
|
}
|
||||||
|
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_stab01"]
|
||||||
|
}
|
||||||
|
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.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.1),
|
||||||
|
"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.1),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"cast_attack_particle1"
|
||||||
|
}]
|
||||||
|
}
|
||||||
@ -1,86 +0,0 @@
|
|||||||
[gd_scene load_steps=12 format=3 uid="uid://bgku27xawscbt"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="1_r673b"]
|
|
||||||
[ext_resource type="Script" path="res://addons/beehave/nodes/composites/selector.gd" id="2_5ltau"]
|
|
||||||
[ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="3_yeaa5"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action_blackboard/action_blackboard_check.gd" id="4_vnt1w"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action/action_destroy.gd" id="5_0a0n1"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action/action_wait.gd" id="6_omj7f"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action_blackboard/action_blackboard_set.gd" id="7_gpffp"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action/action_attack1.gd" id="7_wcjhl"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action/action_stop_move.gd" id="8_ntwgo"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action_blackboard/action_blackboard_add.gd" id="8_rm753"]
|
|
||||||
[ext_resource type="Script" path="res://addons/beehave/nodes/decorators/succeeder.gd" id="9_lh2cr"]
|
|
||||||
|
|
||||||
[node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")]
|
|
||||||
script = ExtResource("1_r673b")
|
|
||||||
blackboard = NodePath("@Node@19481")
|
|
||||||
|
|
||||||
[node name="SelectorComposite" type="Node" parent="."]
|
|
||||||
script = ExtResource("2_5ltau")
|
|
||||||
|
|
||||||
[node name="SequenceComposite" type="Node" parent="SelectorComposite"]
|
|
||||||
script = ExtResource("3_yeaa5")
|
|
||||||
|
|
||||||
[node name="CheckStep0" type="Node" parent="SelectorComposite/SequenceComposite"]
|
|
||||||
script = ExtResource("4_vnt1w")
|
|
||||||
key = "step"
|
|
||||||
|
|
||||||
[node name="ActionWait" type="Node" parent="SelectorComposite/SequenceComposite"]
|
|
||||||
script = ExtResource("6_omj7f")
|
|
||||||
wait_time = 0.05
|
|
||||||
|
|
||||||
[node name="ActionAttack1" type="Node" parent="SelectorComposite/SequenceComposite"]
|
|
||||||
script = ExtResource("7_wcjhl")
|
|
||||||
|
|
||||||
[node name="ActionStopMove" type="Node" parent="SelectorComposite/SequenceComposite"]
|
|
||||||
script = ExtResource("8_ntwgo")
|
|
||||||
|
|
||||||
[node name="SetStep1" type="Node" parent="SelectorComposite/SequenceComposite"]
|
|
||||||
script = ExtResource("7_gpffp")
|
|
||||||
key = "step"
|
|
||||||
value = 1
|
|
||||||
|
|
||||||
[node name="SequenceComposite2" type="Node" parent="SelectorComposite"]
|
|
||||||
script = ExtResource("3_yeaa5")
|
|
||||||
|
|
||||||
[node name="CheckStep1" type="Node" parent="SelectorComposite/SequenceComposite2"]
|
|
||||||
script = ExtResource("4_vnt1w")
|
|
||||||
key = "step"
|
|
||||||
value = 1
|
|
||||||
|
|
||||||
[node name="ActionWait" type="Node" parent="SelectorComposite/SequenceComposite2"]
|
|
||||||
script = ExtResource("6_omj7f")
|
|
||||||
wait_time = 0.3
|
|
||||||
|
|
||||||
[node name="AlwaysSucceedDecorator" type="Node" parent="SelectorComposite/SequenceComposite2"]
|
|
||||||
script = ExtResource("9_lh2cr")
|
|
||||||
|
|
||||||
[node name="ActionAttack1" type="Node" parent="SelectorComposite/SequenceComposite2/AlwaysSucceedDecorator"]
|
|
||||||
script = ExtResource("7_wcjhl")
|
|
||||||
|
|
||||||
[node name="AddHit" type="Node" parent="SelectorComposite/SequenceComposite2"]
|
|
||||||
script = ExtResource("8_rm753")
|
|
||||||
key = "hit"
|
|
||||||
value = 1
|
|
||||||
|
|
||||||
[node name="CheckHit9" type="Node" parent="SelectorComposite/SequenceComposite2"]
|
|
||||||
script = ExtResource("4_vnt1w")
|
|
||||||
key = "hit"
|
|
||||||
value = 9
|
|
||||||
|
|
||||||
[node name="SetStep2" type="Node" parent="SelectorComposite/SequenceComposite2"]
|
|
||||||
script = ExtResource("7_gpffp")
|
|
||||||
key = "step"
|
|
||||||
value = 2
|
|
||||||
|
|
||||||
[node name="SequenceComposite3" type="Node" parent="SelectorComposite"]
|
|
||||||
script = ExtResource("3_yeaa5")
|
|
||||||
|
|
||||||
[node name="CheckStep2" type="Node" parent="SelectorComposite/SequenceComposite3"]
|
|
||||||
script = ExtResource("4_vnt1w")
|
|
||||||
key = "step"
|
|
||||||
value = 2
|
|
||||||
|
|
||||||
[node name="ActionDestroy" type="Node" parent="SelectorComposite/SequenceComposite3"]
|
|
||||||
script = ExtResource("5_0a0n1")
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://bdwwmat306mff"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="1_go1b5"]
|
|
||||||
[ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="2_k8nph"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action/action_stop_move.gd" id="3_aums8"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action/action_attack1.gd" id="4_mhoc5"]
|
|
||||||
[ext_resource type="Script" path="res://script/ai/action/action_destroy.gd" id="5_ejojh"]
|
|
||||||
|
|
||||||
[node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")]
|
|
||||||
script = ExtResource("1_go1b5")
|
|
||||||
blackboard = NodePath("@Node@19760")
|
|
||||||
|
|
||||||
[node name="SequenceComposite" type="Node" parent="."]
|
|
||||||
script = ExtResource("2_k8nph")
|
|
||||||
|
|
||||||
[node name="ActionStopMove" type="Node" parent="SequenceComposite"]
|
|
||||||
script = ExtResource("3_aums8")
|
|
||||||
|
|
||||||
[node name="ActionAttack1" type="Node" parent="SequenceComposite"]
|
|
||||||
script = ExtResource("4_mhoc5")
|
|
||||||
|
|
||||||
[node name="ActionDestroy" type="Node" parent="SequenceComposite"]
|
|
||||||
script = ExtResource("5_ejojh")
|
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
[gd_scene load_steps=6 format=3 uid="uid://bei75ysjq2pi4"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://mvwcxqcetiqp" path="res://addons/beehave/nodes/beehave_tree.gd" id="1_7oi2o"]
|
||||||
|
[ext_resource type="Script" uid="uid://cugftmuc8v30c" path="res://addons/beehave/nodes/composites/sequence.gd" id="3_i33jf"]
|
||||||
|
[ext_resource type="Script" uid="uid://cnw25wdsd3c76" path="res://script/ai/action/action_wait.gd" id="5_onfb3"]
|
||||||
|
[ext_resource type="Script" uid="uid://ddcaceywxwt20" path="res://script/ai/action/action_attack1.gd" id="6_oqib4"]
|
||||||
|
[ext_resource type="Script" uid="uid://ci3tg5fkdn16f" path="res://script/ai/action/action_destroy.gd" id="11_i4mx4"]
|
||||||
|
|
||||||
|
[node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")]
|
||||||
|
script = ExtResource("1_7oi2o")
|
||||||
|
blackboard = NodePath("@Node@25322")
|
||||||
|
|
||||||
|
[node name="SequenceComposite" type="Node" parent="."]
|
||||||
|
script = ExtResource("3_i33jf")
|
||||||
|
|
||||||
|
[node name="ActionWait" type="Node" parent="SequenceComposite"]
|
||||||
|
script = ExtResource("5_onfb3")
|
||||||
|
wait_time = 0.05
|
||||||
|
|
||||||
|
[node name="ActionAttack1" type="Node" parent="SequenceComposite"]
|
||||||
|
script = ExtResource("6_oqib4")
|
||||||
|
|
||||||
|
[node name="ActionDestroy" type="Node" parent="SequenceComposite"]
|
||||||
|
script = ExtResource("11_i4mx4")
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
[gd_scene load_steps=5 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://ddcaceywxwt20" path="res://script/ai/action/action_attack1.gd" id="4_klwmg"]
|
||||||
|
|
||||||
|
[node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")]
|
||||||
|
script = ExtResource("1_6wcp2")
|
||||||
|
blackboard = NodePath("@Node@25321")
|
||||||
|
|
||||||
|
[node name="SequenceComposite" type="Node" parent="."]
|
||||||
|
script = ExtResource("2_0p8p1")
|
||||||
|
|
||||||
|
[node name="ActionWait" type="Node" parent="SequenceComposite"]
|
||||||
|
script = ExtResource("3_irjra")
|
||||||
|
wait_time = 0.05
|
||||||
|
|
||||||
|
[node name="ActionAttack1" type="Node" parent="SequenceComposite"]
|
||||||
|
script = ExtResource("4_klwmg")
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://bakftws1caca2"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.tscn" id="1_bduq8"]
|
||||||
|
|
||||||
|
[node name="Particle" instance=ExtResource("1_bduq8")]
|
||||||
|
transform = Transform3D(0.5, 0, 0, 0, 1, 0, 0, 0, 0.5, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="Slash" parent="." index="0"]
|
||||||
|
emitting = true
|
||||||
|
lifetime = 600.0
|
||||||
|
one_shot = false
|
||||||
|
seed = 300733846
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
extends Node3D
|
||||||
|
class_name Struct
|
||||||
|
|
||||||
|
class AttackInfo:
|
||||||
|
var attack: AttackCfg
|
||||||
|
var attack_box: AttackBoxCfg
|
||||||
|
var attack_dir: Vector2 = Vector2.ZERO
|
||||||
|
var with_stop: bool = false
|
||||||
|
var ignore_push: bool = false
|
||||||
|
|
||||||
|
|
||||||
|
class HitResultInfo:
|
||||||
|
var is_hit: bool
|
||||||
|
var is_break: bool
|
||||||
|
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
extends Area3D
|
||||||
|
class_name BattleAttackArea
|
||||||
|
|
||||||
|
@onready var battle: Battle = (%Battle as Battle)
|
||||||
|
@onready var collision: CollisionShape3D = (%BattleAttackAreaCollision as CollisionShape3D)
|
||||||
|
|
||||||
|
var is_active: bool
|
||||||
|
var alive_time: float
|
||||||
|
var attack_info: Struct.AttackInfo
|
||||||
|
var attack_id_set: Dictionary = {}
|
||||||
|
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
body_entered.connect(on_body_entered)
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
if is_active:
|
||||||
|
alive_time -= delta
|
||||||
|
if alive_time <= 0:
|
||||||
|
set_active(false)
|
||||||
|
|
||||||
|
|
||||||
|
func refresh_attack_area(attack_info_new: Struct.AttackInfo) -> void:
|
||||||
|
attack_info = attack_info_new
|
||||||
|
var offset_xz: Vector2 = attack_info.attack_dir * attack_info.attack_box.offset.x
|
||||||
|
var offset_y: float = attack_info.attack_box.offset.y
|
||||||
|
var offset: Vector3 = Vector3(offset_xz.x, offset_y, offset_xz.y)
|
||||||
|
var shape: Shape3D = attack_info.attack_box.shape
|
||||||
|
collision.position = offset
|
||||||
|
collision.shape = shape
|
||||||
|
|
||||||
|
attack_id_set.clear()
|
||||||
|
alive_time = Setting.animation_frame_rate
|
||||||
|
set_active(false)
|
||||||
|
set_active(true)
|
||||||
|
|
||||||
|
|
||||||
|
func on_body_entered(body: Node3D):
|
||||||
|
call_deferred("on_body_entereddeferred", body)
|
||||||
|
|
||||||
|
|
||||||
|
func on_body_entereddeferred(body: Node3D):
|
||||||
|
if body is Character:
|
||||||
|
if not attack_id_set.has(body.id):
|
||||||
|
battle.on_attack_character(body, attack_info)
|
||||||
|
attack_id_set[body.id] = true
|
||||||
|
|
||||||
|
|
||||||
|
func set_active(value: bool) -> void:
|
||||||
|
if value:
|
||||||
|
alive_time = Setting.animation_frame_rate
|
||||||
|
else:
|
||||||
|
alive_time = 0
|
||||||
|
|
||||||
|
is_active = value
|
||||||
|
collision.disabled = not value
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://dqsadncw4srh6
|
||||||
Loading…
Reference in New Issue