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

43 lines
1.2 KiB
GDScript

extends BulletBase
@export var allColor: GradientTexture1D = null
@onready var superlight: Node2D = $"%superlight"
@onready var trail: GPUParticles2D = $"%trail"
var myColor: Color
var tracer: EntityBase = null
var traceTime: float = 2000
var forwardTime: float = 500
var forwarded: bool = false
func register():
speed = 1
baseDamage = 1
func spawn():
myColor = allColor.gradient.sample(randf())
superlight.material = superlight.material.duplicate()
trail.process_material = trail.process_material.duplicate()
setColor(myColor)
func ai():
superlight.global_rotation_degrees = 90
PresetBulletAI.forward(self, rotation)
if timeLived() <= forwardTime:
speed = 10 * ((forwardTime - timeLived()) / forwardTime)
elif forwarded:
if timeLived() < forwardTime + 2000:
speed = clamp((timeLived() - forwardTime) / 75, 0, 30)
if is_instance_valid(tracer) and timeLived() <= traceTime + forwardTime:
PresetBulletAI.trace(self, tracer.position, 0.1 * (traceTime - (timeLived() - forwardTime)) / traceTime)
else:
forwarded = true
func setColor(color: Color):
texture.self_modulate = color
var mat: ParticleProcessMaterial = trail.process_material
mat.color = color
superlight.material.set_shader_parameter("color", color)