From dc2c1aea70ce88f074f86b6e99704d23e8769a6e 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: Sat, 29 Nov 2025 18:20:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(Volcano):=20=E8=B0=83=E6=95=B4=E4=BC=A4?= =?UTF-8?q?=E5=AE=B3=E8=AE=A1=E7=AE=97=E5=B9=B6=E4=BC=98=E5=8C=96=E5=8A=A8?= =?UTF-8?q?=E7=94=BB=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 降低武器升级时的伤害加成系数 - 减少火山幻影数量 - 移除调试标记debugRebuild - 优化动画轨道和碰撞检测 - 添加新的矩形碰撞区域hitbox4 --- components/Bullets/Volcano.tscn | 130 +++++++++++++--------------- components/Weapons/Volcano.tscn | 1 - scripts/Contents/Weapons/Volcano.gd | 12 +-- 3 files changed, 65 insertions(+), 78 deletions(-) diff --git a/components/Bullets/Volcano.tscn b/components/Bullets/Volcano.tscn index c33553b..0e05dca 100644 --- a/components/Bullets/Volcano.tscn +++ b/components/Bullets/Volcano.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=3 uid="uid://8uepi7uql314"] +[gd_scene load_steps=15 format=3 uid="uid://8uepi7uql314"] [ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_gd3m7"] [ext_resource type="Script" uid="uid://ci5hswfhck5as" path="res://scripts/Contents/Bullets/Volcano.gd" id="2_w1utg"] @@ -78,40 +78,30 @@ tracks/5/keys = { "points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), "times": PackedFloat32Array(0) } -tracks/6/type = "bezier" +tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true -tracks/6/path = NodePath("anchor:scale:y") +tracks/6/path = NodePath("%texture/..:usingDamageMultiplier") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { -"handle_modes": PackedInt32Array(0), -"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), -"times": PackedFloat32Array(0) -} -tracks/7/type = "bezier" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("anchor:modulate:a") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { -"handle_modes": PackedInt32Array(0), -"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), -"times": PackedFloat32Array(0) -} -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("%texture/..:usingDamageMultiplier") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [0] } +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("%texture/../hitbox4:disabled") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} [sub_resource type="Animation" id="Animation_oinqg"] resource_name = "destroy" @@ -152,9 +142,9 @@ tracks/2/path = NodePath("anchor:rotation") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"handle_modes": PackedInt32Array(0, 0, 0, 0, 2, 1, 1), -"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0, 0.7853982, -0.06585455, -0.14365458, 0.2, 0, -0.7853982, -0.06666666, 0.2617994, 0, 0, -0.7853982, -0.033333343, 0, 0, 0, 5.497787, 0, 0, 0, 0, 0, 0, 0, 0, 0), -"times": PackedFloat32Array(0, 0.3, 0.6, 0.888264, 1.2, 1.45, 1.7079643) +"handle_modes": PackedInt32Array(0, 0, 0, 0, 0, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0, 0.7853982, -0.06585455, -0.14365458, 0.2, 0, -0.7853982, -0.06666666, 0.2617994, 0, 0, -0.7853982, -0.033333343, 0, 0, 0, 3.142, -0.041666668, 0.91629785, 0, 0), +"times": PackedFloat32Array(0, 0.3, 0.6, 0.888264, 1.2, 1.45) } tracks/3/type = "value" tracks/3/imported = false @@ -175,7 +165,7 @@ tracks/4/path = NodePath("%texture/../hitbox3:disabled") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { -"times": PackedFloat32Array(0, 1.2, 1.4, 1.45, 1.7106247), +"times": PackedFloat32Array(0, 1.2, 1.4, 1.45, 1.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1), "update": 1, "values": [true, false, true, false, true] @@ -188,50 +178,28 @@ tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { "handle_modes": PackedInt32Array(0, 0), -"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1e-05, -0.033333343, 0.16666502, 0, 0), -"times": PackedFloat32Array(1.75, 2) +"points": PackedFloat32Array(1, 0, 0, 0.2, 0, -1, 0, 0, 0, 0), +"times": PackedFloat32Array(1.45, 1.7) } -tracks/6/type = "bezier" +tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true -tracks/6/path = NodePath("anchor:scale:y") +tracks/6/path = NodePath("%texture/..:usingDamageMultiplier") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { -"handle_modes": PackedInt32Array(0, 0), -"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1e-05, -0.033333343, 0.16666502, 0, 0), -"times": PackedFloat32Array(1.75, 2) -} -tracks/7/type = "bezier" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("anchor:modulate:a") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { -"handle_modes": PackedInt32Array(0, 0), -"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 0, -0.033333343, 0.16666669, 0, 0), -"times": PackedFloat32Array(1.75, 2) -} -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("%texture/..:usingDamageMultiplier") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { "times": PackedFloat32Array(0, 0.6, 1.2, 1.45), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3] } -tracks/9/type = "audio" -tracks/9/imported = false -tracks/9/enabled = true -tracks/9/path = NodePath("%textureSword/audio") -tracks/9/interp = 1 -tracks/9/loop_wrap = true -tracks/9/keys = { +tracks/7/type = "audio" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("%textureSword/audio") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { "clips": [{ "end_offset": 0.0, "start_offset": 0.0, @@ -251,21 +219,33 @@ tracks/9/keys = { }], "times": PackedFloat32Array(0, 0.6, 1.2, 1.45) } -tracks/9/use_blend = true -tracks/10/type = "method" -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/path = NodePath("%texture/..") -tracks/10/interp = 1 -tracks/10/loop_wrap = true -tracks/10/keys = { -"times": PackedFloat32Array(1.45), +tracks/7/use_blend = true +tracks/8/type = "method" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("%texture/..") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(1.65), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"generateShadow" }] } +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("%texture/../hitbox4:disabled") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 1.7), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_w1utg"] _data = { @@ -284,6 +264,9 @@ height = 322.0 [sub_resource type="CircleShape2D" id="CircleShape2D_w1utg"] radius = 390.2512 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_6sp0s"] +size = Vector2(191, 66) + [node name="Volcano" instance=ExtResource("1_gd3m7")] script = ExtResource("2_w1utg") displayName = "火山" @@ -320,3 +303,8 @@ disabled = true [node name="hitbox3" type="CollisionShape2D" parent="." index="3"] shape = SubResource("CircleShape2D_w1utg") disabled = true + +[node name="hitbox4" type="CollisionShape2D" parent="." index="4"] +position = Vector2(308.5, -1) +shape = SubResource("RectangleShape2D_6sp0s") +disabled = true diff --git a/components/Weapons/Volcano.tscn b/components/Weapons/Volcano.tscn index c1a7059..09c0b5d 100644 --- a/components/Weapons/Volcano.tscn +++ b/components/Weapons/Volcano.tscn @@ -34,7 +34,6 @@ storeType = { } descriptionTemplate = "召唤1支[b]火山[/b],以$rotate的效率跟随鼠标指向,进行基础伤害为$atk的4段挥舞攻击。造成的伤害分别为$dmg1,$dmg2,$dmg3,$dmg4,第4段攻击时发射$count支[b]火山幻影[/b],造成$dmg5伤害。" cooldown = 1750.0 -debugRebuild = true [node name="avatar" parent="container/info" index="0"] texture = ExtResource("2_hh01t") diff --git a/scripts/Contents/Weapons/Volcano.gd b/scripts/Contents/Weapons/Volcano.gd index 3b6a3c2..d0c686e 100644 --- a/scripts/Contents/Weapons/Volcano.gd +++ b/scripts/Contents/Weapons/Volcano.gd @@ -3,12 +3,12 @@ extends Weapon func update(to: int, origin: Dictionary, _entity: EntityBase): origin["rotate"] += 0.005 * to * soulLevel - origin["dmg1"] += 0.03 * to * soulLevel - origin["dmg2"] += 0.03 * to * soulLevel - origin["dmg3"] += 0.03 * to * soulLevel - origin["dmg4"] += 0.03 * to * soulLevel - origin["dmg5"] += 0.04 * to * soulLevel - origin["count"] = 1 * soulLevel + 1 + origin["dmg1"] += 0.01 * to * soulLevel + origin["dmg2"] += 0.01 * to * soulLevel + origin["dmg3"] += 0.01 * to * soulLevel + origin["dmg4"] += 0.01 * to * soulLevel + origin["dmg5"] += 0.005 * to * soulLevel + origin["count"] = 1 * soulLevel origin["atk"] += 1 * to * soulLevel return origin func attack(entity: EntityBase):