enemy AI stops chasing after a certain distance

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Maziraga

There’s an odd interaction between my player and the enemy AI when it comes to chasing. Basically in the scene where the enemy and player is together, it will come close to the player right until it gets to the same distance as when they were first placed in the scene. so for example if my enemy was 5 inches away from the player when i placed it on the scene, it will only chase the player up until the enemy is 5 inches away from the player. if the player tries to get close the enemy will try to move away and get to that 5 inch distance. here is the code i am using for the enemy

	extends KinematicBody2D


var player = null
var move = Vector2.ZERO
var speed = 200

func _physics_process(delta):
	move = Vector2.ZERO
	
	if player != null:
		move = position.direction_to(player.position) * speed
	else:
		move = Vector2.ZERO
	
	move = move.normalized()
	move = move_and_collide(move)


func _on_Area2D_body_entered(body):
	if body != self:
		player = body


func _on_Area2D_body_exited(body):
	player = null

if it matters, here is the player code

	extends KinematicBody2D

var movespeed = 400
var friction = 0.05
var acceleration = 0.1
var velocity = Vector2()
var righthand = true
onready var animationplayer = $AnimationPlayer


func get_input():
	var input = Vector2()
	if Input.is_action_pressed("UP"):
		input.y -= 1
	if Input.is_action_pressed("DOWN"):
		input.y += 1
	if Input.is_action_pressed("LEFT"):
		input.x -= 1
	if Input.is_action_pressed("RIGHT"):
		input.x += 1
	return input
	
func _physics_process(delta):
	var direction = get_input()
	
	if direction.length() > 0:
		velocity = lerp(velocity, direction.normalized() * movespeed, acceleration)
	else:
		velocity = lerp(velocity, Vector2.ZERO, friction)
	
	velocity = move_and_slide(velocity)
	
	look_at(get_global_mouse_position())
	

func _process(delta):
	if Input.is_action_just_pressed("ATTACK"):
		
		if righthand == true:
			animationplayer.play("Attack left hand")
			yield(animationplayer, "animation_finished")
			animationplayer.play("Idle hands")
			righthand = false
			
			
		elif righthand == false:
			animationplayer.play("Attack right hand")
			yield(animationplayer, "animation_finished")
			animationplayer.play("Idle hands")
			righthand = true
:bust_in_silhouette: Reply From: Inces

use global_position