コード例 #1
0
        public virtual void Repaint(Quest quest)
        {
            currentQuest = quest;
            Assert.IsNotNull(currentQuest, "Given quest for repaint is null! This is not allowed. - If you want to hide it just disable the gameObject.");

            QuestUIUtility.RepaintQuestUIRepaintableChildren(transform, currentQuest);

            if (questName != null)
            {
                questName.text = currentQuest.name.message;
            }

            if (questDescription != null)
            {
                questDescription.text = currentQuest.description.message;
            }

            if (questStatus != null)
            {
                questStatus.text = currentQuest.status.ToString();
            }

            if (toggle != null)
            {
                toggle.isOn = PlayerPrefs.HasKey(QuestUtility.GetQuestCheckedSaveKey(quest));
            }
        }
コード例 #2
0
        private void SaveQuestToggledState(Quest quest, bool isOn)
        {
            var playerPrefsKey = QuestUtility.GetQuestCheckedSaveKey(quest);

            if (isOn)
            {
                PlayerPrefs.SetInt(playerPrefsKey, 1);
                if (questSidebarUI != null && questSidebarUI.ContainsQuest(quest) == false)
                {
                    questSidebarUI.AddQuest(quest);
                }
            }
            else
            {
                if (PlayerPrefs.HasKey(playerPrefsKey))
                {
                    PlayerPrefs.DeleteKey(playerPrefsKey);
                    questSidebarUI.RemoveQuest(quest);
                }
            }
        }
コード例 #3
0
        protected virtual void OnQuestStatusChanged(QuestStatus before, Quest quest)
        {
            switch (quest.status)
            {
            case QuestStatus.InActive:
            case QuestStatus.Completed:
            case QuestStatus.Cancelled:

                if (selectedQuest == quest)
                {
                    SelectQuest(null);
                }

                if (uiCache.ContainsKey(quest))
                {
                    var a = uiCache[quest];
                    uiCache.Remove(quest);
                    Destroy(a.gameObject);
                }

                break;

            case QuestStatus.Active:

                SaveQuestToggledState(quest, PlayerPrefs.HasKey(QuestUtility.GetQuestCheckedSaveKey(quest)));
                Repaint(quest);

                if (showWindowOnAcceptedQuest)
                {
                    ShowWindowForQuest(quest);
                }

                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            SetNavigation();
        }