19 lines
563 B
GDScript3
19 lines
563 B
GDScript3
|
|
extends EnemyState
|
||
|
|
|
||
|
|
var rng = RandomNumberGenerator.new()
|
||
|
|
var arrived: bool = true
|
||
|
|
var wanderGoal: Vector2
|
||
|
|
const wanderSpeed := 2.3
|
||
|
|
const wanderRange: float = 20
|
||
|
|
const detectionRange: float = 8
|
||
|
|
|
||
|
|
func Update(_delta: float) -> void:
|
||
|
|
if enemy_ref.distanceClosestPlayer < detectionRange:
|
||
|
|
Transitioned.emit(self,"FollowPlayer")
|
||
|
|
if arrived:
|
||
|
|
wanderGoal = Vector2(rng.randf_range(-wanderRange,wanderRange),rng.randf_range(-wanderRange,wanderRange))
|
||
|
|
arrived = false
|
||
|
|
enemy_ref.pathfind(wanderGoal,wanderSpeed)
|
||
|
|
if enemy_ref.pointPath.size() <= 2:
|
||
|
|
arrived = true
|