class_name BasicNPCEntity extends "res://scripts/Entity/OverworldEntity.gd" const Event = preload("res://scripts/Event/Event.gd"); enum BasicNPCMoveType { STILL, RANDOM_LOOK }; @export var interactEvent:Event; @export var moveType:BasicNPCMoveType = BasicNPCMoveType.STILL; @export var randomLookMinTime:float = 1.5; @export var randomLookMaxTime:float = 4.0; var randomLookTimer:float = 0.0; func interact(interactor:OverworldEntity) -> void: if interactEvent == null: push_error("BasicNPCEntity: interactType EVENT but no event set"); return interactEvent.onEntityInteract(interactor, self); func updateMovement(delta:float) -> void: if moveType == BasicNPCMoveType.STILL: return if moveType == BasicNPCMoveType.RANDOM_LOOK: randomLookTimer -= delta; if randomLookTimer <= 0: randomLookTimer = randf_range(randomLookMinTime, randomLookMaxTime); self.direction = randi_range(0, 3); return pass