/// <summary> /// Creates an instance of a quest given the accordingly table containing the information. /// </summary> /// <param name="questTable"></param> public Quest(QuestTemplate questTable) { Name = questTable.Name; Description = questTable.Description; QuestId = questTable.Id; CanRepeat = questTable.CanRepeat; // Load up requirements LoadStartRequirements(questTable); LoadRewards(questTable); Steps = new List<QuestStep>(); foreach (var step in questTable.QuestSteps) { var newStep = new QuestStep(); foreach (var requirement in step.Requirements) { var concreteRequirement = QuestRequirementFactory.GetConcreteQuestRequirement(requirement); newStep.Requirements.Add(concreteRequirement); } Steps.Add(newStep); } Script = ScriptLoader.Instance.GetQuestScript(this); }
/// <summary> /// When a <see cref="QuestStep"/> is completed, this method will be invoked allowing custom logic to run. /// This method will be run once for each quest step in the quest sequence that is completed and only once. /// </summary> /// <param name="user"></param> /// <param name="step"></param> public virtual void OnQuestStepCompleted(Player user, QuestStep step) { }