Example conversation.
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
class_name OverworldChangeDirectionEvent extends "res://scripts/Cutscene/Event/Entity/OverworldEntityEvent.gd"
|
||||||
|
|
||||||
|
var direction:OverworldEntity.Direction;
|
||||||
|
|
||||||
|
func _init(
|
||||||
|
entity:OverworldEntity,
|
||||||
|
direction:OverworldEntity.Direction,
|
||||||
|
) -> void:
|
||||||
|
super._init(entity);
|
||||||
|
self.direction = direction;
|
||||||
|
|
||||||
|
func start() -> void:
|
||||||
|
entity.direction = direction;
|
10
scripts/Cutscene/Event/Entity/OverworldEntityEvent.gd
Normal file
10
scripts/Cutscene/Event/Entity/OverworldEntityEvent.gd
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
class_name OverworldEntityEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||||
|
const OverworldEntity = preload("res://scripts/Entities/OverworldEntity.gd");
|
||||||
|
|
||||||
|
var entity:OverworldEntity;
|
||||||
|
|
||||||
|
func _init(
|
||||||
|
entity:OverworldEntity,
|
||||||
|
) -> void:
|
||||||
|
super._init();
|
||||||
|
self.entity = entity;
|
@@ -1,16 +1,24 @@
|
|||||||
class_name TestCutscene extends "res://scripts/Cutscene/Cutscene.gd"
|
class_name TestCutscene extends "res://scripts/Cutscene/Cutscene.gd"
|
||||||
const CutscenePrintEvent = preload("res://scripts/Cutscene/Event/CutscenePrintEvent.gd");
|
const OverworldEntity = preload("res://scripts/Entities/OverworldEntity.gd");
|
||||||
const CutsceneWaitEvent = preload("res://scripts/Cutscene/Event/CutsceneWaitEvent.gd");
|
|
||||||
const CutsceneConcurrentEvent = preload("res://scripts/Cutscene/Event/CutsceneConcurrentEvent.gd");
|
|
||||||
const CutsceneIfEvent = preload("res://scripts/Cutscene/Event/CutsceneIfEvent.gd");
|
|
||||||
const CutsceneWhileEvent = preload("res://scripts/Cutscene/Event/CutsceneWhileEvent.gd");
|
|
||||||
const TextboxEvent = preload("res://scripts/Cutscene/Event/VisualNovel/TextboxEvent.gd");
|
const TextboxEvent = preload("res://scripts/Cutscene/Event/VisualNovel/TextboxEvent.gd");
|
||||||
const PauseEvent = preload("res://scripts/Cutscene/Event/CutscenePauseEvent.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;
|
||||||
|
|
||||||
|
func _init(speaker:OverworldEntity, interacted:OverworldEntity ) -> void:
|
||||||
|
self.speaker = speaker;
|
||||||
|
self.interacted = interacted;
|
||||||
|
|
||||||
func setupCutscene() -> void:
|
func setupCutscene() -> void:
|
||||||
|
var dirSpeaker = speaker.getDirectionToFace(interacted.position);
|
||||||
|
var dirInteracted = interacted.getDirectionToFace(speaker.position);
|
||||||
|
|
||||||
add([
|
add([
|
||||||
PauseEvent.new(PauseSystem.PauseType.ENTITY_PAUSED),
|
OverworldChangeDirectionEvent.new(speaker, dirSpeaker),
|
||||||
TextboxEvent.new("Cumbria"),
|
OverworldChangeDirectionEvent.new(interacted, dirInteracted),
|
||||||
PauseEvent.new(PauseSystem.PauseType.NOT_PAUSED),
|
PauseEvent.new(PauseSystem.PauseType.ENTITY_PAUSED, [ speaker, interacted ]),
|
||||||
|
TextboxEvent.new("brother moment"),
|
||||||
|
PauseEvent.new(PauseSystem.PauseType.NOT_PAUSED)
|
||||||
]);
|
]);
|
||||||
pass
|
|
||||||
|
@@ -37,6 +37,20 @@ func getDirectionVector() -> Vector3:
|
|||||||
return Vector3(1, 0, 0);
|
return Vector3(1, 0, 0);
|
||||||
return Vector3(0, 0, 0);
|
return Vector3(0, 0, 0);
|
||||||
|
|
||||||
|
func getDirectionToFace(position:Vector3) -> Direction:
|
||||||
|
var diff = position - self.position;
|
||||||
|
if abs(diff.x) > abs(diff.z):
|
||||||
|
if diff.x > 0:
|
||||||
|
return Direction.EAST;
|
||||||
|
else:
|
||||||
|
return Direction.WEST;
|
||||||
|
else:
|
||||||
|
if diff.z > 0:
|
||||||
|
return Direction.SOUTH;
|
||||||
|
else:
|
||||||
|
return Direction.NORTH;
|
||||||
|
return Direction.SOUTH;
|
||||||
|
|
||||||
# Virtual Methods
|
# Virtual Methods
|
||||||
func updateMovement(delta) -> void:
|
func updateMovement(delta) -> void:
|
||||||
pass
|
pass
|
||||||
@@ -54,12 +68,12 @@ func isPaused() -> bool:
|
|||||||
return true;
|
return true;
|
||||||
elif ps == PauseSystem.PauseType.ENTITY_PAUSED:
|
elif ps == PauseSystem.PauseType.ENTITY_PAUSED:
|
||||||
if pause.entities.find(self) != -1:
|
if pause.entities.find(self) != -1:
|
||||||
return false;
|
return true;
|
||||||
return true
|
return false
|
||||||
elif ps == PauseSystem.PauseType.CUTSCENE_PAUSED:
|
elif ps == PauseSystem.PauseType.CUTSCENE_PAUSED:
|
||||||
if pause.entities.find(self) != -1:
|
if pause.entities.find(self) != -1:
|
||||||
return true;
|
|
||||||
return false;
|
return false;
|
||||||
|
return true;
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
# Private methods
|
# Private methods
|
||||||
|
@@ -2,7 +2,7 @@ class_name TestNPCController extends "res://scripts/Entities/OverworldEntity.gd"
|
|||||||
const TestCutscene = preload("res://scripts/Cutscene/TestCutscene.gd")
|
const TestCutscene = preload("res://scripts/Cutscene/TestCutscene.gd")
|
||||||
|
|
||||||
func interact(interactor) -> void:
|
func interact(interactor) -> void:
|
||||||
getSystems().CUTSCENE.setCurrentCutscene(TestCutscene.new());
|
getSystems().CUTSCENE.setCurrentCutscene(TestCutscene.new(interactor, self));
|
||||||
|
|
||||||
func updateMovement(delta) -> void:
|
func updateMovement(delta) -> void:
|
||||||
pass
|
pass
|
||||||
|
@@ -1,9 +1,13 @@
|
|||||||
class_name PauseSystem extends Node
|
class_name PauseSystem extends Node
|
||||||
|
|
||||||
enum PauseType {
|
enum PauseType {
|
||||||
|
# Completely unpaused
|
||||||
NOT_PAUSED,
|
NOT_PAUSED,
|
||||||
|
# Fully paused, with no exceptions to anything
|
||||||
FULLY_PAUSED,
|
FULLY_PAUSED,
|
||||||
|
# Specific entities are paused
|
||||||
ENTITY_PAUSED,
|
ENTITY_PAUSED,
|
||||||
|
# All entities are paused unless specified
|
||||||
CUTSCENE_PAUSED
|
CUTSCENE_PAUSED
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user