public void FinishQuest()
 {
     OnQuestFinished?.Invoke();
     questWindow.gameObject.SetActive(false);
     AnnouncementManager.Instance.CreateAnnouncement("You finished quest " + QuestSelectHandler.Instance.selectedQuestName);
     QuestTracker.Instance.questList[QuestTracker.Instance.FetchQuestByName(QuestSelectHandler.Instance.selectedQuestName)] = (int)QuestTracker.States.Finished;
     QuestTracker.Instance.FetchQuestByName(QuestSelectHandler.Instance.selectedQuestName).gameObject.SetActive(false);
     Experience.Instance.GainExperience(QuestTracker.Instance.FetchQuestByName(QuestSelectHandler.Instance.selectedQuestName).quest.Reward);
     QuestTracker.Instance.AdjustQuestLevelVisibility();
 }
Esempio n. 2
0
        public static void Parse(Packet p)
        {
            byte flag = p.ReadUInt8();

            if (flag == 0x03) //Quest completed.
            {
                OnQuestFinished?.Invoke();
            }
            else if (flag == 0x04)  //Quest abandoned.
            {
                //..
            }
        }
        public bool TryFinish(QuestSO quest)
        {
            if (!GetStatusBy(quest).IsPresentAndGet(out QuestStatus status))
            {
                return(false);
            }

            if (!status.IsComplete)
            {
                return(false);
            }

            questStatuses.Remove(status);
            OnUpdate?.Invoke();
            OnQuestFinished?.Invoke(status);
            return(true);
        }
        public void UpdateObjetiveProgress(
            QuestSO quest,
            QuestObjectiveSO objetive,
            object parameters
            )
        {
            GetStatusBy(quest)
            .Some(status => {
                status.UpdateObjetivProgress(objetive, parameters);

                if (status.Quest.AutoFinish && status.IsComplete)
                {
                    questStatuses.Remove(status);
                    OnQuestFinished?.Invoke(status);
                }

                OnUpdate?.Invoke();
            });
        }