1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

feat(子弹): 添加白色灵魂子弹并调整相关配置

添加新的WhiteSoul子弹类型,继承自BulletBase
调整SevenSoul子弹逻辑,使其能生成WhiteSoul子弹
修改Chick角色的攻击冷却时间和子弹数量
更新SevenSoul武器的伤害描述和音效音量
将默认测试波次改为Chick
移除Diamond子弹的自伤逻辑
This commit is contained in:
2025-09-26 22:12:48 +08:00
parent 82751747af
commit a056f75fdb
7 changed files with 75 additions and 5 deletions
+57
View File
@@ -0,0 +1,57 @@
[gd_scene load_steps=10 format=3 uid="uid://gnenrlcspjuq"]
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_k41ea"]
[ext_resource type="Script" path="res://scripts/Contents/Bullets/WhiteSoul.gd" id="2_ld7n7"]
[ext_resource type="Texture2D" uid="uid://wy10fc3bqppg" path="res://resources/bullets/seven-soul/soul.png" id="2_mqva0"]
[sub_resource type="SpriteFrames" id="SpriteFrames_3yyb4"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_mqva0")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="Curve" id="Curve_r03vp"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_bd63g"]
curve = SubResource("Curve_r03vp")
[sub_resource type="Curve" id="Curve_rtb8e"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.75), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_7ga5a"]
curve = SubResource("Curve_rtb8e")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_u4kq5"]
particle_flag_disable_z = true
direction = Vector3(0, -1, 0)
spread = 0.0
initial_velocity_min = 150.0
initial_velocity_max = 150.0
gravity = Vector3(0, 0, 0)
scale_min = 0.8
scale_max = 0.8
scale_curve = SubResource("CurveTexture_7ga5a")
alpha_curve = SubResource("CurveTexture_bd63g")
[node name="WhiteSoul" instance=ExtResource("1_k41ea")]
texture_filter = 1
script = ExtResource("2_ld7n7")
speed = 1.0
[node name="texture" parent="." index="0"]
rotation = -1.5708
sprite_frames = SubResource("SpriteFrames_3yyb4")
[node name="trail" type="GPUParticles2D" parent="texture" index="1"]
amount = 10
process_material = SubResource("ParticleProcessMaterial_u4kq5")
texture = ExtResource("2_mqva0")
local_coords = true
+2 -1
View File
@@ -18,6 +18,7 @@ cooldown = 2000.0
[node name="attack" parent="sounds" index="0"]
stream = ExtResource("4_tmgox")
volume_db = 20.0
[node name="avatar" parent="container/info" index="0"]
texture = ExtResource("4_a4r2b")
@@ -27,4 +28,4 @@ displayName = "人类灵魂"
typeTopic = 3
[node name="description" parent="container" index="2"]
text = "[center]召唤7条人类灵魂,每条以10Hz的频率造成[color=cyan]2[/color]→[color=yellow]3[/color]点伤害。[/center]"
text = "[center]召唤7条人类灵魂,每条以10Hz的频率造成[color=cyan]1[/color]→[color=yellow]2[/color]点伤害。[/center]"
-1
View File
@@ -6,7 +6,6 @@ const traceTime = 1500
func register():
damage = 2
func ai():
canDamageSelf = !(timeLived() >= traceTime)
PresetBulletAI.forward(self, rotation)
if timeLived() < traceTime:
PresetBulletAI.trace(self, launcher.currentFocusedBoss.getTrackingAnchor(), 0.05)
+5
View File
@@ -9,6 +9,7 @@ var colors = [
"#FDEB0F"
]
var index = 0
var spawnedChild = false
@onready var heart = $"%heart"
@onready var effect: GPUParticles2D = $"%effect"
@@ -16,12 +17,16 @@ var index = 0
func spawn():
modulate = Color(colors[index % colors.size()])
effect.emitting = true
func ai():
rotation_degrees = 360.0 / colors.size() * index + timeLived() / 20000.0 * 360 - index / 6.0 * 360.0
heart.global_rotation_degrees = 0
PresetBulletAI.lockLauncher(self, launcher, true)
func applyDot():
if timeLived() > 20000 * ((6.0 - index) / 6.0):
if !spawnedChild:
BulletBase.generate(ComponentManager.getBullet("WhiteSoul"), launcher, heart.global_position, rotation)
spawnedChild = true
BulletBase.generate(ComponentManager.getBullet("SoulBall"), launcher, heart.global_position, heart.global_position.angle_to_point(get_global_mouse_position()))
await TickTool.millseconds(100)
return true
+8
View File
@@ -0,0 +1,8 @@
extends BulletBase
func register():
speed = 1
func ai():
speed *= 1.1
damage = speed
PresetBulletAI.forward(self, rotation)
+2 -2
View File
@@ -6,7 +6,7 @@ class_name Chick
func register():
fields[FieldStore.Entity.MAX_HEALTH] = 1000
fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.4
attackCooldownMap[0] = 200
attackCooldownMap[0] = 400
attackCooldownMap[1] = 12000
attackCooldownMap[2] = 2000
attackCooldownMap[3] = 3000
@@ -25,7 +25,7 @@ func ai():
func attack(type):
if type == 0:
var weaponPos = findWeaponAnchor("normal")
for i in randi_range(10, 20):
for i in randi_range(7, 16):
BulletBase.generate(ComponentManager.getBullet("Diamond"), self, weaponPos + MathTool.randv2_range(20), rotation + deg_to_rad(randf_range(-90, 90)))
elif type == 1:
var laserCount = randi_range(2, 4)
+1 -1
View File
@@ -30,7 +30,7 @@ static var WAVE_TESTBOSS_CHICK = [
Wave.create("Chick", 0, 0, true, 0, INF, 10),
]
static var WAVE_EMPTY = []
static var data = WAVE_TESTBOSS_BEAR
static var data = WAVE_TESTBOSS_CHICK
static func customStart():
if false: