Again like yesterday, it’s been a long busy day so we’ll keep this update short and sweet.
I accomplished what I set out to do with a blocked ball removal scheme. What this means is that when both players are out of moves, we will now switch to a mode where we try to find and remove all balls that are blocked from further movement (i.e. not sitting directly on a gray brick that will vanish, or on a ball that is). Once that is done, we then swap to the state where the gray bricks remove as they did before.
This is done similarly to how the gray brick code works, except that in this case the Maze has no event for when all dropped balls are finished and instead the caller determines that for themselves when the method it invokes to remove a ball finally says that there are none left and all are vanished away.
There IS an event that triggers when a blocked ball is removed, so that in the pending scoring update we can score a blocked ball, since in the general case scoring would otherwise only happen when the ball reaches the goal line or stops for the second time (during the final ball drop).
I have noticed a couple of weird bugs that are still floating around, but nothing too earth shattering. I’ll take a brief look tomorrow to see what’s going on, and then proceed directly into the scoring mechanisms. I think based on what’s already present that we should be good to go for all of the possible scoring scenarios.