using UnityEngine;

namespace pdinklag.CPW.Common
{
    /// <summary>
    /// A move executed while the opponent is laying on the ground.
    /// </summary>
    [CreateAssetMenu(menuName = "Wrestle/Move/Ground")]
    public class GroundMove : PairMove
    {
        /// <summary>
        /// Enumeration of the opponent's possible laying states.
        /// </summary>
        public enum OpponentGroundState
        {
            /// <summary>
            /// The opponent is laying prone (face to ground).
            /// </summary>
            Prone,

            /// <summary>
            /// The opponent is laying supine (face to sky).
            /// </summary>
            Supine,

            /// <summary>
            /// The opponent is on all fours.
            /// </summary>
            AllFours,

            /// <summary>
            /// The opponent is sitting.
            /// </summary>
            Sitting,
        }

        /// <summary>
        /// Enumeration of sides from where the move can be executed.
        /// </summary>
        public enum Side
        {
            /// <summary>
            /// At the head of the opponent.
            /// </summary>
            Head,

            /// <summary>
            /// At the feet of the opponent.
            /// </summary>
            Feet,

            /// <summary>
            /// On the left hand side of the opponent.
            /// </summary>
            Left,

            /// <summary>
            /// On the right hand side of the opponent.
            /// </summary>
            Right,
        }

        [Header("Ground Move Settings")]
        [Tooltip("The opponent's required laying state.")]
        public OpponentGroundState OpponentState;

        [Tooltip("The side from which the move can be executed.")]
        public Side OpponentSide;

        protected override void Reset()
        {
            base.Reset();
            OpponentSide = Side.Head;
        }
    }
}
