A gathering place for Vindictus players of any region or server to get together and discuss the game.


    May 2022

    Shippuu
    Shippuu
    That Guy
    Server :
    • NA East

    IGN : Shippuu
    Posts : 359
    Joined : 2015-12-17

    May 2022 Empty May 2022

    Post by Shippuu Mon May 09, 2022 10:07 am

    May 9


    I've been drafting new data formats and building/filling in those tables for the last nearly two weeks. I've also been dealing with getting icons for newer items. I might be declaring this pre-maturely but it is looking very good that I will be able to move on from data and icons and start repairing the Armory code late tonight. I will also be taking the opportunity to clean up code fragments/deprecated code from past experimenting, so that will make it take a bit longer.

    The first order of business on that will be restructuring one of the most involved and lengthy pieces of code on the server, with dependencies on the three largest pieces of code on the server, so that will be fun. It basically handles the process of reading out all of the data the site uses and prepares it for use by the various pages. As such, the entirety of it is now either out of sync or not even needed anymore.

    The next Dev Log will be after this single task is done. This alone will put me at nearly the 50% mark on getting v4 operational again honestly.
    Shippuu
    Shippuu
    That Guy
    Server :
    • NA East

    IGN : Shippuu
    Posts : 359
    Joined : 2015-12-17

    May 2022 Empty Re: May 2022

    Post by Shippuu Fri May 13, 2022 10:35 am

    May 13


    Upon reviewing the server-side code, I realized that the main block I was preparing to work on actually didn't reference the two giant "dependencies". I had believed my classes for parsing item data were deeply tied to the rest of the site, but apparently they are a remnant from an earlier iteration of the v4 build. I still need to renovate them to allow the site to have fully functional hover tooltips for items on any page except the Armory, but I can thankfully put it off until the Armory itself is fully operational again.

    The main block of code is now fully adapted to the new data format, and I was also able to cut the size of the functions in half, on average. It also runs somewhere around 6-7x faster than before, too.

    The last thing I need to do before I can begin on the client-side of the Armory is rebuild one more server-side piece, which I am already started on. This last piece is basically an info packet for the client-side. Instead of having to juggle around display names for sets and etc, the client just pre-loads a JSON file that has all of those already.




    Separately from vaguely talking about server-side stuff to not leak details, I do want to talk about one neat optimization I made for handling equipment sets, which is saving both me and the server quite a bit of work.

    On all previous iterations of the Armory, it was very clunky. The Armory had to keep a list on hand of every single item that belonged to every individual set. Then, when you equipped an item, it had to check every single set looking for which one contained that item.

    If it matched a set, it incremented a counter that that set had an item equipped belonging to it. This got even more complicated with sets like Ivory or any 90+ set where multiple items could belong to the same slot of the set, so it also had to have checks to show a more generic name for that slot: "Ivory Weapon" instead of "Ivory Staff" or etc. Worse, since you can equip two rings, it also had to check for if you were equipping the same item a second time. Overall, it was just a massive hassle.

    In my new approach, the Armory doesn't even keep a centralized list anymore. Each item itself now declares it belongs to a set, if any. It also declares what slot of that set it goes in. This automatically untangles all of the previous mess the Armory had to go through when equipping things. Instead of a counter, each set now has an array of integers, one for each slot.

    When equipping an item, the Armory can just look at what set the item says it is, and what slot it is, then add 1 to the number at that array index. No further checking is needed. To count how many items of a set are equipped, it just checks how many array indexes within that set have a boolean value that equates to true (any value above 0). If you do something like equip two Daybreak Trailblazers, which would not complete the set, the array would have a 0 and a 2. Only one would evaluate as true, so you'd have 1/2 parts of the set, which is not enough for the set bonus.

    The server is doing some other things in the background to get the names of the slots in the sets, but I will continue avoiding disclosing anything too specific about the workings of the server.
    Shippuu
    Shippuu
    That Guy
    Server :
    • NA East

    IGN : Shippuu
    Posts : 359
    Joined : 2015-12-17

    May 2022 Empty Re: May 2022

    Post by Shippuu Wed May 18, 2022 8:11 am

    May 18


    I got too into fixing things as it really started snowballing, and forgot to post updates here, whoops. So I've completed that "info packet", a few days ago even. I then moved onto making the Item List on the Armory functional again, which initially looked like it worked smoothly but is definitely very broken on the server-side.

    Believing it was 100%, I moved onto the tooltips for items. I redid almost all of the CSS (the stuff that defines how things look on a site), but I didn't actually end up changing the looks much. The biggest divergence I took from what v4 previously looked like was taking the line displaying the quality of the item, and moved it up to where the Armory used to display fusion details. The full tooltip now looks like this:

    May 2022 6jaT3Pj

    I can't actually set composite material rolls yet, so it is stuck in their default behavior, which is to just show the full roll range for the shards/chunks/whatever they get called. Enhancement, Enchantment, and very soon Power Infusion will be 100% fully operational. I am going to finish all parts of tooltips, and parts of the Item class associated with setting those values, then I am going to loop back around and fix the Item List's issues.

    It probably won't be too long before the next post.
    Shippuu
    Shippuu
    That Guy
    Server :
    • NA East

    IGN : Shippuu
    Posts : 359
    Joined : 2015-12-17

    May 2022 Empty Re: May 2022

    Post by Shippuu Fri May 20, 2022 4:09 pm

    May 20


    Ok, the last two days were eventful. The Item List tab, Gear tab, Overview tab, Battles tab, and Item tooltips are now fully functional. Additionally, core stat calculation for the entire Armory is now functional. This is the end of the rapid fire progress, though. Everything else from here on is either itself very complex, or has an unconverted dependency that happens to be very complex.

    My next task is to get the Gear Params Prompt working again, the name I give to the window that appears when you right click gear slots to set their properties. It replaces the old right click options menu. It is absolutely massive in size, and I don't yet know how much of it needs overhauling to use the new data. The next update will be when it is done.
    Shippuu
    Shippuu
    That Guy
    Server :
    • NA East

    IGN : Shippuu
    Posts : 359
    Joined : 2015-12-17

    May 2022 Empty Re: May 2022

    Post by Shippuu Mon May 23, 2022 9:11 am

    May 23


    The Gear Params Prompt is fully functional once again. I also took the opportunity to code in a new validation check for it, which also happened to reveal an oversight in my original code.

    Bracelets will now only present valid options for what you can set sockets to. The first socket on a Silver Bracelet can only be a Diamond or Sapphire, etc. Additionally, if your Silver Bracelet is already something like D/S/R and you change the first socket to Sapphire, it will forcibly change the second socket from Sapphire to Ruby, which will in turn force the third socket from Ruby to Emerald. Ontop of just convenience and accuracy, this was also required since I don't have icon variations for impossible socket setups.

    In the process of testing this, I discovered that the events for the select lists could not be cleared. This meant that once you changed a socket and it forced a recheck, it bound those events a second time, with both still valid. As a result, when you clicked a list to open it, it treated it as two clicks. One to open it, and another to close it; this created the appearance that nothing happened on click. It was very confusing.

    All of that settled, that was by far the most complex/lengthy piece of the Armory to be messing with. My next project is to take a slight detour and investigate tooltip functionality for outside of the Armory/Archives. I have no idea what route I will take on this, so I don't have much to say about it here. My next post will be after I get the Storage window on the Armory operational again.
    Shippuu
    Shippuu
    That Guy
    Server :
    • NA East

    IGN : Shippuu
    Posts : 359
    Joined : 2015-12-17

    May 2022 Empty Re: May 2022

    Post by Shippuu Tue May 24, 2022 7:41 pm

    May 24


    Ahead of schedule, the detour is complete. Additionally, the Storage window is fully restored. The Profiles window too as of a few minutes ago.

    The sole remaining window to restore is the Loadouts window, which handles saving/loading equipment sets. All of the saved sets are in an outdated format the Armory can't read anymore, and its save process requires server-side validation of the items. Both of these are significant hurdles. One is a tedious slog to manually fix all of the data, the other is just another round of complex tweaking.

    Once Loadouts work again, the Armory will be fully restored to where it was in 2021, minus a few features I've had to cut. This does not mean that the Armory is complete and ready to go online. It simply means I am caught up to where I last left off.

    Profiles and Loadouts both need some filling in still, in some cases some of the buttons don't even do anything yet. There is no window yet to create shareable links (which will be a paired Profile and Loadout, that you can link to other people with a short unique ID code). There is no window yet to turn on/off buffs like Fury Infusion or Insane Reaper. The Power window (which calculates Effective ATT and etc) is still essentially in just the concept phase.

    Much work and polish is yet to be done, but returning everything already written to functional is still a huge step. When I reach that point, I will likely pause for a moment and start compiling a list of everything I still need to do before I can bring the Armory online again. I will (probably) post that list here in a later post once I have assembled it. It should be fun to see my attempt at having made a comprehensive list constantly grow as I try to clear it off.
    Shippuu
    Shippuu
    That Guy
    Server :
    • NA East

    IGN : Shippuu
    Posts : 359
    Joined : 2015-12-17

    May 2022 Empty Re: May 2022

    Post by Shippuu Thu May 26, 2022 3:29 pm

    May 26


    The Loadouts tab has been converted. All Armory code from 2021 is now functional again, development can continue once more. I've also realized I've been lax on previous Dev Log posts since I resumed work again on using the correct terms for things, since it actually matters. Windows are the blocks you can drag around and rename, that can have whatever tabs you want in each. Tabs are the actual Armory modules, such as the Gear tab, etc. Each module has one tab.

    I've started a list of things yet to do before the Armory can go online. I've tried to make it comprehensive, but I am certain there are things I either forgot or things I don't yet know I need to work on. I will be tackling things on the list in probably random order, based on what I feel like at the time. Here is what it looks like so far:

    Overall Site:
    • The site is account-based, yet there is no method to create an account currently; this needs to be addressed.
    • The code handling saving changes to settings is bad, and needs refactoring (total overhaul).
    • Check over the functions that handle rescaling the Armory, and remove obsolete code that was used to rescale dynamic icons. The Armory only has static icons now.
    • Another pass needs to be ran to make sure all references to outdated code from pre-rework have been removed.
    • Another pass needs to be made on every gear category for every character, to make sure nothing is missing. At minimum a LOT of outfits are.
    • The server-side still has some placeholder functions that are terrifyingly insecure and need to be replaced with safe sensible code.
    • Letty's image is missing from the sprite for character images.
    • Obsolete files/images need to be removed from the site directories.
    • Attempting to drag scroll bars with your mouse does nothing right now, the functionality is missing and needs to be implemented.
    • I don't have a name for the site. I will not be continuing to use the old one.
    • The Settings window exists but is very incomplete/placeholder-ish.
    • A notifications tab exists on the main nav bar, but it currently does nothing.
    • Overall polish is needed to make sure the user isn't overwhelmed with windows and tabs at first sight.


    Tooltips:
    • These currently don't support displaying expire dates or expiration times on items.


    Base Stats module:
    • Some ongoing weirdness with base stat conversion needs to be addressed.


    Gear module:
    • The Necklace slot needs to be updated to its new icon, now that it has been relocated.
    • There is no feature to copy an entire set to another Set tab.
    • There is no feature to copy a single item fron one set to another.


    Gear Params prompt:
    • A sub-tab is planned to be implemented to pre-set all composite materials rolls at once, but currently does not exist. As is, they always default to Max Rolls/0 ATT Surplus.
    • Bracelet gems currently always default to Median rolls, nomatter what. This needs to be addressed in the same way as composite materials.
    • There is no option anywhere to change the active Prefix/Suffix/Infusion, now that each has two slots. UI exists to set them, but not to switch between them.
    • A spacing check needs to be performed when changing tabs, since its height can change. It needs to relocate itself to not go off the top or bottom edge of the screen when this happens.
    • Code needs to be added to control where this appears when opened, and a toggle needs to be added to Settings to either always appear where it last was, or to always align to the item right clicked.


    Overview module:
    • The level input doesn't blend in properly with the rest of the block, and needs some HTML/CSS work on redesigning it.


    Battles module:
    • The functionality of selecting battles is shaky and not distinct at the moment; Pre-rework you opened a battle and then selected an enemy from it. The UI was designed for that, and needs to adapt.
    • The list of battles needs to be moved to be inside of a scrollable panel. The height of the tab is currently inconsistent depending on which group of battles you are looking at. Not ideal.


    Power module:
    • It is still only in a concept phase essentially. It needs a lot of work.
    • Counterforce damage % is displayed but isn't calculated currently.
    • "Relative Damage" between your set vs a comparison set currently uses an animated meter to show the difference, but its animation needs work or removal.
    • The tab needs to display which battle is being used for the comparisons. This is set in the Battles tab and can be seen there, but the Power module should also show it.
    • I need to do another pass on deciding which stats are worth displaying on this.
    • There is a built in set of "Baseline stats" you can compare against, rather than having to prepare a set to compare with. They are from before Lv. 110, so they need work.
    • There is a UI display for which Baseline you are comparing against (whether pre-defined or a numbered set on the Gear tab), but it currently doesn't actually do anything.


    Profiles module:
    • The Filter/Sort buttons exist on the tab, but they don't do anything.


    Loadouts module:
    • The Filter/Sort buttons exist on the tab, but they don't do anything.
    • I need to update the sprite image that has all of the icons used when viewing Loadouts on the main list, it has nothing newer than Belle's axe.


    Missing content:
    • There is no module to handle creating shareable links for others to see/use.
    Shippuu
    Shippuu
    That Guy
    Server :
    • NA East

    IGN : Shippuu
    Posts : 359
    Joined : 2015-12-17

    May 2022 Empty Re: May 2022

    Post by Shippuu Sat May 28, 2022 5:41 pm

    May 28


    I've been making good progress, mostly focusing on the Gear Params prompt, as it is the most important piece of the Armory and needs to be as flawless as I can manage. It isn't complete yet, but it is getting there. In comparison to the to do list from the previous post, here are the tasks I have gone through and resolved since the last post:

    Overall Site:
    • Letty's image is missing from the sprite for character images.
    • The code handling saving changes to settings is bad, and needs refactoring (total overhaul).


    Gear Module:
    • The Necklace slot needs to be updated to its new icon, now that it has been relocated.


    Gear Params prompt:
    • There is no option anywhere to change the active Prefix/Suffix/Infusion, now that each has two slots. UI exists to set them, but not to switch between them.
    • A sub-tab is planned to be implemented to pre-set all composite materials rolls at once, but currently does not exist. As is, they always default to Max Rolls/0 ATT Surplus.
    • Bracelet gems currently always default to Median rolls, nomatter what. This needs to be addressed in the same way as composite materials.
    • (NEW) Relocate Enhancement failstacks to the Stats page, beside Enhancement level


    A new item has also been added to my to do list, that I haven't addressed yet:

    Overall Site:

    • (NEW) Investigate the code that calculates the height of the Armory page, it frequently sets the height between 1 and 20 pixels too short.





    As part of implementing Quick Set options for composite materials/bracelet sockets, I had to decide what those options would be. They are:

    Composite items:
    • Default Rolls (This will have the stats of the item as it drops from raids).
    • Basic Max Rolls (Maxed but with 0 ATT Surplus, the reasonable option)
    • Full Max Rolls (Max with max ATT Surplus, for the rich)


    Bracelets:
    • Minimum Rolls
    • Median Rolls (The most common rolls, right at 50% of the max possible)
    • High Rolls (75% of the max possible rolls)
    • Max Rolls (Perfect max, realistically impossible to get)
    Sponsored content

    May 2022 Empty Re: May 2022

    Post by Sponsored content


      Current date/time is Fri Apr 19, 2024 6:23 am