Exemplo n.º 1
0
 private void NotifyTaskTimerTick(Quest quest, QuestTask task)
 {
     OnTaskTimerTick?.Invoke(quest, task);
     if (QuestManager.SavingLoading.autoSave)
     {
         QuestManager.Save();
     }
 }
Exemplo n.º 2
0
 private void NotifyTaskProgressChanged(Quest quest, QuestTask task)
 {
     OnTaskProgressChanged?.Invoke(quest, task);
     if (QuestManager.SavingLoading.autoSave)
     {
         QuestManager.Save();
     }
 }
Exemplo n.º 3
0
        public void NotifyObserver()
        {
            Quest current = QuestManager.current.GetQuest(this.m_Quest.Name);

            if (current != null && current.Status == Status.Active)
            {
                QuestTask task = current.tasks.FirstOrDefault(x => x.Name == m_TaskName);
                if (task.Status == Status.Active)
                {
                    task.AddProgress(this.m_Progress);
                }
            }
        }
Exemplo n.º 4
0
        public override ActionStatus OnUpdate()
        {
            Quest current = QuestManager.current.GetQuest(quest.Name);

            if (current != null && current.Status == Status.Active)
            {
                QuestTask task = current.tasks.FirstOrDefault(x => x.Name == m_TaskName);
                if (task.Status == Status.Active)
                {
                    task.AddProgress(this.m_Progress);
                    return(ActionStatus.Success);
                }
            }
            Debug.Log("Fail");
            return(ActionStatus.Failure);
        }
Exemplo n.º 5
0
        public void Repaint(QuestTask task)
        {
            if (this.m_TaskProgress != null)
            {
                this.m_TaskProgress.color = this.m_DefaultColor;

                if (task.Status == Status.Completed)
                {
                    this.m_TaskProgress.color = this.m_CompletedColor;
                }

                if (task.Status == Status.Failed)
                {
                    this.m_TaskProgress.color = this.m_FailedColor;
                }

                this.m_TaskProgress.text = task.ProgressMessage;
            }
            if (this.m_TaskDescription != null)
            {
                this.m_TaskDescription.color = this.m_DefaultColor;

                if (task.Status == Status.Completed)
                {
                    this.m_TaskDescription.color = this.m_CompletedColor;
                }

                if (task.Status == Status.Failed)
                {
                    this.m_TaskDescription.color = this.m_FailedColor;
                }

                this.m_TaskDescription.text = task.Description;
            }


            this.m_LastTask = task;
        }
Exemplo n.º 6
0
        public void UpdateQuestIndicator()
        {
            availableQuest.SetActive(false);
            completeableQuest.SetActive(false);
            questTask.SetActive(false);


            for (int i = 0; i < taskSets.Count; i++)
            {
                Quest quest = QuestManager.current.ActiveQuests.FirstOrDefault(x => x.Name == taskSets[i].quest.Name);
                if (quest != null)
                {
                    QuestTask task = quest.tasks.FirstOrDefault(x => x.Name == taskSets[i].task);
                    if (task != null && task.Status == Status.Active)
                    {
                        questTask.SetActive(true);
                    }
                }
            }

            if (this.m_QuestCollection != null)
            {
                Quest combleteable = this.m_QuestCollection.FirstOrDefault(x => x.CanComplete());
                if (combleteable != null)
                {
                    completeableQuest.SetActive(true);
                    return;
                }

                Quest available = this.m_QuestCollection.FirstOrDefault(x => x.CanActivate());
                if (available != null)
                {
                    availableQuest.SetActive(true);
                }
            }

        }
Exemplo n.º 7
0
        public virtual void SetObjectData(Dictionary <string, object> data)
        {
            string name = (string)data["Name"];

            this.m_Status = (Status)data["Status"];

            if (data.ContainsKey("Tasks"))
            {
                List <object> mTasks = data["Tasks"] as List <object>;
                for (int i = 0; i < mTasks.Count; i++)
                {
                    Dictionary <string, object> taskData = mTasks[i] as Dictionary <string, object>;
                    if (taskData != null)
                    {
                        QuestTask task = tasks.FirstOrDefault(x => x.Name == (string)taskData["Name"]);
                        task.owner = this;
                        if (task != null)
                        {
                            task.SetObjectData(taskData);
                        }
                    }
                }
            }
        }
Exemplo n.º 8
0
 public virtual void GetObjectData(Dictionary <string, object> data)
 {
     data.Add("Name", this.Name);
     data.Add("Status", (int)this.Status);
     if (tasks.Count > 0)
     {
         List <object> mTasks = new List <object>();
         for (int i = 0; i < tasks.Count; i++)
         {
             QuestTask task = tasks[i];
             if (task != null)
             {
                 Dictionary <string, object> taskData = new Dictionary <string, object>();
                 task.GetObjectData(taskData);
                 mTasks.Add(taskData);
             }
             else
             {
                 mTasks.Add(null);
             }
         }
         data.Add("Tasks", mTasks);
     }
 }
Exemplo n.º 9
0
        private void OnTaskStatusChanged(Quest quest, QuestTask task)
        {
            QuestSlot slot = GetOrCreateSlot(quest);

            slot.Repaint(quest);
        }
Exemplo n.º 10
0
 public void NotifyTaskTimerTick(QuestTask task)
 {
     OnTaskTimerTick?.Invoke(this, task);
 }
Exemplo n.º 11
0
 public void NotifyTaskProgressChange(QuestTask task)
 {
     OnTaskProgressChanged?.Invoke(this, task);
 }
Exemplo n.º 12
0
 private void OnTaskChanged(Quest quest, QuestTask task)
 {
     UpdateQuestIndicator();
 }