Firing at goal
Most of the decisions of whether or not to shoot at the goal are handled in the Firing At Goal state machine. In the right conditions, the robot would shoot all of its balls then proceed to jousting when out of balls.
The shooter control required to launch all of the balls was handled in a simple Shooting state machine. This SM was used in Attacking and Firing At Goal.