|Tablet resolution of Family inheritance!|
Release 2.59.1152 mostly pushes back-end code related to logging, asset attributes and other API miscellany related to the alpha release of The Watcher.
This release does push some new beta functionality to the legacy app, however. As of 2.59.1152, subscribers with the "beta" preference set to "enabled" can try out "Family" innovation inheritance.
Check out the feature demo on the right to see how it works.
Finally, as far as corrections and fixes go, release 2.59.1152 pushes a handful of corrections/fixes for issues introduced into the legacy webapp due to the speed at which we're moving on back-end development/enhancement.
As I mentioned last time, I'm pushing a ton of low-level API code lately for The Watcher, and that is resulting in downstream (i.e. legacy webapp) bugs.
Thanks for your patience! And thanks again for using the Manager!
Corrections and Fixes
- It's a Hanukkah miracle! Addressed a bug where settlements with Hebrew names threw an error while initializing a user's dashboard. -trstrstrs
- Addressed a tablet resolution presentation issue on the Dashboard where the "rollup" buttons had almost no padding and were tricky to tap (for those of us with chubby little nubbin fingers).
- Addressed an issue where (legacy) settlements with principle-type in their Innovations list would throw errors when loading their innovation deck.
- Fixed a bug where updating nemesis levels on the Settlement Sheet threw an error.
- Fixed a bug where Survivor Sheet "Abilities & Impairment" options said "Abilities and Impairments" instead of their actual sub type (e.g. "curse", etc.)
- Addressed an issue where "curse" type A&Is wound up in the Survivor Sheet picker.
- Fixed a presentation issue where "special", e.g. campaign-specific Survivor Sheet attributes did not display correctly at tablet resolution.
- Keyed in a few more random survivor names.
- Added support for "Family" innovation weapon proficiency inheritance:
- Created UI controls for single survivor creation.
- Inherited weapon proficiency is now displayed on the Survivor Sheet inheritance.
- DRYed up the Survivor Sheet inheritance (we iterate parents now, rather than duplicating all inheritance elements).
- Rewrote the Weapon Proficiency type picker to use the revised (see below) API game_assets element.
- The API webserver configs have been updated to handle large avatar image uploads.
- The Survivor class new() method now supports "Family" innovation inheritance:
- added the new attribute 'primary_donor_parent' to the "Family" innovation (and wrote some rules for it).
- Added handling for attribute inheritance (via 'primary_donor_parent' innovations) in the new() method
- Added handling for two types of 'primary_donor_parent' specials: 'surname' and 'one_half_weapon_proficiency'
- Updated the docs to describe how one-parent inheritance works via API.
- Added log_event() calls to "Family" innovation processing so that they log according to the inheritance modality (see below).
- The Survivor class object initializes with self.AbilitiesAndImpairments as an AssetCollection for A&Is. Replaced one-off collection init in new()
- Serialized settlement game_assets.weapon_proficiency is renamed to weapon_proficiency_type and is no longer a list (it's a dict).
- Survivor inheritance and all things related to being "born" now take place entirely in a method called birth(), which consolidates all of the inheritance and newborn code we had spread throughout the class methods previously.
- Enhanced Semantic Settlement Event Logging to support survivor inheritance:
- log_event() now records the 'agent' key, which basically indicates whether a user did the event, or it was the result of automation.
- log_event() now supports "inherited" and "inherit" as incoming action values.
- Added the 'pretty_value' (to mirror 'pretty_key') to the modified.attribute element.
- Survivor class method add_game_asset() now supports kwarg 'log_event' which, you guessed it, is a bool that determines whether we call self.log_event() after adding the game asset to the survivor.
- Refactored models.innovations.py so that we initialize that AssetCollection from the root module without type overrides; also touched up assets.innovations.py so that principle-type innovations automatically sub-type themselves on load.