No cosmetic changes yet, except health bars. I’ve implemented a system of traits and events to make programming easier. A trait is a small package of event handlers which an actor can have. When an actor is involved in an event, the event checks all of the actor’s traits and gives them a chance to have a say in the outcome of the event.
Traits can represent basic functionality, different types of attacks, special abilities, passive resistances, temporary status effects, and much more. At the moment there’s one trait – being able to travel on floors. At the moment they’re all C++ functions, but after the 7DRL I might try to replace the event and trait types with Lua objects to increase moddability. Already it’s helping to keep the game class lightweight.
I’m trying to replace as many in-game constants as possible with variables loaded from a JSON file (read using picojson). It’s working very well, but it’s quite unwieldy – every constant needs a declaration line and a reading line in my constants class, and a third line in the JSON file. If I get fed up of copypasting these lines or the file gets too big to navigate, I might just save the picojson value read from the file and use that to get constants. It will mean constant identifiers stop autocompleting, though. 🙁