/// <summary>
        ///     Tells the system that the given stat was used. This is needed for UseAssigned SP calculations.
        ///     Call this whenever that given stat was used in your game logic. Call as many times as needed.
        ///     Will return false if the given stat was not found in this Character.
        /// </summary>
        /// <returns><c>true</c>, if the given stat exists in this Character <c>false</c> otherwise.</returns>
        /// <param name="statDefinition">The definition file of the stat</param>
        public bool MarkStatAsUsed(AbstractStat statDefinition)
        {
            StatData foundStat = this.SearchStat(statDefinition);

            if (foundStat != null)
            {
                foundStat.MarkStatAsUsed();
                return(true);
            }

            return(false);
        }
        /// <summary>
        ///     Tells the system that the given stat was used. This is needed for UseAssigned SP calculations.
        ///     Call this whenever that given stat was used in your game logic. Call as many times as needed.
        ///     Will return false if the given stat was not found in this Character.
        /// </summary>
        /// <returns><c>true</c>, if the given stat exists in this Character <c>false</c> otherwise.</returns>
        /// <param name="statId">The ID of the stat</param>
        public bool MarkStatAsUsed(Guid statId)
        {
            StatData foundStat = this.SearchStat(statId);

            if (foundStat != null)
            {
                foundStat.MarkStatAsUsed();
                return(true);
            }

            return(false);
        }