public void CancelQuest([NotNull] IQuest quest) { if (quest == null) throw new ArgumentNullException(nameof(quest)); var idx = CurrentQuests.FindIndex(q => q == quest); if (idx < 0) return; quest.Deactivate(); SaveDataManager.instance.SaveData.currentQuests.Remove(quest); SaveDataManager.instance.ApplyToFile(); OnQuestCanceled(quest); }