Files
Dawn-Godot/scripts/Event/EventConversation.gd

51 lines
1.9 KiB
GDScript

class_name EventConversation extends "res://scripts/Event/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[Entity] = []
@export var pauseInteractee:bool = true
@export var pauseInteractor:bool = true
@export var turnInteractee:bool = true
@export var turnInteractor:bool = true
func start() -> void:
# Turn events
if interactee && interactor:
if turnInteractee && interactee.entityDirection && interactor.characterBody:
var turn = EventEntityTurn.new()
turn.entity = interactee.entityDirection
turn.direction = turn.entity.getDirectionToFace(interactor.characterBody.global_position)
addExtraEvent(turn, 0)
if turnInteractor && interactor.entityDirection && interactee.characterBody:
var turn = EventEntityTurn.new()
turn.entity = interactor.entityDirection
turn.direction = turn.entity.getDirectionToFace(interactee.characterBody.global_position)
addExtraEvent(turn, 0)
# Create start pause event
if (pauseInteractee && interactee.entity) || (pauseInteractor && interactor.entity):
var startPause = EventPause.new()
startPause.pauseType = startPauseType
startPause.entities = entities
if pauseInteractee && interactee.entity:
startPause.includeInteractee = pauseInteractee
if pauseInteractor && interactor.entity:
startPause.includeInteractor = pauseInteractor
addExtraEvent(startPause, 0)
# Create end pause event.
var endPause = EventPause.new()
endPause.pauseType = endPauseType
endPause.entities = entities
if pauseInteractee && interactee.entity:
endPause.includeInteractee = pauseInteractee
if pauseInteractor && interactor.entity:
endPause.includeInteractor = pauseInteractor
addExtraEvent(endPause, -1)
# Pass off to event group
super.start()