namespace pdinklag.CPW.Common
{
    /// <summary>
    /// Represents an impact anticipated by a wrestler.
    /// </summary>
    public interface IAnticipatedImpact
    {
        /// <summary>
        /// Does colliding with another wrestler count as an impact?
        /// </summary>
        bool IgnoreWrestlers { get; set; }

        /// <summary>
        /// Does colliding with a ring base count as an impact?
        /// </summary>
        bool IgnoreRingBase { get; set; }

        /// <summary>
        /// Ignore all current collisions for a brief while.
        /// </summary>
        /// <param name="duration">the ignore duration in seconds</param>
        void IgnoreCurrent(float duration = 0.5f);

        /// <summary>
        /// Which sound group to play upon impact, if any.
        /// </summary>
        AssetAddress ImpactSoundGroup { get; set; }
    }
}
