August 1
...I did not intend to let all of July pass without a post. I blame RuneScape this time. And the fact that I've been gathering gold in my reserves again on Vindictus. Anyway on to the actual topic. Here are the things I've done since the last post:
Gear module:
- Fixed a bug where using the "Use" buttons on the Gear Params Prompt to swap active enchants or infusions would edit all three slot presets for that item.
Battles module:
- Refactored the code to check a newer and more general location for battle data. This module no longer has sole domain over it.
- Removed the ability to select a battle from this tab. This was only relevant to the Power module, so this functionality is now part of the Power module.
- Removed some code that became obsolete due to these changes.
Power module:
- Refactored the code to check itself for selected battle data instead of the Battles module.
- Implemented a check to prevent any default baseline used from having stats below the requirements of the battle (if they cannot be bypassed, such as with Taros). This will not apply when using your other gear sets as baselines.
- Fixed a bug where battles with no Counterforce Resistance still calculated damage from Counterforce; it would reduce damage unless you had 100 Counterforce, which is erroneous.
- Fixed a bug where the Baseline being compared to was counted as having the same ATT Surplus as your current stats.
- Identified an issue where Redeemers raids, which don't have QB requirements, can't show differences when on the default QB Reqs baseline. I am undecided on what I want to do to fix this.
Miscellaneous small patches
- Fixed the display order of Rhod Compasses, to display them in descending order of stats, instead of the default alphabetical sort.
- Replaced my placeholder background image for the Rhod Compass slot with a proper one.
- Overhauled the way the Armory stores set stats so keep stored copies of all 7 sets/21 total configurations, and to be able to keep them all up to date. This is required for the Power module to use them as Baselines in comparisons.
The main drag on progress recently has been dependencies the Power module turned out to need. My decided solution for the problem of how to handle multiple battle selection was to take that functionality away from the Battles module entirely. The Power module should not have to lean so heavily on an entirely separate module to be able to do anything. Battle selection is now done via clicking the shown battle name on the Power module (will show this UI later in the post).
Having decided that, it turned out that it would be inefficient to make two different modules both request battle data and process it separately, when they both had to do exactly the same work. So I then ripped that process out of the Battles module as well, which required some server-side work to completely strip it away. Battle data is now provided in the initial burst of data the Armory gets on page load, for info that multiple modules need to make use of.
With battles sorted out, I then needed to make baselines work. This instantly ran into another dependency, where to make gear baselines work the Power module needed to be able to have instant access to the final fully calculated stats of any set. At this point, the Armory only kept one fully calculated set of stats, and it was for your current set only. Reworking this was fairly tedious, but after a lot of rebuilding to the class that handles it, and a lot of references to it, the Armory now stores 21 copies of fully calculated stats, one for each set and for each preset configuration that set can have.
So that is where my development progress has been lately. To close out this post, I will show how it looks currently, and what I plan to finish next.
This is the Power tab's design, in its final iteration before release:

The tab row with "Standard" and "Multi-view" is the most recent significant addition. The Standard view mode shows you what you see there, your current set against one battle as compared against some baseline. The Multi-view mode is the one I showed a draft of in a previous post, where you could check your current set against multiple battles at once, with a different slot preset selected on each. This would allow you to min/max your scroll/infusion slots efficiently. That one doesn't work yet, so nothing to show on that front.
To change the selected battle, you just click the battle name on the tab and it pops up a list of battles you can change to. Click a battle on that list, and it instantly switches over.

Due to the reuse of some fancy code on the Armory, the baseline selection and battle selection prompts will always open in a way that doesn't clip them off the edge of your screen, while also keeping them aligned to the label you clicked to open them in the first place. It's rather handy.
My next bit of work to do is making Multi-view mode work. All of the dependencies are done and handled, so it should just be straightforward work on the Power module itself. A nice change of pace somehow. When it is done, the Power module is finished. Once that is done, I need to fix the several bugs I discovered while working on Standard view mode that I couldn't instantly fix on sight.
From there, two modules remain that need to be created and completed. Both should hopefully be minor compared to basically any of the existing modules.
1: A module to select buffs like Fury Infusion, Greater Werewolf Paw, and other rather important effects.
2: A module to create shareable links to sets and saved Profiles/Loadouts.