June 1st
I got sidetracked by Weaponsmithing, material hoarding, and various other things, so I am now a fair bit behind schedule. I wanted to have the stat fixes and new stats on the live site before June. They are not critical, at least.
I have mostly finished implementing the restructured function for handling strings, and have not yet started restructuring calculation. Neither should have taken long, but as said before, I got sidetracked and didn't do anything.
Currently on the live site, when the Armory needs to display text somewhere, it pulls it from my text-storing object based on an exact path. If that string doesn't exist, it says Undefined. If that path doesn't exist, the whole function crashes catastrophically.
This is bad for several reasons, not just the obvious "it can error and cause all scripts on the page to stop running" problem. Due to this type of structure, for every language branch I have, it must have a complete directory of its own, with a copy of each string to display, even if it results in having to copy/paste in the English information. Space-wise this is inefficient, and it also slows me down implementing new features/editing features.
With the new structure, it first attempts to pull the string from the path given. If the path doesn't exist, or the string isn't found, it attempts to pull the string from the English set of strings. If it fails again, it will supply a string stating something such as item317_Undefined, indicating what value was not able to be found. As a result, the function does not error or fail to return a value, regardless of what it is told to do. Additionally, I do not need redundant copies of data for languages that have yet to be filled in, or only have partial changes (such as English (EU)).
The followup of restructuring calculations is less significant than it sounds. I will add in a function that uses a third party number object, and it will perform the calculation of values that need to have floor() or ceil() applied to them. This will resolve all "off by 1" rounding errors, in instances they occur at.
On another subject, I'll go over the patch that will be in the works immediately after this one is finished and published. I originally wanted to cover this in the June note, and I will, even though I am currently behind schedule.
I mentioned before that I wanted to redesign the Armory UI. This will be a complete ground up rebuild of how every window and dialog on the Armory looks. Functionally, everything will work exactly the same, unless I explicitly decide to change it alongside the redesign. There are several reasons I am choosing to do this, and I will try to explain them without going overly into technical detail:
Simplifying the Design's Structure
Currently, every element on the Armory has an exact X and Y position within its window. I learned Web Design via making the Armory itself, so this was done based on a false assumption I had of how position:absolute; works. In short, I had thought if I didn't do it this way, I could not properly control the location of the elements within the windows. I now know this to be false, and can correct it.
At the same time, I can build (or rebuild...) certain parts of the design so that I can repeatedly reuse them, making it faster to make new Armory windows. As is, it takes a very long time and a lot of effort to add even a simple Armory dialog, due to having to position everything individually. This is the true reason why certain features I have had in mind have not made their way onto the site yet. Even spending unusually large amounts of time working on the site, implementing something like the Compare Window's settings dialog can take 1-2 days to set its UI up properly and make it look decent. After the rebuild, I hope to be able to make such structures in 30 minutes or less once I know what I want them to look like.
Unifying the Design's Looks
Currently, every window/dialog on the Armory looks and functions just a little differently from every other. The Character window has you click labelled rounded buttons to change characters, and the selected one turns Gold. The Gear window has a vertical row of buttons to select a set, and the selected one loses its right-side border. The Compare window has a button that is literally the text header of the window, to toggle Sets/Weapons mode. The Storage window has circular buttons with no labelling that turn Gold when selected. The lists for profiles have yet another set of buttons, with icons on the left.
Things like that are confusing to users, and a sign of poor design. Even though most of the windows will generally look the same after the redesign, their UI will be a lot more cohesive overall, and it will be more clear how to use the features on each window (hopefully).
Replacing the Config Window
This window has always been the one most prone to massive overhauls, and it has another one aimed at it this time. My plans aren't yet final, but I do have a few changes in mind that will definitely be happening.
Firstly, the base stat entry (the Stats tab) is going to be entirely remodelled in preparation for Ainlach, and will visually be a near replica of the Stats window. This will give allowance for base ATT, M.ATT, Balance, and Critical, as required for the Ainlach titles. The "Activated Buffs" section will be entirely separated from the Config window, and merged with the Buffs List, above the selection list.
The Modifiers tab will be separated into its own window, and will be expanded to include more proficiency/mastery skills. This will be mainly in preparation for the Archives, but also for another feature the Armory will have down the line.
The Profiles tab will be given its own window, and re-purposed as a site-wide window. Profile saving will be split into two parts, and all existing profiles will be converted to the new format. One set of profiles will be your base stats, proficiency ranks, and any other character-specific information. The second set will be equipment and buffs. This way, if you have multiple saved sets for a character, you only have to maintain one save of the base stats of your character. Conversely, if you have one set saved for multiple characters, you will only have to maintain one copy of it.
Lastly and predictably, the Settings tab will be separated into its own window. As a twist however, every existing settings dialog will be merging back into the main Armory Settings window. These settings do not need to be set often, and having to manage a location for each settings dialog is quite silly.
Ease of Use
You might have noticed that in the above section, I mentioned a lot of new windows. And that doesn't even count once the Archives are enabled as a site-wide tool... However, hopefully, you will find that after the redesign, the windows are even more convenient to manage/work with than before. The primary reason for this will be...keybinds!
This is an experimental idea I have been juggling with for a while, and have really wanted to try out. Essentially, instead of toggling windows in and out of view with the Settings tab of the Config window as it is now, you will be able to press a key on your keyboard to summon and dismiss them whenever. You will be able to re-allocate these binds to whichever keys you prefer, or even disable them entirely.
Additionally, a new setting will be attached enabling/disabling "Teleporting windows" or whatever I decide to call the feature. If enabled, and it will be by default, when you open a window via the keybind, it will appear at a fixed location near your mouse cursor, based on how you set it (similar to the current Preview tooltip settings). EX: If I press S to open Armory Settings, it would appear immediately below my mouse cursor, within reach with minimal effort. If the feature is disabled, it would appear exactly where it was when it was last closed.
Finally, it will become possible to individually disable dragging the windows. It can be annoying to have something placed JUST right, then you accidentally drag it a bit and ruin it.
Other
Nothing is set in stone yet, and I am certainly willing to hear feedback of what other things I should or shouldn't do. If you have anything to say, leave a post in the Armory Redesign thread I setup to discuss the changes.