private void OnQuestCanceled(object self) { if (self is Quest quest) { quest.QuestCanceled -= OnQuestCanceled; SaveDataManager.instance.SaveData.currentQuests.Remove(quest); SaveDataManager.instance.ApplyToFile(); QuestCanceled?.Invoke(this, quest); } }
/// <summary> /// Cancels an active quest. /// </summary> /// <param name="quest">The quest to cancel.</param> /// <returns>True if the quest was successfully canceled; otherwise false.</returns> public bool CancelQuest(IQuest <TCharacter> quest) { var ret = _activeQuests.Remove(quest); // Ensure the quest was even in the collection if (!ret) { return(false); } // Raise events OnQuestCanceled(quest); if (QuestCanceled != null) { QuestCanceled.Raise(this, EventArgsHelper.Create(quest)); } return(true); }
protected void OnQuestCanceled() { QuestCanceled?.Invoke(this); }