using UnityEngine;
using pdinklag.CPW.Common;

namespace pdinklag.CPW.Common
{
    /// <summary>
    /// Abstract base for flying moves executed from the top rope.
    /// </summary>
    
    public class FlyingMove : SingleMove
    {
        /// <summary>
        /// An enumeration of opponent states.
        /// </summary>
        public enum OpponentState
        {
            /// <summary>
            /// It doesn't matter what state the opponent is in.
            /// </summary>
            Any,

            /// <summary>
            /// The opponent must be standing.
            /// </summary>
            Standing,

            /// <summary>
            /// The opponent must be on the ground.
            /// </summary>
            Ground,
        }

        [Header("Flying Move Settings")]
        [Tooltip("The required opponent state, if any.")]
        public OpponentState RequiredOpponentState;
        public bool IsBackward;

        protected override void Reset()
        {
            base.Reset();

            GravityEnabled = false;
            CharacterCollisionsEnabled = true;
            InstantMovementReset = true;
            RequiredOpponentState = OpponentState.Any;
        }
    }
}
