Example #1
0
        /// <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);
        }
Example #2
0
 /// <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)
 {
 }