// Use this for initialization void Start() { QuestLog.AddQuestStateObserver("Pilgrimage Quest", LuaWatchFrequency.EveryDialogueEntry, OnQuestStateChanged); QuestLog.AddQuestStateObserver("Equip Quest", LuaWatchFrequency.EveryDialogueEntry, OnQuestStateChanged); QuestLog.AddQuestStateObserver("Wisdom Quest", LuaWatchFrequency.EveryDialogueEntry, OnQuestStateChanged); QuestLog.AddQuestStateObserver("Fetch Quest", LuaWatchFrequency.EveryDialogueEntry, OnQuestStateChanged); QuestLog.AddQuestStateObserver("Love Quest", LuaWatchFrequency.EveryDialogueEntry, OnQuestStateChanged); }
public override int Use() { int used = base.Use(); if (used < 0) { return(used); } var dialogueController = FindObjectOfType <DialogueSystemController>(); if (dialogueController == null) { Debug.LogError("Couldn't find DialogueSystemController; Can't activate quest!"); return(-2); } var item = dialogueController.DatabaseManager.MasterDatabase.items.FirstOrDefault(o => o.id == _dialogueSystemQuestID); if (item == null) { Debug.LogError("Couldn't find dialogue quest with ID " + _dialogueSystemQuestID); return(-2); } if (item.IsItem) { Debug.LogError("Dialogue quest with ID " + _dialogueSystemQuestID + " is an item, not a quest"); return(-2); } if (QuestLog.IsQuestActive(item.Name)) { DialogueManager.ShowAlert(string.Format(questAlreadyActiveMessage, item.Name)); return(-2); } if (QuestLog.IsQuestDone(item.Name) || QuestLog.IsQuestFailed(item.Name) || QuestLog.IsQuestAbandoned(item.Name)) { if (canUseAfterQuestAlreadyCompleted == false) { DialogueManager.ShowAlert(string.Format(questAlreadyUsedMessage, item.Name)); return(-2); } } currentStackSize--; // Remove 1 QuestLog.StartQuest(item.Name); QuestLog.AddQuestStateObserver(item.Name, LuaWatchFrequency.EveryDialogueEntry, QuestChangedHandler); if (string.IsNullOrEmpty(acceptMessage) == false) { DialogueManager.ShowAlert(string.Format(acceptMessage, item.Name)); } NotifyItemUsed(1, true); AudioManager.AudioPlayOneShot(audioClipWhenUsed); return(1); // 1 item used }