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/BigLaser.gd
T
fallingshrimp ee86fca442 fix: 修复子弹伤害计算并添加命中成功回调
- 在EntityBase.gd中添加takeDamage方法的返回值
- 修改BigLaser.gd中的applyDot延迟时间计算方式并添加succeedToHit方法
- 在BulletBase.gd中完善伤害处理流程,添加命中回调机制
2025-08-28 15:53:39 +08:00

25 lines
900 B
GDScript

extends BulletBase
class_name BigLaser # 这个子弹是玩家的超级武器,耗能高,dps也高
func spawn():
CameraManager.shake(5000, 100) # 激光会运行5秒,期间震屏100强度
CameraManager.playAnimation("bigLaser")
fields[FieldStore.Bullet.DAMAGE] *= launcher.fields[FieldStore.Entity.ATTACK_SPEED]
func ai():
rotation = lerp_angle(rotation, ((get_global_mouse_position() - position).angle()), 0.1)
position = launcher.texture.global_position
func applyDot():
hitbox.disabled = true
await TickTool.millseconds(100 / launcher.fields[FieldStore.Entity.ATTACK_SPEED])
hitbox.disabled = false
await TickTool.millseconds(100 / launcher.fields[FieldStore.Entity.ATTACK_SPEED])
BulletBase.generate(
preload("res://components/Bullets/LaserPluse.tscn"),
launcher,
position,
rotation
)
return true
func succeedToHit(_dmg: float):
fields[FieldStore.Bullet.DAMAGE] *= 1.1