What I’m seeing is that the water is indeed interacting with the gray asphalt as you coded it but perhaps you were expecting a different behavior. When water hits the asphalt it changes to a gray color (in the ‘groundwater’ procedure). Also, when it hits the asphalt it’s movement stops and it slowly evaporates (in the ‘evaporate’ procedure). According to your code, only water that hits the asphalt will evaporate, all other water drops continue through the cycle.
If you want to make different changes, let me know.
Project GUTS facilitator