2025-09-06 18:33:11 +08:00
|
|
|
class_name PresetBulletAI
|
2025-08-29 10:56:33 +08:00
|
|
|
|
2025-11-08 20:19:24 +08:00
|
|
|
static func lockLauncher(bullet: BulletBase, launcher: EntityBase, onTexture: bool = false, useSummoned: bool = false):
|
|
|
|
|
if useSummoned:
|
|
|
|
|
if is_instance_valid(bullet.launcherSummoned):
|
|
|
|
|
launcher = bullet.launcherSummoned
|
2025-08-29 11:17:02 +08:00
|
|
|
bullet.position = launcher.texture.global_position if onTexture else launcher.position
|
2025-08-29 10:56:33 +08:00
|
|
|
static func forward(bullet: BulletBase, rotation: float):
|
|
|
|
|
bullet.forward(Vector2.from_angle(rotation))
|
2025-08-29 11:17:02 +08:00
|
|
|
static func trace(bullet: BulletBase, target: Vector2, speed: float):
|
|
|
|
|
bullet.rotation = lerp_angle(
|
|
|
|
|
bullet.rotation,
|
|
|
|
|
bullet.position.angle_to_point(target),
|
|
|
|
|
speed
|
|
|
|
|
)
|
2025-09-21 12:46:32 +08:00
|
|
|
static func faceToMouse(bullet: BulletBase):
|
|
|
|
|
bullet.rotation = bullet.position.angle_to_point(bullet.get_global_mouse_position())
|
2025-11-15 19:33:10 +08:00
|
|
|
static func selfRotate(bullet: BulletBase, speed: float):
|
|
|
|
|
bullet.rotation += deg_to_rad(speed)
|
2025-11-16 16:01:03 +08:00
|
|
|
static func lerpPosition(bullet: BulletBase, target: Vector2, speed: float):
|
|
|
|
|
bullet.position = bullet.position.lerp(target, speed)
|