Add simple conversation cutscene
This commit is contained in:
29
scripts/Cutscene/Scene/OverworldConversationEvent.gd
Normal file
29
scripts/Cutscene/Scene/OverworldConversationEvent.gd
Normal file
@@ -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) ]);
|
Reference in New Issue
Block a user