1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-07-03 00:32:12 +08:00

feat(武器系统): 添加神手玉武器并完善格挡机制

添加新武器"神手玉",实现不同类型的攻击格挡效果:
- 近战挥舞:化解伤害
- 近战戳刺:反弹伤害并击退
- 远程射弹:概率弹反
- 猛冲攻击:反弹速度
- 吐息攻击:产生击退
- 魔法/召唤攻击:少量储能

调整Parry.gd的相机震动参数,增加BulletBase的MotionType枚举值STAB,完善Parrier.gd对不同攻击类型的处理逻辑。同时添加Debug测试boss选项,修复AcidS.gd的缩进问题。
This commit is contained in:
2026-05-08 15:43:55 +08:00
parent c079c20f28
commit e8413dd01b
14 changed files with 147 additions and 43 deletions
+7 -8
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=9 format=3 uid="uid://clr5pbkifgear"]
[gd_scene format=3 uid="uid://clr5pbkifgear"]
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_qpsi6"]
[ext_resource type="Script" uid="uid://dl7d0v7f2uute" path="res://scripts/Contents/Bullets/AcidStorm.gd" id="2_daxsl"]
@@ -104,22 +104,21 @@ _data = {
[sub_resource type="CircleShape2D" id="CircleShape2D_daxsl"]
radius = 59.008472
[node name="AcidStorm" instance=ExtResource("1_qpsi6")]
[node name="AcidStorm" unique_id=61904763 instance=ExtResource("1_qpsi6")]
script = ExtResource("2_daxsl")
speed = 2.5
motionType = 3
penerate = 1.0
autoSpawnAnimation = true
freeAfterSpawn = true
[node name="texture" parent="." index="0"]
[node name="texture" parent="." index="0" unique_id=162977358]
scale = Vector2(0.2, 0.2)
sprite_frames = SubResource("SpriteFrames_daxsl")
[node name="animator" parent="texture" index="0"]
libraries = {
&"": SubResource("AnimationLibrary_5atmc")
}
[node name="animator" parent="texture" index="0" unique_id=1114087117]
libraries/ = SubResource("AnimationLibrary_5atmc")
[node name="hitbox" parent="." index="1"]
[node name="hitbox" parent="." index="1" unique_id=175349408]
shape = SubResource("CircleShape2D_daxsl")
disabled = true
+24
View File
@@ -68,6 +68,18 @@ tracks/4/keys = {
"update": 1,
"values": [true]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("%texture/..:motionType")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_nqryj"]
resource_name = "destroy"
@@ -203,6 +215,18 @@ tracks/7/keys = {
"update": 1,
"values": [false, true]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("%texture/..:motionType")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0, 1.7),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [0, 6]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ccsa1"]
_data = {
+26 -2
View File
@@ -55,6 +55,18 @@ tracks/3/keys = {
"update": 1,
"values": [0]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("%texture/..:motionType")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_oinqg"]
resource_name = "destroy"
@@ -151,6 +163,18 @@ tracks/5/keys = {
"method": &"generateShadow"
}]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("%texture/..:motionType")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.3, 1.45),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [6, 0, 6]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_w1utg"]
_data = {
@@ -186,8 +210,8 @@ texture = ExtResource("2_wwxm2")
[node name="audio" type="AudioStreamPlayer2D" parent="texture/anchor/textureSword" index="0" unique_id=167399724]
[node name="hitbox" parent="." index="1" unique_id=175349408 node_paths=PackedStringArray("target")]
position = Vector2(150, 0)
rotation = 1.5707964
position = Vector2(299.99997, 0.1221919)
rotation = 0.00040731629
shape = SubResource("CircleShape2D_1sgli")
script = ExtResource("7_1sgli")
target = NodePath("../texture/anchor/textureSword")
+4
View File
@@ -3,9 +3,13 @@
[ext_resource type="PackedScene" uid="uid://bs863g2s8r770" path="res://components/Abstracts/PlayerBase.tscn" id="1_ns0m5"]
[ext_resource type="Script" uid="uid://b8g0hkqvyeptg" path="res://scripts/Contents/Characters/Lynx.gd" id="2_d6nve"]
[ext_resource type="PackedScene" uid="uid://frwt0fgrpskb" path="res://components/Weapons/Meowmere.tscn" id="3_nitbu"]
[ext_resource type="PackedScene" uid="uid://cx7nogfnv7s8t" path="res://components/Weapons/Tree.tscn" id="4_7h885"]
[node name="Lynx" unique_id=1711205167 instance=ExtResource("1_ns0m5")]
script = ExtResource("2_d6nve")
displayName = "猞猁"
[node name="Meowmere" parent="weaponStore" index="0" unique_id=1965287972 instance=ExtResource("3_nitbu")]
[node name="Tree" parent="weaponStore" index="1" unique_id=185228402 instance=ExtResource("4_7h885")]
debugRebuild = false
@@ -298,13 +298,15 @@ size_flags_horizontal = 3
theme = ExtResource("4_lfxcn")
selected = 0
allow_reselect = true
item_count = 3
item_count = 4
popup/item_0/text = "无尽波次·标准游戏体验"
popup/item_0/id = 0
popup/item_1/text = "Boss Rush"
popup/item_1/id = 1
popup/item_2/text = "割草·高难度⚠️"
popup/item_2/id = 2
popup/item_3/text = "[Debug] Testboss"
popup/item_3/id = 3
[node name="useTutorial" type="HBoxContainer" parent="content/wrapper/layout/startGameWrapper/start/starter/singleplayer/playConfig" index="2" unique_id=2079979053]
layout_mode = 2
+22 -20
View File
@@ -2,12 +2,12 @@
[ext_resource type="PackedScene" uid="uid://ckq2cq6m23hq3" path="res://components/Abstracts/WeaponCardBase.tscn" id="1_0lbwr"]
[ext_resource type="Script" uid="uid://bqdyhwcd4jwmj" path="res://scripts/Contents/Weapons/Tree.gd" id="2_jsuc8"]
[ext_resource type="Texture2D" uid="uid://74n7umby4d4w" path="res://resources/weapons/ParryCounter.png" id="3_nwamk"]
[ext_resource type="Texture2D" uid="uid://w5yqnejlmfou" path="res://resources/weapons/Jade_神手玉.png" id="3_nwamk"]
[node name="Tree" unique_id=185228402 instance=ExtResource("1_0lbwr")]
script = ExtResource("2_jsuc8")
avatarTexture = ExtResource("3_nwamk")
displayName = "扶桑元神"
displayName = "神手玉"
quality = 4
typeTopic = 3
costBeachball = 900
@@ -24,26 +24,27 @@ storeType = {
"max": 1,
"rate": 2
}
descriptionTemplate = "进行[b]格挡[/b],化解飞来的子弹
descriptionTemplate = "进行[b]格挡[/b],化解敌人的攻击
每成功格挡一次,获得一点[b]气力[/b]。
每拥有一点气力,增加[color=yellow]1[/color]点冲刺速度,闪避穿过敌人时对其贴上一层[b]符咒[/b],符咒会自动引爆,召唤[b]乾坤剑[/b]穿透敌人。
每拥有一点气力,增加[color=yellow]1[/color]点冲刺速度,闪避穿过敌人时对其贴上一层[b]符咒[/b],符咒会自动引爆,召唤[b]乾坤剑[/b]穿透敌人。
近战攻击造成乾坤剑的$rate点伤害。
每次格挡有$rate的概率弹反,子弹弹反后造成乾坤剑的$rate伤害。
每次格挡最多化解$count个子弹,
体内最多储存$max点气力。
每化解[color=yellow]1[/color]点伤害,
乾坤剑造成的伤害+$atk点。
格挡时机越精确,成功率越高。
格挡成功后继续按住攻击可进行[b]蓄力[/b],
其后松开格挡键进行[b]无量反击[/b],
可弹反一切子弹,
但需消耗[color=yellow]1[/color]层气力,
可将弹反的伤害转换为能量。"
对于[b]近战挥舞[/b]攻击,化解本次伤害;
对于[b]近战戳刺[/b]攻击,将本次伤害反弹,造成乾坤剑的$rate伤害并产生大量击退;
对于[b]远程射弹[/b]攻击,化解本次伤害,有$rate的概率发生[b]弹反[/b],子弹弹反后造成乾坤剑的$rate伤害;
对于[b]猛冲[/b]攻击,化解本次伤害,并反弹敌人的速度;
对于[b]吐息[/b]攻击,[color=red]无法化解伤害[/color]但可以对敌人产生少量击退;
对于[b]魔法或召唤[/b]攻击,[color=red]无法化解伤害[/color]但可以少量储能;"
sources = Array[String](["Nine Sols", "Terraria"])
tease = "卸劲反伤"
cooldown = 250.0
debugRebuild = true
[node name="avatar" parent="container/info" parent_id_path=PackedInt32Array(1625294072) index="0" unique_id=1021985889]
texture = ExtResource("3_nwamk")
@@ -52,7 +53,7 @@ texture = ExtResource("3_nwamk")
count = 900
[node name="name" parent="container/info/displays" parent_id_path=PackedInt32Array(784441328) index="0" unique_id=1576068972]
displayName = "扶桑元神"
displayName = "神手玉"
quality = 4
typeTopic = 3
@@ -60,23 +61,24 @@ typeTopic = 3
text = "Nine Sols × Terraria"
[node name="description" parent="container" parent_id_path=PackedInt32Array(575698869) index="2" unique_id=566230682]
text = "[center]进行[b]格挡[/b],化解飞来的子弹
text = "[center]进行[b]格挡[/b],化解敌人的攻击
每成功格挡一次,获得一点[b]气力[/b]。
每拥有一点气力,增加[color=yellow]1[/color]点冲刺速度,闪避穿过敌人时对其贴上一层[b]符咒[/b],符咒会自动引爆,召唤[b]乾坤剑[/b]穿透敌人。
近战攻击造成乾坤剑的[color=cyan]100.0%[/color]点伤害。
每拥有一点气力,增加[color=yellow]1[/color]点冲刺速度,闪避穿过敌人时对其贴上一层[b]符咒[/b],符咒会自动引爆,召唤[b]乾坤剑[/b]穿透敌人。
近战攻击造成乾坤剑的[color=cyan]25.0%[/color]点伤害。
每次格挡有[color=cyan]100.0%[/color]的概率弹反,子弹弹反后造成乾坤剑的[color=cyan]100.0%[/color]伤害。
每次格挡最多化解[color=cyan]1[/color]个子弹,
体内最多储存[color=cyan]3[/color]点气力。
每化解[color=yellow]1[/color]点伤害,
乾坤剑造成的伤害+[color=cyan]10[/color]点。
格挡时机越精确,成功率越高。
格挡成功后继续按住攻击可进行[b]蓄力[/b],
其后松开格挡键进行[b]无量反击[/b],
可弹反一切子弹,
但需消耗[color=yellow]1[/color]层气力,
可将弹反的伤害转换为能量。[/center]"
对于[b]近战挥舞[/b]攻击,化解本次伤害;
对于[b]近战戳刺[/b]攻击,将本次伤害反弹,造成乾坤剑的[color=cyan]25.0%[/color]伤害并产生大量击退;
对于[b]远程射弹[/b]攻击,化解本次伤害,有[color=cyan]25.0%[/color]的概率发生[b]弹反[/b],子弹弹反后造成乾坤剑的[color=cyan]25.0%[/color]伤害;
对于[b]猛冲[/b]攻击,化解本次伤害,并反弹敌人的速度;
对于[b]吐息[/b]攻击,[color=red]无法化解伤害[/color]但可以对敌人产生少量击退;
对于[b]魔法或召唤[/b]攻击,[color=red]无法化解伤害[/color]但可以少量储能;[/center]"
[node name="tease" parent="container" parent_id_path=PackedInt32Array(575698869) index="3" unique_id=689277044]
visible = true
text = "“卸劲反伤”"