|Color-coded survivors have arrived!|
This release also includes a the new, subscribers-only feature that lets Survival +5 subscribers color-code their survivors by setting a Survivor Color Scheme from the Campaign Summary view.
Check out the feature demo for that in my last post.
Also, in addition to supporting code for The Watcher and the new color-coding feature, release 2.58.1104 also contains a handful of upgrades/enhancements intended to improve performance.
As I discussed briefly in one of the recent downtime updates, CPU performance is becoming an issue due to the high amounts of traffic we're processing lately (and the large amount of data that goes along with that traffic).
Release 2.58.1104 therefore makes makes a few strategic adjustments to the World daemon, which can be pretty processor-intensive, that should help overall CPU use.
Thanks for using the Manager!
Corrections and Fixes
- Fixed a typo that caused the rules for the "Bone Axe" to appear as a list of letters. -ratimir2
- Addressed an issue in the API Admin Panel that prevented active users from being highlighted.
- Fixed a bug in the legacy app's clone_user.py script that prevented it from getting user OIDs from the API.
- Adjusted the exception-capturing code in the legacy webapp's api.py module so that post_JSON_to_route() can attempt to raise an exception including the offending content.
- Fixed a bug in the API's admin.py where some email addresses, when evaluated by the bson.objectid library, could be coerced to OIDs (and cause user lookups to fail). -M Lang
- Addressed a presentation issue where the 'Returning Survivor' bar on the Campaign Summary wasn't positioned correctly at mobile resolution
- Fixed a typo that prevented settlement notes from being removed. -Malte
- Created subscriber-only "Survivor Color Scheme" feature:
- Added a picker to the Campaign Summary controls.
- Wrote a controller in campaignSummary.js that uses the new API methods for setting a survivor color scheme.
- Created four color schemes from the proxy cards (for my single players out there in Manager-land and on /r/kingdomdeath).
- Created 10 KD-inspired color schemes based on various things in the KD world.
- Updated Survivor Sheet nav bars to reflect the survivor color scheme
- Revised the kdmManager.js method for POSTing settlement notes to take advantage of new API defaulting (see below).
- The Admin Panel no longer initializes recent settlements.
- Added a new route /expansion for one-off expansion asset lookups. It works just like /monster or /campaign.
- Updated Models.GameAsset.request_response() base class method to be able to dump JSON containing datetime objects (because expansions have release date attributes, unlike all other currently tracked game assets).
- Keyed in a handful of new name assets, including settlement names inspired by Grim Dawn.
- Models.UserAsset.get_mdb_doc() now fails with a much more descriptive AssetLoadError type exception when it cannot retrieve a user asset.
- Updated the World daemon to be less impactful on CPU usage:
- server.sh now nices the daemon when it starts it.
- the daemon now sleeps for 1 second between asset refreshes in order to give a CPU scheduling "break" during the job in case other process are trying to get scheduled.
- Configured DNS for alpha.thewatcher.io and app.thewatcher.io
- Enhanced query.py to dump a dictionary to stdout if the method you try to call is just a dictionary.
- Created survivor color scheme assets (in assets.survivor_sheet_options.py) and wrote a quick models file for them.
- Added survivor color schemes to serialized settlement output.
- Created a new method in the Models.AssetCollection class called get_sorted_assets() which returns an OrderedDict version of self.assets that is sorted on asset names.
- Created the new models.survivors.Survivor.set_color_scheme() method and the route to it (i.e. /survivor/set_color_scheme/<oid>); wrote the documentation for how to use it.
- Survivor weapon proficiency type can now be unset via /survivor/set_weapon_proficiency_type/<oid> using the 'unset' key in the POST body. Updated the docs. -Caleb
- Cleaned up the Admin Panel's 'Recent User' display and made some enhancements in panel.py so that we don't have to rely on (shitty) JS date calc for user age and latest activity age.
- Touched up the docs and did a little presentation/content housekeeping:
- Cleaned up the "lookup routes" explainer section and clarified /campaign entry
- Added an entry for /expansion
- Added an entry for /gear
- Bolded GET and POST references in the docs.
- Cleaned up the embedded table CSS so that the tables fill their column (and don't have TD overlap issues)
- Documented the methods for adding notes to and removing notes from a settlement. -Caleb
- Added the BSON library default handling to all of the returns in Models.AssetCollection.request_response() to support lookups for assets with datetimes, etc.
- Created defaulting for Lantern Year and author email/login in models.settlements.Settlement.add_settlement_note() to facilitate lazier API calls.
- The Settlement class add_settlement_note() method (and the route that goes to it) now return note OID.