示例#1
0
        public void ApplyQuestChain(QuestInstance chain)
        {
            m_QuestInstance = chain;

            if (QuestManager.PostedQuests.Contains(m_QuestInstance))
            {
                m_QuestMode = QuestDetailsWindowMode.POSTED_REVIEW;
            }
            else if (QuestManager.Requests.Contains(m_QuestInstance))
            {
                m_QuestMode = QuestDetailsWindowMode.SETUP;
            }
            else
            {
                m_QuestMode = QuestDetailsWindowMode.ACTIVE_REVIEW;
            }

            m_QuestInstance.OnDaysLeftUpdate += UpdateText;

            UpdateText();
        }
        public void OpenWindow(QuestInstance quest, QuestDetailsWindowMode mode)
        {
            WindowMode = mode;
            if (quest == CurrentQuest)
            {
                gameObject.SetActive(!gameObject.activeSelf);
            }
            else
            {
                gameObject.SetActive(true);
            }
            CurrentQuest = quest;
            Reset();

            switch (mode)
            {
            case QuestDetailsWindowMode.SETUP:
                closeButton.gameObject.SetActive(true);
                skipButton.gameObject.SetActive(false);
                cancelButton.gameObject.SetActive(false);
                acceptButton.gameObject.SetActive(false);
                completeButton.gameObject.SetActive(false);
                postButton.gameObject.SetActive(true);

                RefreshItemRewardDropdown();
                SetNoHero();
                CheckPostButtonStatus();
                break;

            case QuestDetailsWindowMode.HERO_SELECT:
                closeButton.gameObject.SetActive(false);
                skipButton.gameObject.SetActive(true);
                cancelButton.gameObject.SetActive(true);
                acceptButton.gameObject.SetActive(true);
                completeButton.gameObject.SetActive(false);
                postButton.gameObject.SetActive(false);
                break;

            case QuestDetailsWindowMode.POSTED_REVIEW:
                closeButton.gameObject.SetActive(true);
                skipButton.gameObject.SetActive(false);
                cancelButton.gameObject.SetActive(true);
                acceptButton.gameObject.SetActive(false);
                completeButton.gameObject.SetActive(false);
                postButton.gameObject.SetActive(false);

                SetNoHero();
                break;

            case QuestDetailsWindowMode.ACTIVE_REVIEW:
                closeButton.gameObject.SetActive(true);
                skipButton.gameObject.SetActive(false);
                cancelButton.gameObject.SetActive(true);
                acceptButton.gameObject.SetActive(false);
                completeButton.gameObject.SetActive(false);
                postButton.gameObject.SetActive(false);

                FindActiveHero();
                break;

            case QuestDetailsWindowMode.COMPLETED:
                closeButton.gameObject.SetActive(false);
                skipButton.gameObject.SetActive(false);
                cancelButton.gameObject.SetActive(false);
                acceptButton.gameObject.SetActive(false);
                completeButton.gameObject.SetActive(true);
                postButton.gameObject.SetActive(false);

                FindActiveHero();
                break;
            }

            questTitle.text     = "<b><u>" + CurrentQuest.QuestSource.RequestTitle + "</u>\n<size=18>" + CurrentQuest.QuestTypeDisplay + " - </b><i>" + CurrentQuest.DurationInDays + " Day" + (CurrentQuest.DurationInDays > 1 ? "s" : "") + " duration</i></size>";
            difficultyText.text = "" + CurrentQuest.DifficultyLevel;

            handlerGoldReward.text = CurrentQuest.HandlerGoldRewardEstimate;

            handlerItemRewardParent.SetActive(CurrentQuest.HandlerItemReward != null);
            handlerRewardItemInstance.SetItem(CurrentQuest.HandlerItemReward != null ? CurrentQuest.HandlerItemReward.Item : (GameItem)null);

            handlerAdditionalRewardParent.SetActive(CurrentQuest.AdditionalReward != null);
            handlerAdditionalReward.text = CurrentQuest.AdditionalReward != null ? CurrentQuest.AdditionalReward.DisplayValue : "-";

            foreach (QuestDetailsHero heroSection in m_HeroSections)
            {
                heroSection.Reload();
            }
        }