示例#1
0
 /// <summary>
 /// Add a linked quest to the current quest.
 /// </summary>
 /// <param name="parameter">An IQuest that should be linked to the current quest.</param>
 private void AddLinkedQuest(object?parameter)
 {
     if (parameter is IQuest questToAdd)
     {
         SelectedQuest?.AddLinkedQuest(questToAdd);
     }
 }
示例#2
0
 /// <summary>
 /// Remove a linked quest from the current quest.
 /// </summary>
 /// <param name="parameter">An IQuest that should be removed from the current quest.</param>
 private void RemoveLinkedQuest(object?parameter)
 {
     if (parameter is IQuest questToRemove)
     {
         SelectedQuest?.RemoveLinkedQuest(questToRemove);
     }
 }
示例#3
0
        /// <summary>
        /// Test function to see if adding a new linked quest is valid.
        /// </summary>
        /// <param name="parameter">Should provide an IQuest parameter for the quest
        /// potentially being linked to the current selected quest.</param>
        /// <returns>Returns true if it's OK to link the specified quest to the current quest.</returns>
        private bool CanAddLinkedQuest(object?parameter)
        {
            if (TallyIsRunning)
            {
                return(false);
            }

            if (SelectedQuest == null)
            {
                return(false);
            }

            if (parameter is IQuest questToAdd)
            {
                if (SelectedQuest == questToAdd)
                {
                    return(false);
                }

                if (SelectedQuest.HasLinkedQuest(questToAdd))
                {
                    return(false);
                }

                return(true);
            }

            return(false);
        }