IsValidMove now checks if it puts them in check, instead of getAllMoves