重击指示特效

master
chendian 1 year ago
parent 1e33601b90
commit d7c56138f8

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="CharacterCfg" load_steps=8 format=3 uid="uid://ckge2a023aee5"]
[ext_resource type="Resource" uid="uid://b26gc616anvo1" path="res://config/character_ai/normal.tres" id="1_lsd6j"]
[ext_resource type="Resource" uid="uid://dkjv5kj8mgy8v" path="res://config/character_move/slow.tres" id="2_604qx"]
[ext_resource type="Resource" uid="uid://dpajmgrlaytah" path="res://config/character_mp/normal.tres" id="3_ig5en"]
[ext_resource type="Script" path="res://script/config/character_cfg.gd" id="4_rqowc"]
[ext_resource type="Resource" uid="uid://h1curvk64vm3" path="res://config/character_shield/none.tres" id="5_gshoi"]
[ext_resource type="SpriteFrames" uid="uid://2cb8lknel0ih" path="res://resource/animation/character/basic_move.aseprite" id="6_di8e8"]
[ext_resource type="Resource" uid="uid://cac6mk6g078vn" path="res://config/character_stun/normal.tres" id="7_5odff"]
[resource]
script = ExtResource("4_rqowc")
name = "monster00"
type = 1
sprite_frames = ExtResource("6_di8e8")
sprite_height = 45
sprite_width = 16
move = ExtResource("2_604qx")
shield = ExtResource("5_gshoi")
stun = ExtResource("7_5odff")
mp = ExtResource("3_ig5en")
ai = ExtResource("1_lsd6j")
hp_max = 1000.0
attack = 10.0
sub_character_auto_create = false

@ -20,6 +20,6 @@ shield = ExtResource("4_ei6r7")
stun = ExtResource("6_25uqm") stun = ExtResource("6_25uqm")
mp = ExtResource("2_pl54c") mp = ExtResource("2_pl54c")
ai = ExtResource("1_jvsh2") ai = ExtResource("1_jvsh2")
hp_max = 20.0 hp_max = 50.0
attack = 10.0 attack = 10.0
sub_character_auto_create = false sub_character_auto_create = false

@ -10,7 +10,7 @@
[resource] [resource]
script = ExtResource("3_0gem5") script = ExtResource("3_0gem5")
name = "monster02" name = "monster03"
type = 1 type = 1
sprite_frames = ExtResource("5_4dnud") sprite_frames = ExtResource("5_4dnud")
sprite_height = 45 sprite_height = 45

@ -20,6 +20,7 @@ stance_to = 0
break_level = 3 break_level = 3
is_charging = false is_charging = false
mp_cost = 0 mp_cost = 0
warn_type = 1
refresh_animation = false refresh_animation = false
sprite_frames = ExtResource("5_30t6c") sprite_frames = ExtResource("5_30t6c")
animation_name = "skill01" animation_name = "skill01"

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cq58273k05p4f"
path="res://.godot/imported/circle1.png-9ca4ad043cc197730307f0c709d4ce08.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://render/texture/particle/shape/circle1.png"
dest_files=["res://.godot/imported/circle1.png-9ca4ad043cc197730307f0c709d4ce08.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c5cbbvg3b8qrn"
path="res://.godot/imported/circle2.png-17d4f636305f9c71092b3f0cef83c664.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://render/texture/particle/shape/circle2.png"
dest_files=["res://.godot/imported/circle2.png-17d4f636305f9c71092b3f0cef83c664.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0bc1rnv1shnn"
path="res://.godot/imported/circle3.png-55d36441abeabf2607e4996688f46199.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://render/texture/particle/shape/circle3.png"
dest_files=["res://.godot/imported/circle3.png-55d36441abeabf2607e4996688f46199.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://g2030mlk6npf"
path="res://.godot/imported/flare4.png-f3ab46f2e9c1580d67963e9d049e6aa7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://render/texture/particle/shape/flare4.png"
dest_files=["res://.godot/imported/flare4.png-f3ab46f2e9c1580d67963e9d049e6aa7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,66 @@
[gd_scene load_steps=9 format=3 uid="uid://br7nhubpnjouy"]
[ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="1_mabth"]
[ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="2_j3bbo"]
[ext_resource type="Script" path="res://script/ai/action/action_find_target.gd" id="3_nrbg0"]
[ext_resource type="Script" path="res://addons/beehave/nodes/composites/selector.gd" id="4_gnr3y"]
[ext_resource type="Script" path="res://script/ai/action_role_check/action_role_check_is.gd" id="5_0ogvm"]
[ext_resource type="Script" path="res://script/ai/action_with_target/action_move_to.gd" id="6_1t362"]
[ext_resource type="Script" path="res://script/ai/action_with_target/action_cast_skill.gd" id="7_4jw56"]
[ext_resource type="Script" path="res://script/ai/action/action_wait.gd" id="8_i6t1a"]
[node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")]
script = ExtResource("1_mabth")
blackboard = NodePath("@Node@19482")
[node name="SequenceComposite" type="Node" parent="."]
script = ExtResource("2_j3bbo")
[node name="ActionFindTarget" type="Node" parent="SequenceComposite"]
script = ExtResource("3_nrbg0")
[node name="SelectorComposite" type="Node" parent="SequenceComposite"]
script = ExtResource("4_gnr3y")
[node name="SequenceComposite" type="Node" parent="SequenceComposite/SelectorComposite"]
script = ExtResource("2_j3bbo")
[node name="ActionRoleCheckIs" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite"]
script = ExtResource("5_0ogvm")
key = 1
[node name="ActionMoveTo" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite"]
script = ExtResource("6_1t362")
dist_max = 2.0
[node name="ActionCastSkill" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite"]
script = ExtResource("7_4jw56")
[node name="SequenceComposite2" type="Node" parent="SequenceComposite/SelectorComposite"]
script = ExtResource("2_j3bbo")
[node name="ActionRoleCheckIs" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite2"]
script = ExtResource("5_0ogvm")
key = 2
[node name="ActionMoveTo" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite2"]
script = ExtResource("6_1t362")
dist_min = 3.0
dist_max = 4.0
[node name="ActionCastSkill" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite2"]
script = ExtResource("7_4jw56")
[node name="SequenceComposite3" type="Node" parent="SequenceComposite/SelectorComposite"]
script = ExtResource("2_j3bbo")
[node name="ActionRoleCheckIs" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite3"]
script = ExtResource("5_0ogvm")
[node name="ActionMoveTo" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite3"]
script = ExtResource("6_1t362")
dist_min = 4.0
[node name="ActionWait" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite3"]
script = ExtResource("8_i6t1a")
wait_time = 2.0

@ -18,14 +18,14 @@ shader_parameter/tex_main = ExtResource("3_07ceg")
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2 point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_hdmmt"] [sub_resource type="CurveTexture" id="CurveTexture_qqoo7"]
curve = SubResource("Curve_n5hkj") curve = SubResource("Curve_n5hkj")
[sub_resource type="Gradient" id="Gradient_wb6fx"] [sub_resource type="Gradient" id="Gradient_wb6fx"]
offsets = PackedFloat32Array(0, 0.291429, 1) offsets = PackedFloat32Array(0, 0.291429, 1)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 0.649479, 1, 1, 1, 0.223529, 1) colors = PackedColorArray(1, 1, 1, 1, 1, 1, 0.649479, 1, 1, 1, 0.223529, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_8ltar"] [sub_resource type="GradientTexture1D" id="GradientTexture1D_ee1g0"]
gradient = SubResource("Gradient_wb6fx") gradient = SubResource("Gradient_wb6fx")
[sub_resource type="Curve" id="Curve_2o6rl"] [sub_resource type="Curve" id="Curve_2o6rl"]
@ -33,7 +33,7 @@ max_value = 1.5
_data = [Vector2(0, 0.758242), 0.0, 2.00769, 0, 0, Vector2(0.0394089, 1.08791), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] _data = [Vector2(0, 0.758242), 0.0, 2.00769, 0, 0, Vector2(0.0394089, 1.08791), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 3 point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_5ce5r"] [sub_resource type="CurveTexture" id="CurveTexture_1vj45"]
curve = SubResource("Curve_2o6rl") curve = SubResource("Curve_2o6rl")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_acw2w"] [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_acw2w"]
@ -41,9 +41,9 @@ particle_flag_disable_z = true
angle_min = 1.07288e-05 angle_min = 1.07288e-05
angle_max = 720.0 angle_max = 720.0
gravity = Vector3(0, 0, 0) gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_5ce5r") scale_curve = SubResource("CurveTexture_1vj45")
color_ramp = SubResource("GradientTexture1D_8ltar") color_ramp = SubResource("GradientTexture1D_ee1g0")
alpha_curve = SubResource("CurveTexture_hdmmt") alpha_curve = SubResource("CurveTexture_qqoo7")
[sub_resource type="QuadMesh" id="QuadMesh_0j7av"] [sub_resource type="QuadMesh" id="QuadMesh_0j7av"]

@ -0,0 +1,106 @@
[gd_scene load_steps=20 format=3 uid="uid://8oy8eytn1jgf"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_y38w8"]
[ext_resource type="Shader" path="res://render/shader/particle.gdshader" id="2_845vn"]
[ext_resource type="Texture2D" uid="uid://0bc1rnv1shnn" path="res://render/texture/particle/shape/circle3.png" id="3_qjy02"]
[ext_resource type="Texture2D" uid="uid://g2030mlk6npf" path="res://render/texture/particle/shape/flare4.png" id="4_xa5lc"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fvph4"]
render_priority = 0
shader = ExtResource("2_845vn")
shader_parameter/is_billboard = false
shader_parameter/tex_main = ExtResource("3_qjy02")
[sub_resource type="Curve" id="Curve_fuavy"]
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.806154, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_5i014"]
curve = SubResource("Curve_fuavy")
[sub_resource type="Curve" id="Curve_2j3we"]
max_value = 4.0
_data = [Vector2(0, 4), 0.0, -4.0, 0, 1, Vector2(1, 0), -4.0, 0.0, 1, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_55sl6"]
curve = SubResource("Curve_2j3we")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_mpv4n"]
particle_flag_disable_z = true
gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_55sl6")
color = Color(1, 0, 0, 1)
alpha_curve = SubResource("CurveTexture_5i014")
sub_emitter_mode = 2
sub_emitter_amount_at_end = 1
[sub_resource type="QuadMesh" id="QuadMesh_70aem"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0r62o"]
render_priority = 0
shader = ExtResource("2_845vn")
shader_parameter/is_billboard = false
shader_parameter/tex_main = ExtResource("4_xa5lc")
[sub_resource type="Curve" id="Curve_dso35"]
_data = [Vector2(0, 0.786236), 0.0, 2.24107, 0, 1, Vector2(0.0953846, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -1.10544, 0.0, 1, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_f0x81"]
curve = SubResource("Curve_dso35")
[sub_resource type="Gradient" id="Gradient_c5xhr"]
offsets = PackedFloat32Array(0, 0.144781, 1)
colors = PackedColorArray(1, 1, 1, 1, 1, 0.407407, 0.407407, 1, 1, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_3qqjy"]
gradient = SubResource("Gradient_c5xhr")
[sub_resource type="Curve" id="Curve_6goqw"]
max_value = 2.0
_data = [Vector2(0, 0.627893), 0.0, 15.9262, 0, 1, Vector2(0.0861538, 2), 0.0, 0.0, 0, 0, Vector2(0.950769, 0), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 1, 0]
point_count = 4
[sub_resource type="CurveTexture" id="CurveTexture_3g7q4"]
curve = SubResource("Curve_6goqw")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_o28ow"]
particle_flag_disable_z = true
gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_3g7q4")
color_ramp = SubResource("GradientTexture1D_3qqjy")
alpha_curve = SubResource("CurveTexture_f0x81")
sub_emitter_mode = 2
sub_emitter_amount_at_end = 1
[node name="Particle" type="Node3D"]
script = ExtResource("1_y38w8")
is_billboard = true
[node name="Circle" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_fvph4")
cast_shadow = 0
emitting = false
amount = 1
sub_emitter = NodePath("../Slash")
lifetime = 0.6
one_shot = true
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_mpv4n")
draw_pass_1 = SubResource("QuadMesh_70aem")
[node name="Slash" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_0r62o")
cast_shadow = 0
emitting = false
amount = 1
lifetime = 0.15
one_shot = true
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_o28ow")
draw_pass_1 = SubResource("QuadMesh_70aem")

@ -0,0 +1,106 @@
[gd_scene load_steps=20 format=3 uid="uid://da67pfya6g2w7"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_toftt"]
[ext_resource type="Shader" path="res://render/shader/particle.gdshader" id="2_gnmdc"]
[ext_resource type="Texture2D" uid="uid://0bc1rnv1shnn" path="res://render/texture/particle/shape/circle3.png" id="3_yjvrf"]
[ext_resource type="Texture2D" uid="uid://g2030mlk6npf" path="res://render/texture/particle/shape/flare4.png" id="4_4se4b"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fvph4"]
render_priority = 0
shader = ExtResource("2_gnmdc")
shader_parameter/is_billboard = false
shader_parameter/tex_main = ExtResource("3_yjvrf")
[sub_resource type="Curve" id="Curve_fuavy"]
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.806154, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_5i014"]
curve = SubResource("Curve_fuavy")
[sub_resource type="Curve" id="Curve_2j3we"]
max_value = 4.0
_data = [Vector2(0, 4), 0.0, -4.0, 0, 1, Vector2(1, 0), -4.0, 0.0, 1, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_55sl6"]
curve = SubResource("Curve_2j3we")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_mpv4n"]
particle_flag_disable_z = true
gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_55sl6")
color = Color(1, 0, 0, 1)
alpha_curve = SubResource("CurveTexture_5i014")
sub_emitter_mode = 2
sub_emitter_amount_at_end = 1
[sub_resource type="QuadMesh" id="QuadMesh_70aem"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0r62o"]
render_priority = 0
shader = ExtResource("2_gnmdc")
shader_parameter/is_billboard = false
shader_parameter/tex_main = ExtResource("4_4se4b")
[sub_resource type="Curve" id="Curve_dso35"]
_data = [Vector2(0, 0.786236), 0.0, 2.24107, 0, 1, Vector2(0.0953846, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -1.10544, 0.0, 1, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_f0x81"]
curve = SubResource("Curve_dso35")
[sub_resource type="Gradient" id="Gradient_c5xhr"]
offsets = PackedFloat32Array(0, 0.144781, 1)
colors = PackedColorArray(1, 1, 1, 1, 1, 0.407407, 0.407407, 1, 1, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_3qqjy"]
gradient = SubResource("Gradient_c5xhr")
[sub_resource type="Curve" id="Curve_6goqw"]
max_value = 2.0
_data = [Vector2(0, 0.627893), 0.0, 15.9262, 0, 1, Vector2(0.0861538, 2), 0.0, 0.0, 0, 0, Vector2(0.950769, 0), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 1, 0]
point_count = 4
[sub_resource type="CurveTexture" id="CurveTexture_3g7q4"]
curve = SubResource("Curve_6goqw")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_o28ow"]
particle_flag_disable_z = true
gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_3g7q4")
color_ramp = SubResource("GradientTexture1D_3qqjy")
alpha_curve = SubResource("CurveTexture_f0x81")
sub_emitter_mode = 2
sub_emitter_amount_at_end = 1
[node name="Particle" type="Node3D"]
script = ExtResource("1_toftt")
is_billboard = true
[node name="Circle" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_fvph4")
cast_shadow = 0
emitting = false
amount = 1
sub_emitter = NodePath("../Slash")
lifetime = 0.6
one_shot = true
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_mpv4n")
draw_pass_1 = SubResource("QuadMesh_70aem")
[node name="Slash" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_0r62o")
cast_shadow = 0
emitting = false
amount = 1
lifetime = 0.15
one_shot = true
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_o28ow")
draw_pass_1 = SubResource("QuadMesh_70aem")

@ -0,0 +1,106 @@
[gd_scene load_steps=20 format=3 uid="uid://v2pu4bvnjk8c"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_4fbrb"]
[ext_resource type="Shader" path="res://render/shader/particle.gdshader" id="2_j7csm"]
[ext_resource type="Texture2D" uid="uid://0bc1rnv1shnn" path="res://render/texture/particle/shape/circle3.png" id="3_rqs4m"]
[ext_resource type="Texture2D" uid="uid://g2030mlk6npf" path="res://render/texture/particle/shape/flare4.png" id="4_xp1yk"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fvph4"]
render_priority = 0
shader = ExtResource("2_j7csm")
shader_parameter/is_billboard = false
shader_parameter/tex_main = ExtResource("3_rqs4m")
[sub_resource type="Curve" id="Curve_fuavy"]
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.806154, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_5i014"]
curve = SubResource("Curve_fuavy")
[sub_resource type="Curve" id="Curve_2j3we"]
max_value = 4.0
_data = [Vector2(0, 4), 0.0, -4.0, 0, 1, Vector2(1, 0), -4.0, 0.0, 1, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_55sl6"]
curve = SubResource("Curve_2j3we")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_mpv4n"]
particle_flag_disable_z = true
gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_55sl6")
color = Color(1, 0, 0, 1)
alpha_curve = SubResource("CurveTexture_5i014")
sub_emitter_mode = 2
sub_emitter_amount_at_end = 1
[sub_resource type="QuadMesh" id="QuadMesh_70aem"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0r62o"]
render_priority = 0
shader = ExtResource("2_j7csm")
shader_parameter/is_billboard = false
shader_parameter/tex_main = ExtResource("4_xp1yk")
[sub_resource type="Curve" id="Curve_dso35"]
_data = [Vector2(0, 0.786236), 0.0, 2.24107, 0, 1, Vector2(0.0953846, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -1.10544, 0.0, 1, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_f0x81"]
curve = SubResource("Curve_dso35")
[sub_resource type="Gradient" id="Gradient_c5xhr"]
offsets = PackedFloat32Array(0, 0.144781, 1)
colors = PackedColorArray(1, 1, 1, 1, 1, 0.407407, 0.407407, 1, 1, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_3qqjy"]
gradient = SubResource("Gradient_c5xhr")
[sub_resource type="Curve" id="Curve_6goqw"]
max_value = 2.0
_data = [Vector2(0, 0.627893), 0.0, 15.9262, 0, 1, Vector2(0.0861538, 2), 0.0, 0.0, 0, 0, Vector2(0.950769, 0), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 1, 0]
point_count = 4
[sub_resource type="CurveTexture" id="CurveTexture_3g7q4"]
curve = SubResource("Curve_6goqw")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_o28ow"]
particle_flag_disable_z = true
gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_3g7q4")
color_ramp = SubResource("GradientTexture1D_3qqjy")
alpha_curve = SubResource("CurveTexture_f0x81")
sub_emitter_mode = 2
sub_emitter_amount_at_end = 1
[node name="Particle" type="Node3D"]
script = ExtResource("1_4fbrb")
is_billboard = true
[node name="Circle" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_fvph4")
cast_shadow = 0
emitting = false
amount = 1
sub_emitter = NodePath("../Slash")
lifetime = 0.6
one_shot = true
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_mpv4n")
draw_pass_1 = SubResource("QuadMesh_70aem")
[node name="Slash" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_0r62o")
cast_shadow = 0
emitting = false
amount = 1
lifetime = 0.15
one_shot = true
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_o28ow")
draw_pass_1 = SubResource("QuadMesh_70aem")

@ -18,3 +18,4 @@ enum EBreakLevel {None, Cancel, Jump, Break, Walk} #不可打断 取消技打断
enum ECoreType {Active, Passive} enum ECoreType {Active, Passive}
enum EGlobalEffect {CameraSize, CameraShake, ColorShift, Blur, SpeedLine} enum EGlobalEffect {CameraSize, CameraShake, ColorShift, Blur, SpeedLine}
enum EAIRoleType {None, Saber, Assassin, Caster} enum EAIRoleType {None, Saber, Assassin, Caster}
enum ESkillWarnType {None, Normal, Mid, Heavy}

@ -38,6 +38,7 @@ func init_after():
if cfg.ai: if cfg.ai:
set_status("ai_alert_max", cfg.ai.alert_max) set_status("ai_alert_max", cfg.ai.alert_max)
set_status("ai_is_alert", false) set_status("ai_is_alert", false)
set_status("ai_alert", 0)
func set_body_scale(cfg: CharacterCfg) -> void: func set_body_scale(cfg: CharacterCfg) -> void:

@ -128,6 +128,7 @@ func _cast_particle(resource: Resource, is_attach: bool, offset: Vector3, scale:
return return
var new_particle: Particle = resource.instantiate() as Particle var new_particle: Particle = resource.instantiate() as Particle
new_particle.name = "particle" new_particle.name = "particle"
if not new_particle.is_billboard:
var angle: float = Util.dir_angle(status.skill_dir) var angle: float = Util.dir_angle(status.skill_dir)
new_particle.rotation.y = angle if is_right else -angle new_particle.rotation.y = angle if is_right else -angle
if scale: if scale:

@ -66,9 +66,7 @@ func check_action_pressed(key: String) -> bool:
"weapon_pre": combo.weapon_index_change(-1) "weapon_pre": combo.weapon_index_change(-1)
"weapon_next": combo.weapon_index_change(1) "weapon_next": combo.weapon_index_change(1)
"test_1": "test_1":
Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test1, Enum.ETeam.Monster, Vector3(5.5, 1, 2)) Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test0, Enum.ETeam.Monster, character.pos())
Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test2, Enum.ETeam.Monster, Vector3(5.5, 1, 2))
Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test3, Enum.ETeam.Monster, Vector3(5.5, 1, 2))
_: return false _: return false
return true return true

@ -103,6 +103,14 @@ func cast_skill(cfg: SkillCfg, cast_dir: Vector2, action_key: String = ""):
if cfg.is_charging: if cfg.is_charging:
buff.add_buff("charging", -1) buff.add_buff("charging", -1)
if cast_dir.x != 0: status.is_right = cast_dir.x > 0 if cast_dir.x != 0: status.is_right = cast_dir.x > 0
#预警特效
match cfg.warn_type:
Enum.ESkillWarnType.Normal: character.cast_particle(ResourceManager.particle_warn_normal, true)
Enum.ESkillWarnType.Mid: character.cast_particle(ResourceManager.particle_warn_mid, true)
Enum.ESkillWarnType.Heavy: character.cast_particle(ResourceManager.particle_warn_heavy, true)
_: pass
var animation_name: String = "animation_library/%s" % cfg.get_res_name() var animation_name: String = "animation_library/%s" % cfg.get_res_name()
play(animation_name, -1, Setting.animation_speed_scale) play(animation_name, -1, Setting.animation_speed_scale)

@ -154,6 +154,7 @@ func update_trans(on_end: bool):
status.set(trans.trigger_name, false) status.set(trans.trigger_name, false)
else: continue else: continue
play_animation(trans.to) play_animation(trans.to)
break
func update_flip(): func update_flip():

@ -17,6 +17,7 @@ class_name SkillCfg
@export var break_level: Enum.EBreakLevel = Enum.EBreakLevel.Break @export var break_level: Enum.EBreakLevel = Enum.EBreakLevel.Break
@export var is_charging: bool @export var is_charging: bool
@export var mp_cost: int @export var mp_cost: int
@export var warn_type: Enum.ESkillWarnType = Enum.ESkillWarnType.None
@export var refresh_animation: bool: @export var refresh_animation: bool:
get: return false get: return false

@ -1,6 +1,8 @@
extends EffectBase extends EffectBase
class_name Particle class_name Particle
@export var is_billboard: bool
var sub_particle_list: Array[Particle] var sub_particle_list: Array[Particle]
var particle_list: Array[GPUParticles3D] var particle_list: Array[GPUParticles3D]
var speed_scale_list: Array[Variant] = [] var speed_scale_list: Array[Variant] = []

@ -10,14 +10,21 @@ var scene_soul: PackedScene = load("res://scene/character/soul.tscn")
var material_character: Material = load("res://render/material/character.tres") as Material var material_character: Material = load("res://render/material/character.tres") as Material
var material_character_sub: Material = load("res://render/material/character_sub.tres") as Material var material_character_sub: Material = load("res://render/material/character_sub.tres") as Material
#==effect== #==effect==
#hit
var particle_hit_sharp: PackedScene = load("res://scene/effect/particle/particle_hit_sharp.tscn") var particle_hit_sharp: PackedScene = load("res://scene/effect/particle/particle_hit_sharp.tscn")
var particle_hit_blunt: PackedScene = load("res://scene/effect/particle/particle_hit_blunt.tscn") var particle_hit_blunt: PackedScene = load("res://scene/effect/particle/particle_hit_blunt.tscn")
var particle_hit_ground: PackedScene = load("res://scene/effect/particle/particle_hit_ground.tscn") var particle_hit_ground: PackedScene = load("res://scene/effect/particle/particle_hit_ground.tscn")
#warn
var particle_warn_normal: PackedScene = load("res://scene/effect/particle/particle_warn_normal.tscn")
var particle_warn_mid: PackedScene = load("res://scene/effect/particle/particle_warn_mid.tscn")
var particle_warn_heavy: PackedScene = load("res://scene/effect/particle/particle_warn_heavy.tscn")
#debug
var particle_debug_box: PackedScene = load("res://scene/effect/particle/particle_debug_box.tscn") var particle_debug_box: PackedScene = load("res://scene/effect/particle/particle_debug_box.tscn")
var particle_debug_cylinder: PackedScene = load("res://scene/effect/particle/particle_debug_cylinder.tscn") var particle_debug_cylinder: PackedScene = load("res://scene/effect/particle/particle_debug_cylinder.tscn")
#==config== #==config==
#character #character
var cfg_character_player: CharacterCfg = load("res://config/character/hero01.tres") as CharacterCfg var cfg_character_player: CharacterCfg = load("res://config/character/hero01.tres") as CharacterCfg
var cfg_character_monster_test0: CharacterCfg = load("res://config/character/monster00.tres") as CharacterCfg
var cfg_character_monster_test1: CharacterCfg = load("res://config/character/monster01.tres") as CharacterCfg var cfg_character_monster_test1: CharacterCfg = load("res://config/character/monster01.tres") as CharacterCfg
var cfg_character_monster_test2: CharacterCfg = load("res://config/character/monster02.tres") as CharacterCfg var cfg_character_monster_test2: CharacterCfg = load("res://config/character/monster02.tres") as CharacterCfg
var cfg_character_monster_test3: CharacterCfg = load("res://config/character/monster03.tres") as CharacterCfg var cfg_character_monster_test3: CharacterCfg = load("res://config/character/monster03.tres") as CharacterCfg

@ -67,6 +67,7 @@ func on_ai_alert_max_changed(value):
func on_ai_alert_changed(value): func on_ai_alert_changed(value):
alert_bar.value = value alert_bar.value = value
alert_bar.visible = value > 0
func on_stun_changed(value): stun_bar.value = value func on_stun_changed(value): stun_bar.value = value

Loading…
Cancel
Save