So yeah, uh...sorry about that.
In order to apply this fix, I had to finish up and push out a couple of new API routes and, whenever I do that, there is always risk of unintended consequences, so I'll be keeping an eye on this release and potentially doing another patch tomorrow or this weekend.
Otherwise, assuming that this release looks OK and sits well for the next day or two, I do not plan on doing any additional releases until late August, so this may be the last you hear out of me for a while.
Thanks for using the Manager!
Corrections and Fixes
- Fixed a bug in convert_innovations_to_handles() that threw tracebacks when converting settlements with custom innovations.
- Addressed a major issue where Settlement Sheet updates to defeated, quarry and nemesis monsters did not work. Thanks to everyone who wrote in to report the issue!
- The cursor turns into a pointer/hand (at wide resolution) when hovering over nemesis monsters, i.e. to indicate that they can be clicked to remove
- Updated the settlementSheet.js methods for managing defeated monsters:
- The addDefeatedMonster() and rmDefeatedMonster() methods now POST to the API, rather than the legacy webapp
- Refactored both of the above methods to use dot notation and non-legacy $scope calls
- Both methods are full angularjs now
- Removed calls to the deprecated modifyAsset() method from the settlementSheet.js
- Deprecated the add_kill() method from the legacy webapp
- Revised controls for quarry and nemesis monsters so that they use API routes and do NOT use the deprecated modifyAsset() method.
- Updated the settlement object's return_departing_survivors() method to POST any kills to the API directly, rather than calling add_kill(), which is now deprecated.
- Created new methods in the Settlement class for managing monsters:
- Created add_defeated_monster() for adding monsters to the settlement and the killboard
- Created rm_defeated_monster() for removing monsters from the settlement (doesn't mess with the killboard)
- documented both routes for defeated monsters
- Created the add_monster() method, which only requires a handle, and supports the addition of quarry and nemesis type monsters.
- The utils.InvalidUsage() exception class now returns an HTTP status of 400 by default.
- Refactored the Settlement class update_nemesis_levels() method to remove some redundant exception capturing code that duplicates functionality that is already available in the check_request_params() method of the UserAsset base class.
- Enhanced the Models.AssetCollection.get_asset() method to raise a utils.InvalidUsage() exception if an asset handle is not found; made the exception-raising thing a kwarg control called 'raise_exception' and defaulted it to True (since we generally want to raise an exception on an unknown asset handle). Should help DRY up the models.
- AssetCollection objects now warn when they're initialized without a default asset 'type' attribute. They also default a really ugly bogus 'self.type' value, i.e. to prompt me to fix them.
- Enhanced utils.list_to_pretty_string() method to handle blank/empty lists as well as lists of integers.
- Enhanced the Settlement method update_nemesis_levels() to have better logging, to do a settlement event log entry and to duck-type the incoming 'levels' value to a list (or die).