private static TileCoords GetFacingWhenEnteringPentagon(TileCoords currentHex, TileCoords newPenta, PentagonTraversalStrategy strategy)
 {
     if (strategy == PentagonTraversalStrategy.LeanLeft)
     {
         return(HexMapHelper.GetTileInPentaDirection(newPenta, currentHex, PentaDirection.BackwardRight));
     }
     else
     {
         return(currentHex); //Face backwards as default
     }
 }
    private static TileCoords GetNewTileWhenLeavingPentagon(TileCoords currentPenta, TileCoords currentFacing, HexDirection hexDirection, PentagonTraversalStrategy strategy)
    {
        PentaDirection pentaDirection = PentaDirection.Forward;//default

        if (strategy == PentagonTraversalStrategy.LeanLeft)
        {
            switch (hexDirection)
            {
            case HexDirection.Forward:
                pentaDirection = PentaDirection.Forward;
                break;

            case HexDirection.ForwardRight:
                pentaDirection = PentaDirection.ForwardRight;
                break;

            case HexDirection.BackwardRight:
                pentaDirection = PentaDirection.BackwardRight;
                break;

            case HexDirection.Backward:
            case HexDirection.BackwardLeft:
                pentaDirection = PentaDirection.BackwardLeft;
                break;

            case HexDirection.ForwardLeft:
                pentaDirection = PentaDirection.ForwardLeft;
                break;
            }
        }
        else
        {
            pentaDirection = PentaDirection.Forward;
        }
        return(HexMapHelper.GetTileInPentaDirection(currentPenta, currentFacing, pentaDirection));
    }