public override bool IsLegalMove(Square[][] board, Move move, IEnumerable<Move> pastMoves = null)
{
ValidateNotAttackingSameTeam(board, move);
if (!InBounds(move.EndRow, move.EndColumn))
throw new Exception("You have moved out of bounds!");
if (!IsValidKnightMove(move)) //L-movement
throw new Exception("You may only move in a proper 'L' pattern for a knight.");
return true;
}