extends Enemy var target_player: Player = null const MOVE_SPEED := 30 const SMOKE_PARTICLE = preload("uid://d08nv4qtfouv1") func _physics_process(delta: float) -> void: target_player = get_tree().get_first_node_in_group("Players") if $TrackJoint.is_attached == false: handle_movement(delta) $Sprite.scale.x = -direction func handle_movement(delta: float) -> void: var target_direction = sign(target_player.global_position.x - global_position.x) if target_direction != 0: direction = target_direction if target_player.direction == direction: if $Sprite.animation != "Move": $Sprite.play("Move") velocity = lerp(velocity, 30 * global_position.direction_to(target_player.global_position), delta * 5) else: if $Sprite.animation != "Idle": $Sprite.play("Idle") velocity = lerp(velocity, Vector2.ZERO, delta * 5) global_position += velocity * delta func summon_smoke_particle() -> void: var particle = SMOKE_PARTICLE.instantiate() particle.global_position = global_position add_sibling(particle)