1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 15:01:53 +08:00
Files
Dog-Lynx-And-HCN/scripts/Contents/Bullets/SevenSoul.gd
T
fallingshrimp 46ea2fc775 feat(子弹系统): 重构伤害计算并添加音效
将子弹的伤害属性从`damage`重命名为`baseDamage`,并引入`damageMultipliers`数组支持多段伤害
为火山武器添加三段攻击音效并调整伤害倍率
更新相关武器和子弹脚本以适配新的伤害系统
2025-11-22 08:42:51 +08:00

38 lines
1.1 KiB
GDScript

extends BulletBase
var colors = [
"#2BEAFF",
"#FCA500",
"#0042FF",
"#D346D0",
"#0C9B0B",
"#FDEB0F"
]
var index = 0
var generationDuration: float = 15000
var pingAfterGeneration: float = 5000
@onready var heart = $"%heart"
@onready var effect: GPUParticles2D = $"%effect"
func register():
area_entered.connect(
func(area):
var bullet = BulletTool.fromArea(area)
if bullet and BulletTool.canDamage(bullet, launcher):
launcher.storeEnergy(baseDamage * 2)
)
func spawn():
modulate = Color(colors[index % colors.size()])
effect.emitting = true
func ai():
rotation_degrees = 360.0 / colors.size() * index + timeLived() / generationDuration * 360 - index / 6.0 * 360.0
heart.global_rotation_degrees = 0
PresetBulletAI.lockLauncher(self, launcher, true)
func applyDot():
if timeLived() > generationDuration * ((6.0 - index) / 6.0) + pingAfterGeneration:
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