﻿using UnityEngine;

namespace pdinklag.CPW.Common
{
    public interface ICorner
    {
        /// <summary>
        /// The rope group on the left hand side, viewing from the corner into the ring.
        /// </summary>
        IRopeGroup Left { get; }

        /// <summary>
        /// The rope group on the right hand side, viewing from the corner into the ring.
        /// </summary>
        IRopeGroup Right { get; }

        /// <summary>
        /// The direction towards the center of the ring.
        /// </summary>
        Vector3 Inside { get; }

        /// <summary>
        /// The target on the top turnbuckle grabbed when climbing.
        /// </summary>
        /// <param name="ctx">the target context</param>
        ITarget TopTurnbuckleClimbGrabTarget(ITargetContext ctx);

        /// <summary>
        /// Computes the corner position for the given wrestler.
        /// </summary>
        /// <param name="w">the wrestler in question</param>
        Vector3 CornerPosition(IWrestler w);

        /// <summary>
        /// Computes the top turnbuckle position for the given wrestler.
        /// </summary>
        /// <param name="w">the wrestler in question</param>
        Vector3 TopTurnbucklePosition(IWrestler w);
    }
}
