コード例 #1
0
 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);
     }
 }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
 protected void OnQuestCanceled()
 {
     QuestCanceled?.Invoke(this);
 }