From 432d58ae0beda15ec66f0f3a9b899ba7e80469c0 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Thu, 9 Jan 2025 14:01:09 -0600 Subject: [PATCH] Add simple conversation cutscene --- .../Scene/OverworldConversationEvent.gd | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 scripts/Cutscene/Scene/OverworldConversationEvent.gd diff --git a/scripts/Cutscene/Scene/OverworldConversationEvent.gd b/scripts/Cutscene/Scene/OverworldConversationEvent.gd new file mode 100644 index 0000000..213f767 --- /dev/null +++ b/scripts/Cutscene/Scene/OverworldConversationEvent.gd @@ -0,0 +1,29 @@ +class_name OverworldConversationEvent extends "res://scripts/Cutscene/Cutscene.gd" +const OverworldEntity = preload("res://scripts/Entities/OverworldEntity.gd"); +const TextboxEvent = preload("res://scripts/Cutscene/Event/VisualNovel/TextboxEvent.gd"); +const PauseEvent = preload("res://scripts/Cutscene/Event/CutscenePauseEvent.gd"); +const OverworldChangeDirectionEvent = preload("res://scripts/Cutscene/Event/Entity/OverworldChangeDirectionEvent.gd"); + +var speaker:OverworldEntity; +var interacted:OverworldEntity; +var texts:Array[String]; + +func _init(speaker:OverworldEntity, interacted:OverworldEntity, texts:Array[String]) -> void: + self.speaker = speaker; + self.interacted = interacted; + self.texts = texts; + +func setupCutscene() -> void: + var dirSpeaker = speaker.getDirectionToFace(interacted.position); + var dirInteracted = interacted.getDirectionToFace(speaker.position); + + add([ + OverworldChangeDirectionEvent.new(speaker, dirSpeaker), + OverworldChangeDirectionEvent.new(interacted, dirInteracted), + PauseEvent.new(PauseSystem.PauseType.ENTITY_PAUSED, [ speaker, interacted ]), + ]); + + for text in texts: + add([ TextboxEvent.new(text) ]); + + add([ PauseEvent.new(PauseSystem.PauseType.NOT_PAUSED) ]);