优化技能命中 从单帧检测改为持续检测
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