## Event Architecture - Local events are broadcast as custom events prefixed `L-` - Incoming global messages are broadcast as custom events prefixed with `G` ## Robot Movement The state of the robots are fully contained in a central stack, allowing undo, reset, shadowing, replays, and move counting. Any movement, including initial locations, is represented by pushing or popping locations from the stack. A victory state can be stored by taking a snapshot of the current stack. ## Credit Icons from [https://game-icons.net](https://game-icons.net) ## TODO - (n solves) in players list, if > 0 - join mid-countdown - robot color update - countdown solution moves value - countdown solution name value - better solution - replay stack - countdown skip - slide arrows - chat box - no cancel from name prompt - clear out the trash bins of history - handle conn interrupt - donate link heart fill in not underline - Robots not resizing (shadows do though) - Robots can gen on top of eachother - star is black sometimes - limit concurrent players, make sure connections are closed - move websocket server to /core - dynamic socket server resolution - walls and winstate algorithm - restore name prompt - tutorial - donate link