Actually, looking at your original capx, I think it might be better to explain where you were going wrong.
Events 2 and 3..
What's actually happening is, you're looping through each element in the array, THEN looping through each mushroom (by X ascending - should be Y).
Here's what's basically happening in your loops..
array index = 0
mushroom = first, set the array (0) to this mushroom angle
mushroom = second, set the array (0) to this mushroom angle
mushroom = third, set the array (0) to this mushroom angle
mushroom = fourth, set the array (0) to this mushroom angle
^ array (0) = fourth mushroom's angle
array index = 1
mushroom = first, set the array (1) to this mushroom angle
mushroom = second, set the array (1) to this mushroom angle
mushroom = third, set the array (1) to this mushroom angle
mushroom = fourth, set the array (1) to this mushroom angle
^ array (1) = fourth mushroom's angle
and so on for all 4 array elements. All array values will be the fourth mushroom's angle.
Also, event 5, you're testing the value at array index 0 with the current mushroom angle which would be wrong anyway. Each mushroom has to point to the correct array index, hence the arrayIdx in my capx.
If you only wanted to check for angle 0 on every mushroom, then you wouldn't even need an array, but since you'll need to be checking for different angles, you need the array. I'm assuming this is a learning messabout before you implement it in your pipe game?