TODAY'S GOAL: * Big Code Review * Clean up and document as much code as possible. * color namespace is too ambiguous * Lua integration TODO: * $limit is pointless, just use a constant. * Pathing::compute_paths can take a starting level to implement lower directions, or possibly setting a value lower? * Pathing::set_target isn't using value, but that implements the above. https://www.roguebasin.com/index.php/Dijkstra_Maps_Visualized * When fighting two enemies with lots of attacks it crashes because one dies and isn't there. Test by making enemies immortal. * LightRender can just use the Dijkstra map paths to calculate light strenght from the point rather than doing the box thing. * $paths.$paths is annoying. * Format of pre/post in dbc isn't consistent with the rest of the lib but I also maybe don't need the function version? * I can do headless windows in renderer for testing. - renderer.$window.setVisible(false); * Think up an enemy system. * Write a method for renderer that can translate coordinates. * Can std::any be defaulted to a noop in the events? * Save file isn't saving gold. * Inventory needs to be better, but need some kinds of "weapons" or other loot to get and not just gold. * Create a few more enemy types to fight. * Devise a more complete map/world generator that can use the loot and enemies better. * Maybe an LOS system, but the hearing version works pretty well so far. * Probably a system for mapping collision types to sound effects, rather than having the GUI do it. * Write a test that generates a ton of maps then confirms there's a path from one room to every other room? * check out SoLoud. * BUG: When enemies die they can be overlapping another enemy.