Rewrote how directions are stored – Beacons now store an array of 4 Bools instead of a number 0-7. It uses one more bit, but is a lot easier to work with.
Saved the bit I lost storing directions by dropping the number of bits to represent the burn state. To adjust the speed of burn recovery, it now only has a random chance incrementing its burn state when it behaves. This seems to work well enough. As long as the odds are fairly low, it all evens out and large swaths of beacons tend to all recover from burns at close enough to the same rate, even though burn states are now only 3 bits.
Moved methods for picking a diffusion target sites into the quark that holds directions.
Moving everything into the direction-keeping quark also gives me the option of changing how it stores directions, and maybe getting that bit I lost back at some point (if I ever need it). I just need to make sure that I actually use the proper interface of this quark everywhere its information is needed.
Wrote a SlowGuy element that just burns cycles when it's his turn. His purpose is to artificially bog down a tile so I can play with how burning routes around slow areas.
Finally, thanks to all that stuff, I have some demo Seeker elements that try to find a particular nest.
The seekers mostly work, but … could be better.