Files
Dawn-Godot/scripts/Entities/BasicNPCEntity.gd

35 lines
932 B
GDScript

class_name BasicNPCEntity extends "res://scripts/Entities/OverworldEntity.gd"
const Event = preload("res://scripts/Events/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