Saturday, March 10, 2018

Change Log: 2.72.1337 (The Timeline Release)

Release 2.72.1337 includes a major upgrade for settlement Timeline and Event Log controls.

This release, which I have been working on for almost a month, also contains a small handful of corrections and bug fixes, as well as a minor upgrade to the Campaign Summary Survivor "Quick View" presentation.

(Special thanks to this thread, which reminded me that I didn't include them in the last release, the Survivor "Quick View" display now includes the tips for Courage- and Understanding-related Abilities & Impairments.)

Another thing that happens behind the scenes in Release 2.72.1337 is the deprecation/removal of a ton of vestigial/deprecated methods from the legacy webapp. This massive purge of dead/useless code is phase two of the work I started in the last release to cut HTML render times to the bone. The changes in this release will not contribute directly to decreased HTML render times, but they slim down the overall "weight" of the legacy webapp, and that is a good thing no matter how you slice it.

Speaking of HTML render times, here's how they look in the last seven days of production use, versus how they looked in production during the last week of 2017:


Other than the login view (which I don't have data for in 2017), literally all HTML render times have improved since the 2.67.1287 release. They're still not great (taking almost a second to render the HTML for the Campaign Summary view is definitely no bueno), but they're improving and, as I continue to streamline the legacy webapp, I expect them to continue to improve.

Release 2.72.1337 one also re-does the expansion content controls, which were very old and...let's just say they weren't up to the general standard of the webapp in the last year or so.

Finally, since Wave Two is about to ship, I should mention that this is going to be the last big release until I update the Manager to handle 1.5 versions of the original expansions. The plan, for now, is basically to get release 2.72.1337 shipped, maybe do a quick break/fix/follow-up release, and then get an updated for the 1.5 expansions up as fast as possible.

Watch the Manager's Twitter for more details on the expansion upgrade.

Thanks for using the Manager!

Corrections and Fixes

  1. Monkey patched an issue that caused settlement endeavors to fail to display on the Campaign Summary view
  2. Fixed a bug where non-subscribers could see the "+ Create New Settlement" button and use it to load the form and submit a settlement creation request (which would then get smacked down by the API and send them, without any kind of error message, back to the dash).
  3. Secret Fighting Arts no longer show up in the drop-down for setting the settlement's Inspirational Statue. -chaorain
  4. Fixed a bug in the API Settlement object method get_event_log() where lines from other settlements could sometimes be returned if certain arguments were used in conjunction.
  5. Addressed a few non-fatal AngularJS repeater errors on the Campaign Summary view.
  6. Fixed a bug where the new survivor creation UI would behave strangely if one of the parents had upper ASCII (e.g. accented) characters in their name. -manu161
  7. Addressed a presentation issue on the Campaign Summary where the buttons for dead saviors could be hard to read (because of color issues).
  8. Fixed an issue where removing the "King's Man" from settlement nemeses caused odd behavior. -rumblek
  9. Addressed a presentation issue affecting PotStars survivors with constellations having weird presentation defects on the Campaign Summary.
  10. Fixed a typo in the settlement notes feature where settlement administrators had the wrong icon (head instead of a lantern).

Application Enhancements

  1. Deprecated a bunch of the legacy webapp's vestigial settlement-modifying methods:
    1. get_story_events() and get_timeline_events()
    2. add_game_asset() and rm_game_asset()
    3. get_game_asset()
    4. update_current_survivors()
  2. Redesigned and rebuilt the Timeline controls:
    1. moved the Timeline HTML out of and into a new template file.
    2. Added the timeline HTML template to the standard set of UI templates
    3. Removed all style code that supported the old Timeline controls and Event Log display
    4. Created a Settlement Event icon (vector and png)
    5. Shit-canned all of the legacy JS code for timeline modification in kdmManager.js (boy...that stuff was garbage).
    6. Created a new type of modal overlay for use in situations where we need a modal on top of a modal
    7. Created a timelineReload() method for reloading the settlement timeline; added it to kdmManager.js; instrumented it for performance.
    8. Created a button that adds five years to the Timeline; also did one that subtracts from it. Both of them refresh the view.
  3. Settlement Event log has also been refactored for presentation and performance:
    1. Logs are loaded on demand now, which means that we don't spend time on the initial load of the view pulling down heavy-ass event logs that the user might not even want to see.
    2. Added a Timeline controller to kdm_manager.js; created a method called getEventLogLY() that supports on-demand, single-year event log retrieval via a post to a new API route (see below).
  4. Replaced hard-coded "summary" text of Courage- and Understanding-related A&Is on the Survivor Sheet with references back to the API.
  5. Added the Courage- and Understanding-related A&I tips to the Campaign Summary view's Survivor Quick View. -cla42
  6. Survivor weapon specialization and mastery A&Is show up in the Campaign Summary view's Survivor Quick View beneath Weapon Proficiency. -game_doctor
  7. Added filterObjectBy() method to the root of kdmManager.js for fast, inline, object property-based filtering. It's really good!
  8. Moved the expansion content management controls into their HTML template file (i.e. out of the file).
    1. Settlement expansion content toggles are organized by whether they're quarry, nemesis or enhancement. -Caleb
    2. Warning text about removing in-use expansion content only shows up if the user is actually removing expansion content.
    3. Rewrote the toggleExpansion() method in kdmManager.js to facilitate more "responsive" type UI, i.e. so that the clicks feel like they're having an effect, etc.
  9. Event Log lines where a principle is set are now colored.
  10. The "Lonely Tree" expansion is now categorized as a Nemesis-type expansion (rater than an "Enhancement"). Thanks for everyone who took the poll and/or survey!
  11. On the Campaign Summary, The Dead (survivor group) is hidden by default.

API Development

  1. Removed custom type/sub-type code from module. Replaced it with a self.root_module style init, i.e. brought the events assets up to current standards.
  2. The Settlement object has been upgraded with several new methods for working with settlement Timelines!
    1. added get_timeline() and documented it.
    2. Added replace_lantern_years() and documented it.
    3. Created a new route/method called set_lantern_year that basically allows a wholesale overwrite of a complete LY.
    4. Added set_current_lantner_year() and documented it.
  3. Cleaned up some existing Timeline methods in the Settlement object:
    1. initialize_timeline() no longer expands timeline event handles into detailed dictionaries.
    2. The normalize() method now "flattens" 1.1 timelines, making them into 1.2 timelines.
    3. new() creates 1.2 timelines out of the gate.
    4. Removed the routes for adding individual events to Lantern Years (because they were insanely complicated and not very well-considered). They...may or may not be replaced, eventually.
  4. Default timelines now "end" at their last Story Event.
  5. Updated with a param that allows admins to reset/initialize a settlement's Timeline from the CLI. 
  6. Finally documented the Timeline data model.
  7. models.settlement.Settlement.get_event_log() now accepts the 'ly' kwarg (or POST body param) and, if it receives it, the API only returns event log lines from that LY. I also documented this fact.
  8. Rewrote/refactored the models.settlements.Settlement.rm_monster() method completely: it was a lazy port of an addition method that was, itself, a fairly lazy port from the legacy app and it was causing weird problems.
  9. Refactored semantic Settlement event logging and decorated the log_event() method in to prevent it from throwing a TB and returning a 500 on a call.
  10. Flower Knight expansion has a UI type now (it's "Quarry"). 

No comments:

Post a Comment