1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 23:11:54 +08:00
Files
Dog-Lynx-And-HCN/scripts/Contents/Bullets/BossAttack/Bear/LightGun.gd
T
fallingshrimp 1fa8263667 refactor(BulletBase): 移除子弹注册方法并添加子子弹标记
移除所有子弹类中的register方法,将属性初始化移至其他位置
在BulletBase的trySplit和tryRefract方法中添加子子弹标记
2026-01-17 12:30:09 +08:00

30 lines
1.2 KiB
GDScript

extends BulletBase
@export var allColor: GradientTexture1D = null
@export var length: float = 1000
@onready var track: ShaderStage = $"%track"
@onready var sword: Sprite2D = $"%sword"
@onready var points: GPUParticles2D = $"%points"
var myColor: Color
func spawn():
myColor = allColor.gradient.sample(randf())
track.material = track.material.duplicate()
points.process_material = points.process_material.duplicate()
setColor(myColor)
track.size.y = length
TickTool.modifyAnimationKey(animator, "spawn", "sword:position:x", Animation.TrackType.TYPE_BEZIER, 2.5, length / -2)
TickTool.modifyAnimationKey(animator, "spawn", "sword:position:x", Animation.TrackType.TYPE_BEZIER, 3, length / 2)
TickTool.modifyAnimationKey(animator, "spawn", "%hitbox:position:x", Animation.TrackType.TYPE_BEZIER, 2.5, length / -2)
TickTool.modifyAnimationKey(animator, "spawn", "%hitbox:position:x", Animation.TrackType.TYPE_BEZIER, 3, length / 2)
await TickTool.millseconds(2500)
points.emitting = true
func setColor(color: Color):
color.v *= 2
var result = Color(color)
result.a = 0
track.material.set_shader_parameter("laser_color", result)
sword.modulate = color
points.process_material.color = color