Thank you very much for playing!
For the coding side, the player and more complex enemy bots were built using a finite state machine to handle different behaviors and transitions cleanly. Simpler enemies were more hard-coded since they didn’t require as much complexity.
As for the visuals and animation side, I’ve shared a bit more detail in some of my replies to other comments here if you’re interested in checking those out!