Weighted Buffers?

I have a friend with a question who is not on the network yet, but
here is the question:
I need to know if GRASS can do weighted buffers, and if so what
command(s) you use to do it. Example: a buffer around streams
where if slope is greater than 40% and the ground cover is trees, the
buffer should be 200', but if the slope is less than 40% slope and
the ground cover is grass, the buffer should be 100'. Clear as mud?
Thanks for any input!!