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)); } }
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); } } }
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(); }