1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-04 02:37:12 +08:00

feat(武器): 新增道教石像武器及其相关效果

实现道教石像武器,包含以下功能:
- 添加天地之剑攻击逻辑,根据攻击速度、生命值和气层数计算伤害
- 新增无量斩子弹类型和特效
- 为公鸡角色添加新武器配置
- 更新相关动画和音效资源
This commit is contained in:
2026-04-03 18:29:14 +08:00
parent f018378053
commit 7e90bd1c1c
29 changed files with 734 additions and 60 deletions
+116 -24
View File
@@ -2,52 +2,144 @@
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_na6tw"]
[ext_resource type="Script" uid="uid://b7vswg8ju8a0u" path="res://scripts/Contents/Bullets/InfinitySword.gd" id="2_nbqhn"]
[ext_resource type="Texture2D" uid="uid://dbltogf6kgtic" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash5.png" id="2_v6780"]
[ext_resource type="Texture2D" uid="uid://bp687pj8b7wv0" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash6.png" id="3_nbqhn"]
[ext_resource type="Texture2D" uid="uid://btam58pjvht66" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash7.png" id="4_d85mn"]
[ext_resource type="Texture2D" uid="uid://cpaqjor8cb8gb" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash8.png" id="5_6n88i"]
[ext_resource type="Texture2D" uid="uid://ckmkpkkxpui3b" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash9.png" id="6_bk7mn"]
[ext_resource type="Texture2D" uid="uid://fewvfwxtw5bu" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash10.png" id="7_3cvbl"]
[sub_resource type="SpriteFrames" id="SpriteFrames_c741v"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_v6780")
}, {
"duration": 1.0,
"texture": ExtResource("3_nbqhn")
}, {
"duration": 1.0,
"texture": ExtResource("4_d85mn")
}, {
"duration": 1.0,
"texture": ExtResource("5_6n88i")
}, {
"duration": 1.0,
"texture": ExtResource("6_bk7mn")
}, {
"duration": 1.0,
"texture": ExtResource("7_3cvbl")
}],
"loop": false,
"name": &"default",
"speed": 15.0
}]
[sub_resource type="Animation" id="Animation_nbqhn"]
length = 0.001
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_d85mn"]
resource_name = "destroy"
length = 0.5
step = 0.1
[sub_resource type="Animation" id="Animation_6n88i"]
resource_name = "loop"
loop_mode = 1
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 6.28319]
}
[sub_resource type="Animation" id="Animation_bk7mn"]
resource_name = "spawn"
length = 2.0
step = 0.05
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0, 0, 0, 2),
"points": PackedFloat32Array(0, -0.25, 0, 0, 0, 0.5, -0.25, 0, 0, 0, 0.5, 0, 0, 0, 0, 0, -0.25, 0, 0, 0),
"times": PackedFloat32Array(0, 0.15, 1.85, 2)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(2, 0, 0, 0),
"points": PackedFloat32Array(0, 0, 0, 0, 0, 0.5, -0.25, 0, 0, 0, 0.5, 0, 0, 0, 0, 0, -0.25, 0, 0, 0),
"times": PackedFloat32Array(0, 0.15, 1.85, 2)
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.15, 1.85, 2),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3cvbl"]
_data = {
&"RESET": SubResource("Animation_nbqhn"),
&"destroy": SubResource("Animation_d85mn"),
&"loop": SubResource("Animation_6n88i"),
&"spawn": SubResource("Animation_bk7mn")
}
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_v6780"]
radius = 124.0
height = 580.0
[node name="InfinitySword" unique_id=2133299016 instance=ExtResource("1_na6tw")]
script = ExtResource("2_nbqhn")
speed = 25.0
penerate = 1.0
autoSpawnAnimation = true
autoPlayTexture = true
freeAfterSpawn = true
[node name="texture" parent="." index="0"]
[node name="texture" parent="." index="0" unique_id=162977358]
rotation = 2.9485245
scale = Vector2(0.5, 0.5)
scale = Vector2(1e-05, 1e-05)
sprite_frames = SubResource("SpriteFrames_c741v")
frame = 1
[node name="hitbox" parent="." index="1"]
[node name="animator" parent="texture" index="0" unique_id=1114087117]
libraries/ = SubResource("AnimationLibrary_3cvbl")
[node name="hitbox" parent="." index="1" unique_id=175349408]
shape = SubResource("CapsuleShape2D_v6780")
+35 -12
View File
@@ -67,7 +67,6 @@ tracks/0/keys = {
[sub_resource type="Animation" id="Animation_06poh"]
resource_name = "spawn"
length = 3.0
loop_mode = 1
step = 0.1
tracks/0/type = "bezier"
tracks/0/imported = false
@@ -77,7 +76,7 @@ tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(2, 2),
"points": PackedFloat32Array(0, 0, 0, 3.5, 4, -1.57, -1, -2, 0, 0),
"points": PackedFloat32Array(0, 0, 0, 3.5, 4, -1.57, -2, -2, 0, 0),
"times": PackedFloat32Array(0, 3)
}
tracks/1/type = "value"
@@ -87,7 +86,7 @@ tracks/1/path = NodePath(".:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.9, 2.7, 3),
"times": PackedFloat32Array(0, 0.9, 2.2, 3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
@@ -99,11 +98,28 @@ tracks/2/path = NodePath("%hitbox:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 2.4, 3),
"times": PackedFloat32Array(0, 2, 3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, false]
}
tracks/3/type = "method"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("%texture/..")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(1.3, 2),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"beReady"
}, {
"args": [],
"method": &"shoot"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_57ptn"]
_data = {
@@ -114,21 +130,28 @@ _data = {
}
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_6ny68"]
radius = 55.20601
height = 389.01526
radius = 141.9448
height = 725.7404
[node name="Wuwei" unique_id=326826451 instance=ExtResource("1_eg848")]
script = ExtResource("2_vxgkj")
penerate = 1.0
autoSpawnAnimation = true
freeAfterSpawn = true
metadata/_edit_vertical_guides_ = [406.0]
[node name="animator" parent="texture" index="0"]
[node name="animator" parent="texture" parent_id_path=PackedInt32Array(162977358) index="0" unique_id=1114087117]
libraries/ = SubResource("AnimationLibrary_57ptn")
[node name="static" type="Sprite2D" parent="texture" index="1" unique_id=892692141]
position = Vector2(136.00002, 0)
scale = Vector2(0.37746382, 0.37746382)
[node name="static" type="Sprite2D" parent="texture" parent_id_path=PackedInt32Array(162977358) index="1" unique_id=892692141]
position = Vector2(300, 0)
texture = ExtResource("2_6ny68")
[node name="hitbox" parent="." index="1"]
position = Vector2(112, -64)
[node name="anchorSpawn" type="Node2D" parent="texture/static" index="0" unique_id=1327931418]
unique_name_in_owner = true
position = Vector2(170.913, -7)
[node name="hitbox" parent="." index="1" unique_id=175349408]
position = Vector2(235, -77)
rotation = -0.29216617
shape = SubResource("CapsuleShape2D_6ny68")