From e8413dd01b464329e001932d267721b73be95881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Fri, 8 May 2026 15:43:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=AD=A6=E5=99=A8=E7=B3=BB=E7=BB=9F):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A5=9E=E6=89=8B=E7=8E=89=E6=AD=A6=E5=99=A8?= =?UTF-8?q?=E5=B9=B6=E5=AE=8C=E5=96=84=E6=A0=BC=E6=8C=A1=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加新武器"神手玉",实现不同类型的攻击格挡效果: - 近战挥舞:化解伤害 - 近战戳刺:反弹伤害并击退 - 远程射弹:概率弹反 - 猛冲攻击:反弹速度 - 吐息攻击:产生击退 - 魔法/召唤攻击:少量储能 调整Parry.gd的相机震动参数,增加BulletBase的MotionType枚举值STAB,完善Parrier.gd对不同攻击类型的处理逻辑。同时添加Debug测试boss选项,修复AcidS.gd的缩进问题。 --- components/Bullets/AcidStorm.tscn | 15 +++---- components/Bullets/SwingSword.tscn | 24 ++++++++++ components/Bullets/Volcano.tscn | 28 +++++++++++- components/Characters/Lynx.tscn | 4 ++ .../Scenes/FullscreenPanels/Starter.tscn | 4 +- components/Weapons/Tree.tscn | 42 +++++++++--------- resources/weapons/Jade_神手玉.png | Bin 0 -> 22698 bytes resources/weapons/Jade_神手玉.png.import | 40 +++++++++++++++++ scripts/Contents/Bullets/AcidS.gd | 8 ++-- scripts/Contents/Bullets/Parrier.gd | 6 +++ scripts/Contents/Characters/EnergyBlock.gd | 10 ++--- scripts/Contents/Effects/Parry.gd | 2 +- scripts/Contents/Panels/Starter.gd | 4 +- scripts/Statemachine/BulletBase.gd | 3 +- 14 files changed, 147 insertions(+), 43 deletions(-) create mode 100644 resources/weapons/Jade_神手玉.png create mode 100644 resources/weapons/Jade_神手玉.png.import diff --git a/components/Bullets/AcidStorm.tscn b/components/Bullets/AcidStorm.tscn index c3eab9f..4e78121 100644 --- a/components/Bullets/AcidStorm.tscn +++ b/components/Bullets/AcidStorm.tscn @@ -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 diff --git a/components/Bullets/SwingSword.tscn b/components/Bullets/SwingSword.tscn index 7c18d3c..c199ff7 100644 --- a/components/Bullets/SwingSword.tscn +++ b/components/Bullets/SwingSword.tscn @@ -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 = { diff --git a/components/Bullets/Volcano.tscn b/components/Bullets/Volcano.tscn index 46b5abe..4df3685 100644 --- a/components/Bullets/Volcano.tscn +++ b/components/Bullets/Volcano.tscn @@ -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") diff --git a/components/Characters/Lynx.tscn b/components/Characters/Lynx.tscn index c4952a2..a7b8220 100644 --- a/components/Characters/Lynx.tscn +++ b/components/Characters/Lynx.tscn @@ -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 diff --git a/components/Scenes/FullscreenPanels/Starter.tscn b/components/Scenes/FullscreenPanels/Starter.tscn index 3b5bcbf..7593e11 100644 --- a/components/Scenes/FullscreenPanels/Starter.tscn +++ b/components/Scenes/FullscreenPanels/Starter.tscn @@ -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 diff --git a/components/Weapons/Tree.tscn b/components/Weapons/Tree.tscn index 50e7328..7a88963 100644 --- a/components/Weapons/Tree.tscn +++ b/components/Weapons/Tree.tscn @@ -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 = "“卸劲反伤”" diff --git a/resources/weapons/Jade_神手玉.png b/resources/weapons/Jade_神手玉.png new file mode 100644 index 0000000000000000000000000000000000000000..26a3efa913429adebef02583f2c768544d38cf22 GIT binary patch literal 22698 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 p?gs)T7eZN^V{1-2XN6>l{~vl?(9g!