grunk/src/world/meet_spook/meet_spook.gd
2025-04-10 19:33:43 -06:00

30 lines
692 B
GDScript

class_name MeetSpook extends Marker3D
## Source for a "meet-spook" event.
##
## When the event conditions are met, the MeetSpook closest to the player prepares contextual
## resources for the event.
const GROUP := "MeetSpookSource"
@export var mob_scene: PackedScene
@export var spawners: Array[MeetSpookSpawner] = []
var event_prepared := false
func prepare() -> void:
if event_prepared:
return
for spawner: MeetSpookSpawner in spawners:
var instance: MeetSpookMob = mob_scene.instantiate()
instance.source = self
spawner.spawn(instance)
event_prepared = true
func resolve() -> void:
for spawner: MeetSpookSpawner in spawners:
spawner.resolve()
event_prepared = false