// ReSharper disable UnusedMember.Global using System.Collections.Generic; namespace RGB.NET.Core { /// /// Represents a basic effect-target. /// /// The type this target represents. public interface IEffectTarget where T : IEffectTarget { #region Properties & Fields /// /// Gets a readonly collection of all of this . /// IEnumerable> Effects { get; } #endregion #region Methods /// /// Updates all added to this target. /// void UpdateEffects(); /// /// Adds an . /// /// The to add. void AddEffect(IEffect effect); /// /// Removes an . /// /// The to remove. void RemoveEffect(IEffect effect); /// /// Checks if the is added to this . /// /// The to check. /// true if the is added to this .; otherwise, false. bool HasEffect(IEffect effect); /// /// Checks if any of the provided generic type is added to this . /// /// The generic type of the to check. /// true if any of the provided type is added to this .; otherwise, false. bool HasEffect() where TEffect : IEffect; #endregion } }