extends Node @export var force_multiplier: float @export_node_path(RigidBody3D) var target_path: NodePath @export var is_magnetized := false @onready var target: RigidBody3D = get_node(target_path) signal magnetized() func magnetize(): is_magnetized = true emit_signal("magnetized") func _physics_process(delta): if is_magnetized and target != null: var direction = Singletons.player.position - target.position var force = direction.normalized() * force_multiplier * delta target.apply_force(force) func _on_magnet_area_body_entered(body: Node3D): if body is Player: magnetize()