Files
Dawn-Godot/scripts/Quest/Quest.gd

37 lines
809 B
GDScript

class_name Quest
const QuestObjective = preload("res://scripts/Quest/Objective/QuestObjective.gd");
enum QuestState {
NOT_STARTED,
ACTIVE,
INACTIVE,
FINISHED
};
var questName:String;
var questState:QuestState = QuestState.NOT_STARTED;
var objectives:Array[QuestObjective] = [];
var currentObjective = -1;
func _init(
questName:String,
objectives:Array[QuestObjective]
) -> void:
self.questName = questName;
self.objectives = objectives;
func getState() -> QuestState:
return questState;
func start():
print("Starting quest: " + questName);
questState = QuestState.ACTIVE;
currentObjective = 0;
func nextObjective():
currentObjective = currentObjective + 1;
if currentObjective >= objectives.size():
questState = QuestState.FINISHED;
return null;
return objectives[currentObjective];