In terms of V1 UI/UX and general usability improvements, 1.52.1134 adds a major new feature: cursed item controls on the Survivor Sheet. It also stylizes Fighting Art and Disorder info on the Survivor Sheet to emulate actual cards, which I think looks pretty cool.
(Do let me know if you disagree, however. I've been getting positive feedback on adjusting the Manager's visual style to look more in sync with the general KD aesthetic, but this might take that too far.)
On the back-end, 2.13.68 adds major new routes to the API and the V1 app has new hooks to start taking advantage of its methods and assets. The changes going out in this release basically pave the way for starting serious development on the V2 webapp.
(More details on the V2 project beta timeline should be available in the next couple of weeks, but they're definitely coming into focus and this release is a major part of that.)
Finally, in terms of what is still due from the Black Friday milestone (which is now one day late), there are only two items: a handful of Safari presentation fixes and bug fixes for a survivor normalization problem that effects settlements with the Beta Challenge Scenarios enabled.
I'm going to do a long/deep-dive QA session re: BF milestone tomorrow morning and I expect to be able to nail those down while I'm working through that.
Thanks again for using the Manager!
Corrections and Fixes
- V1: Fixed a bug where the Tyrant and Lonely Tree nemeses could sometimes show up in the Defeated Monsters picker on the Settlement Sheet when their respective expansions were not enabled
- V2: Updated four old killboard records of Manhunter kills
- V2: fixed the world.get_uptime() method to return actual hours, minutes and seconds of daemon up time
- V1: fixed a bug where custom nemeses could cause the Settlement Sheet to throw a traceback if they had a space in their name.
- V1: fixed a presentation issue where the settlement name was obscured by the top nav at tablet and wide resolution.
- V1: fixed a bug affecting the Survivor Sheet where, depending on survivor status during page render, the strikethrough effect could malfunction
- V1: removed the "html" variable name from the get_disorders() and get_fighting_arts() methods (and facepalmed at my own stupidity a bit)
- V1: fixed a bug where "curse" type A&Is weren't being detected during Survivor rendering, i.e. during assets.Survivor.get_impairments()
- V1: the "Gender Swap" curse is now correctly listed as a "White Box" expansion asset.
- V1: corrected an issue here the Sleeping Virus Flower curse was not associated with its A&I correctly
- V1: added support for the Manhunter expansion:
- keyed in some story-related Manhunter epithets
- keyed in a handful of Manhunter-related causes of death
- keyed in story event pages
- V2: added the nemesis to game_assets.py and the API assets/monsters.py dictionaries
- V2: added an expansion item to assets/expansions.py dictionary
- keyed in gear; created a "Manhunter Gear" pseudo-location for it
- keyed in three innovations and five fighting arts
- created an expansion asset in game_assets.py for the expansion, to include its automatic timeline updates for "The Hanged Man" and the three special showdowns
- V1: Fighting Art game assets may now have an "epithet" attribute, which will cause an epithet to be added to any survivor who adds that fighting art.
- V1: styled Fighting Art presentation so that looks more KD-ish
- V1: created unique styling for Secret Fighting Arts and Constellation-related Fighting Arts (dynamic tablet layout tip-of-the-hat to bnielsen again)
- V1: created a models.nemesesModel.get_levels() method to get a nemesis asset's levels rapidly while menu-building, etc.
- V2: wrapped the World Daemon's start() method in a retry decorator to try to compensate for (or at least better understand) some of these weird MongoDB errors. Seems like it's working.
- V1: deprecated application-layer strikethrough functionality for Fighting Arts (it's pure CSS/JS now)
- V1: styled the disorder "cards" to look more KD-ish (based it on the Fighting Arts code)
- V2: created a route for requesting the cursed items asset dictionary via GET: /cursed_items; updated the documentation.
- V1: created an api.py module for working with the API. Wrote a basic GET method that gets a route with params, translates JSON to dict and returns the dict. So far, so good.
- V1: refactored Settlement killboard updates to use the new API module rather than making direct/manual API calls.
- V2: the route for /cursed_items also accepts POST requests with a settlement_id and, with a legit meta key, will retrieve JSON of cursed items appropriate for that settlement, given expansions, campaigns, etc.
- V1: improved dashboard "World" panel rendering failure logging.
- V2: updated server.sh (the server service starter/stopper) to print some syslog lines and do some sleeps to prevent accidental race-condition type problems during starts/stops
- V2: added a route (/settlement/get/<$settlement_id>) that allows authorized requests to get all attributes of a settlement.
- V2: created a "serialize()" method for the settlement object.
- V1: created assets.Settlement.set_api_keys() and assets.Settlement.get_api_dict() to retrieve settlement info from the API and make it available during V1 render and process operations. This is a BFD and clears the path for deprecating V1 methods (or porting them to V2).
- V1: created assets.Survivor methods for updating cursed item info.
- V1: survivors now retrieve data from the API when initialized and the assets.Survivor class now has methods analogous to the assets.Settlement class for set_api_keys() and get_api_dict()
- V2: revised API methods for getting survivor info. It now requires authorization and I deprecated the hackish/inelegant GET_json() methods and to_json() methods in favor of a single serialize() method on the survivor model (to mirror how settlements work)
- V1: enhanced session objects to make API calls and get all assets required by the current session.
- V2: added "survivors" to settlements.Settlement.serialize(); settlements are returned including serialized versions of all survivors.
- V2: added "cursed_item" attrib to survivors.Survivor.serialize()
- V1: the Survivor Sheet now has controls for toggling expansion-specific cursed items on individual survivors. Toggling a curse on or off logs the event and updates the survivor's A&Is and Epithets to include the curse.
- V1: keyed in some old epithets that I found while tooling around in the prod survivor database that I liked for the core game (including "Gender Swap", which I found while debugging the get_impairments() bug).
- V2: updated API routes (index page) documentation
- V2: added is_compatible() method to the settlements.Settlement class to check wither a game asset dictionary can be used in conjunction with it.
- V1: keyed in a few more causes of death that I saw scrolling by in the logs this weekend: good weekend for KD fans, bad weekend for survivors.
- V1: styled a handful of epithets with new color pairs
- V1: adjusted modal over lay positioning at tablet resolution so that it sits a little higher