class_name TargetLine extends RayCast2D onready var visor = $TargetVisor func get_visor_pos() -> Vector2: return visor.position + position func set_visor_pos(new_pos: Vector2) -> void: visor.position = new_pos - position func focus_visor() -> void: cast_to = visor.position force_raycast_update() if is_colliding(): visor.position = get_collision_point() - position func _on_Launcher_move_visor() -> void: focus_visor()