Beispiel #1
0
 public QuestData MakeQuest(SavableQuest quest)
 {
     foreach (var _quest in listQuest)
     {
         if (_quest.questName == quest.questName)
         {
             return(_quest);
         }
     }
     return(null);
 }
Beispiel #2
0
    public SavableQuest ToSavableData()
    {
        SavableQuest toSave = new SavableQuest();

        toSave.questName        = data.questName;
        toSave.currentStepIndex = currentStepIndex;
        toSave.steps            = new List <SavableStep>();
        for (int i = 0; i < stepList.Count; i++)
        {
            SavableStep step = new SavableStep();
            step.stepIndex = i;
            step.collected = stepList[i].collected;
            step.killed    = stepList[i].killed;
            step.isDone    = stepList[i].isDone;
            toSave.steps.Add(step);
        }
        return(toSave);
    }
Beispiel #3
0
 public void Init(SavableQuest quest)
 {
     data              = QuestFactory.Instance.MakeQuest(quest);
     currentStepIndex  = quest.currentStepIndex;
     stepList.Capacity = data.steps.Length;
     for (int i = 0; i < data.steps.Length; i++)
     {
         QuestStep newStep = new QuestStep();
         if (i + 1 < data.steps.Length)
         {
             newStep.Init(data.steps[i], quest.steps.Find((step) => step.stepIndex == i), NextStep);
         }
         else
         {
             newStep.Init(data.steps[i], quest.steps.Find((step) => step.stepIndex == i), OnFinish);
         }
         stepList.Add(newStep);
     }
 }