class_name EventConversation extends "res://scripts/Events/Flow/EventGroup.gd" @export var startPauseType:PauseSystem.PauseType = PauseSystem.PauseType.ENTITY_PAUSED @export var endPauseType:PauseSystem.PauseType = PauseSystem.PauseType.NOT_PAUSED @export var entities:Array[OverworldEntity] = [] @export var includeInteractee:bool = true @export var includeInteractor:bool = true var extraEvents:Array[Event] = [] func start() -> void: # Turn events if interactee != null && interactor != null: if includeInteractee: var turninteractee = EventEntityTurn.new() turninteractee.entity = interactee turninteractee.direction = interactee.getDirectionToFace(interactor.position) self.add_child(turninteractee) extraEvents.append(turninteractee) self.move_child(turninteractee, 0) if includeInteractor: var turninteractor = EventEntityTurn.new() turninteractor.entity = interactor turninteractor.direction = interactor.getDirectionToFace(interactee.position) self.add_child(turninteractor) extraEvents.append(turninteractor) self.move_child(turninteractor, 0) # Create start pause event var startPause = EventPause.new() startPause.pauseType = startPauseType startPause.entities = entities self.add_child(startPause) extraEvents.append(startPause) self.move_child(startPause, 0) # Create end pause event. var endPause = EventPause.new() endPause.pauseType = endPauseType endPause.entities = entities self.add_child(endPause) extraEvents.append(endPause) self.move_child(endPause, get_child_count() - 1) # Pass off to event group super.start() func reset() -> void: # Let event group reset normally super.reset() # Remove the events we created. cleanupExtraEvents() func end() -> void: # Let event group end normally super.end() # Remove the events we created. cleanupExtraEvents() func cleanupExtraEvents(): for event in extraEvents: event.queue_free() extraEvents = []