`extends "res://Characters/NPCs/PlayerDetection.gd"
onready var destinations = $"../../Destinations".get_children()
onready var timer = $Timer
onready var navAgent : NavigationAgent2D
var target_pos: Vector2
var state = NAVIGATE
enum {
IDLE,
NAVIGATE
}
func ready():
navAgent = $NavigationAgent2D
randomize()
decidedest()
func physicsprocess(delta):
match state:
NAVIGATE:
navigate()
IDLE:
idle_state()
func decidedest():
targetpos = destinations[randi() % destinations.size() - 1].position
func navigate():
navAgent.settargetlocation(targetpos)
var targetloc = navAgent.getnextlocation()
lookat(targetloc)
var direction = position.directionto(targetloc)
var velocity = navAgent.maxspeed * direction
moveandslide(velocity)
if navAgent.istarget_reached():
state = "IDLE"
func idlestate():
if timer.isstopped():
timer.start()
func onTimertimeout():
decidedest()
state = NAVIGATE`