Jump to content

City of Data v2.0


Recommended Posts

Scripts are pure server-side. We don't have access to it in the client files to display it.

 

The fact that you see it on that page tells me a new attribmod is missing or out of placesomewhere in the data extract code. That's not what that power is supposed to be doing - its displaying the attribmod with the wrong name. 

 

I checked older files and that was there before, so it's not an error. Maybe once upon a time I didn't handle or display it. But in any case, we can't display that stuff on CoD using client files. That info is server-side only.

 

I could display the script info in the files, but then it has to go somewhere on the page, and since the vast majority of critters don't have it, I decided not to bother. It's there in the raw data, which is visible.

 

The one thing I can easily do is to translate the RPN/postfix notation into infix notation the way I do for other expressions.

Edited by UberGuy
Link to comment
Share on other sites

And it's live. You can get to it from the navigation on the main page.

 

image.png.1dab90963e3ec00a25e41e3ad1686315.png

 

Which reminds me, that list is getting long-ish and I want to make it accessible from every page, probably via a popup from an element on the header row.

Maybe I'll just add "Settings" in there and replace the "hamburger" settings menu icon with a nav icon of some kind.

 

Edited by UberGuy
  • Thanks 2
Link to comment
Share on other sites

I made a small update so that clicking the "Show Greater?" radio adds a column to the end of the table with the bonus values displayed, since otherwise what you're being shown can be a bit mysterious. This scale column can be used to sort the entries. If you have it set as the sort column and turn the "Show Greater?" filter off, the sort reverts to the set names.

Link to comment
Share on other sites

One thing: some bonuses like Knockback Protection are negative numbers, so the 'Include Greater?' toggle is working backwards from how you'd expect.

Actually, now that I look at it, it's literally only that and Knockup Protection that have the problem. Might just want to flip their numbers feeding into this, or hack an exception into the 'Include Greater?' code?

Pinnacle refugee. Powers and math guy.

Link to comment
Share on other sites

(Sorry for all the replies)

 

And yeah, in terms of the scripts, mostly I just figured that having the script/variable's name be parsed out and displayed, would at least make it easier to figure out what any given Execute Script or Set Script Variable is probably interacting with. It'll still suck to run into when trying to figure out how a power works, but at least having the name might still help with deciphering what's going on in some of the weirder iTrial powers. Things like "Wait, is that what actually makes the badge fail?"

Pinnacle refugee. Powers and math guy.

Link to comment
Share on other sites

35 minutes ago, BillyMailman said:

One thing: some bonuses like Knockback Protection are negative numbers, so the 'Include Greater?' toggle is working backwards from how you'd expect.

Actually, now that I look at it, it's literally only that and Knockup Protection that have the problem. Might just want to flip their numbers feeding into this, or hack an exception into the 'Include Greater?' code?

 

Yeah, I might flip the sign on those. Any mez protection would have this going on, but KB prot is all we get in that realm.

  • Thumbs Up 1
Link to comment
Share on other sites

  • City Council

I think your attributes names may be a little out of date, what's showing up as "Execute_Script" in the json dump is actually ScriptNotify.

 

kLuaExec was removed because it was unused and implemented badly. The replacement probably ended up in the same slot so you might not have noticed since the attribute numbers didn't shift around.

  • Thanks 1
Link to comment
Share on other sites

Yeah, I'm checking the Brickernaut explosion on the latest CoD data, with dev tools set to prevent any caching.

image.thumb.png.01b3ffe778592218f4fa09bd10637dc8.png

 

Checking the raw stuff shows 

"attribs": [ "Execute_Script" ]

and

          "params": {
            "type": "ScriptNotify",
            "channel": "Brickernaut",
            "notify_event": [
              "kNotifyEvent_Apply"
            ]

Nothing with Lua anywhere in the list, but that seems to indicate that Execute Script is the correct term. Not sure how much of that is Uber's parsing versus what's in the raw files, though.

Pinnacle refugee. Powers and math guy.

Link to comment
Share on other sites

  • City Council

kScriptNotify is the correct attrib name, I know because I wrote it. 😛

 

It doesn't execute anything, it sends a notification to a script that's already running and has registered to listen for the event. Notice how the param type is correctly shown as ScriptNotify. It should match the attrib name but it doesn't here.

 

I can only assume "Execute_Script" was put in as a friendly name to describe the old attribute that used to occupy the same index number. There's never been an attribute with that exact name.

 

-            case kSpecialAttrib_LuaExec:              return (friendly ? "(exec Lua)"
 : "SpecialAttrib_LuaExec");
+            case kSpecialAttrib_ScriptNotify:         return (friendly ? "(script notify)"          : "SpecialAttrib_ScriptNotify");

 

  • Thumbs Up 1
Link to comment
Share on other sites

45 minutes ago, Number Six said:

I can only assume "Execute_Script" was put in as a friendly name to describe the old attribute that used to occupy the same index number. There's never been an attribute with that exact name.

 

I am sure that's what happened. (Edit: Well, sort of. I updated the enum name in the Rust code, but forgot to change how it serializes to text.) I'll dig around tonight and update it. That'll require (extremely minor) changes to the Rust back-end and the easiest way to fix it everywhere will be to just rebuild the data. My upload tooling only uploads changed files, and there probably aren't that many powers using that attribmod.

 

1 hour ago, BillyMailman said:

Also, the sets' names appear to be linking to a set with the name of the bonus I've got selected. So, e.g., if I search for Defense (all) bonuses, and click the Gladiator's Armor match, I get this link:

 

https://cod.uberguy.net/html/boostset.html?set=defense%20(all)

 

This is fixed, as is the sign on the protection attribs. For now I flip the signs in the web code, but longer term I will flip them in the data extract so I don't have to loop through nested data structures in the web code to modify the values on load.

Edited by UberGuy
  • Thumbs Up 1
Link to comment
Share on other sites

One last bug for today, I swear. The Maximum HitPoints bit is showing everything as ten times as effective as reality (e.g. Unbreakable Guard shows +75%). Looks like it's because there's no modifier table for max HP, just melee_healself, melee_buff_maxhp, and their ranged counterparts, all of which are precisely 1/10 of the AT's base max HP.

Pinnacle refugee. Powers and math guy.

Link to comment
Share on other sites

7 minutes ago, BillyMailman said:

One last bug for today, I swear. The Maximum HitPoints bit is showing everything as ten times as effective as reality (e.g. Unbreakable Guard shows +75%). Looks like it's because there's no modifier table for max HP, just melee_healself, melee_buff_maxhp, and their ranged counterparts, all of which are precisely 1/10 of the AT's base max HP.

 

Ah, good catch. I looked right at those during testing and it didn't even register. And yes, the issue is that the numbers I am displaying are the raw scales for the powers' effects, usually but not always multiplied by 100% when displayed. That works for most set bonuses because they use the "Melee_Ones" scale table. But the MaxHP ones, as you note, use the "Melee_HealSelf" table, and the values in there are such that the raw scale needs to be 10x bigger than the resulting percentage increase over base.

This'll be fixed when I next upload fixed data files, which should be early evening and fix all of the issues discussed so far.

Link to comment
Share on other sites

OK, all the above fixes are in, including the SZE script expressions being displayed in infix notation and "Script Nofity" being updated. Protection mag is now a positive number and +maxHP is scaled correctly.

 

I also added a row hover highlight to the bonus list table.

  • Thanks 1
Link to comment
Share on other sites

I just pushed a semi-major update to the site's header layout and functionality.

 

The hamburger icon that used to only be for navigating to the settings page is now on the left and, when clicked, brings up a navigation menu for the entire site.

 

image.png.c4b678b03364a5534b5512eeb5972f15.png

 

The gold color on "Power Search" is the hover color, added to make it more clear which link you're hovering over. The nav entry for the current page will be in white text and won't be a link.

 

This icon currently requires you to click on it to get the menu to appear. I'd appreciate feedback on whether this is pleasant or annoying. I can make it appear simply on hover, like most of this site's popups.

 

The new "hamburger nav" has the advantage of being available on all pages, so you don't have to go back to the landing page to, say, get from a power page to an entity search.

 

I moved the button from the right side of the page to the left because some of the site's pages are quite wide, and the right-side elements are easily carried off-screen unless you use the horizontal scrollbar. I left the rest of them over there, since the things remaining there probably aren't accessed often from those pages.

 

On that note of things on the right side, it is now possible to make a source-specific data link to the AT attribute and modifier pages using the revision link shown on the right side of pages.

 

I have also added an info popup to the nav menu on the right side of the landing page hopefully making it clear that this new menu exists.

 

image.png.4ccdc9e8a4c588a89e8d0c2b0f96038d.png

 

This popup appears when you hover the mouse over any of the links over there, and is not interactive, so it won't interfere with using those links. After a while though I will probably remove these links. (I also added hover highlighting to these links, but I need to tune it a bit, as the color I am using is hard to see in light theme mode. Oops.) [Edit: Link hover colors tweaked.]

 

 

 

Edited by UberGuy
Link to comment
Share on other sites

Uploaded a tiny tweak this morning.

 

Most powersets of interest actually have long descriptions and (relatively) short names, so the display table on the "powersets" page is laid out to support that. Some powersets, though, have really long names and almost no description. Case in point, the "Set Bonus" powerset, where all the set bonus powers (including "globals") live.

 

For a long time, such long names were simply truncated by the name column. I finally figured out a reasonably effective way to give them hover behavior that shows the full name in-line. The bold line with the background highlight is the one under the mouse in the two screenshots below. You can see that the line is allowed to extend into the next column and the background "glow" masks the text underneath.

 

image.png.a5301f5a98e9622404a1b362eb5466d3.pngimage.png.08bf0afe2d29eba362245f17c07e616d.png

 

The CSS I used is a bit ugly, but seems to work fine on Chrome, Firefox and Safari.

 

(Oh yeah, I can test on Safari now because my new job only issues Macs to employees. :classic_tongue:)

 

Link to comment
Share on other sites

Another tiny update. Powerset pages now list powers in this sort order.

  • Level the power is available to characters / critters
  • Display name
  • Internal name

Historically, CoD has simply listed the powers in a powerset using the raw, native order in which they were listed in the game files. For regular AT powersets, this has usually been perfectly sensible, as those were fairly short lists of powers mostly pre-sorted by level. However, other "powersets", which are sometimes very large and often just big bags of loosely affiliated powers (like the "Set Bonus" powerset above), are often a wildly disordered mess. The new sorting should make finding powers in such grab-bag powersets a tiny bit easier without having to add column sorting to this page.

  • Thumbs Up 1
Link to comment
Share on other sites

  • 3 weeks later

This morning I fixed a little fubar that's been lurking since the Page 3 update to CoD went live. Powers that accept Threat Duration set enhancements were missing their accepted enhancement display entirely, because that widget was hitting an error trying to look up the right icon for Threat Duration sets. Thanks to @Replacement for pinging me on Discord to report the missing enhancements display on a power, which led me to fix the root  issue.

 

I'm going to add some fail-safe logic to this so a missing icon results in an "unknown" icon instead of borking the display entirely. This sort of mishap is common when boost or set names change (which has happened a few times now), because I have to manually update the boost and set icon lookup tables that turn names into icons. (Which I half did for Page 3. I changed the generic / SO name-to-icon mapping, but not the set version. :classic_tongue:)

 

Edited by UberGuy
  • Thumbs Up 3
Link to comment
Share on other sites

  • 3 weeks later
4 hours ago, BillyMailman said:

Found a minor bug. For a Longbow Warden (The energy blaster variant), the Nova power's page is failing to show the correct damage numbers against players. Looks like it's not looking up the Ranged_PvPDamage values for their AT. 

 

image.png.84b643d1e87a35360613852afb0c343e.png

It's because that table doesn't exist for "Boss Monster". PvPDamage tables only exist for Player ATs.


PPM Information Guide               Survivability Tool                  Interface DoT Procs Guide

Time Manipulation Guide             Bopper Builds                      +HP/+Regen Proc Cheat Sheet

Super Pack Drop Percentages       Recharge Guide                   Base Empowerment: Temp Powers


Bopper's Tools & Formulas                         Mids' Reborn                       

Link to comment
Share on other sites

Huh, I never realized that some tables just don't exist for NPC ATs. Weird. Makes sense, though; normally, if an NPC's attack does different damage to players vs. critters, they just use a different scale with the normal tables for ranged damage or whatever. I've just now realized that those wardens are literally using the actual Blaster attacks, which is definitely not normal.

 

I'm assuming the Longbow Warden variants that are all internally named "event_ballista_whatever" don't actually spawn anywhere, given that they all have this exact issue of using player powers that then use the PvP tables. Weird. The regular wardens (see, e.g., this entry) all use stuff from the v_genericheroes power category, which doesn't have this.

I'm left with a bunch of questions (what happens if the even_ballista warden enemies actually do attack a player? 0 damage? default to the 'default' table which means -1 damage? Mapserver crash? And what even are/were those enemies used in?), but I guess CoD's handling is probably technically correct.
 

Does lead to the result that if you just go to the CoD main page, click Blaster, Energy Blast, and any attack those Wardens have, then the list of ATs includes 'Boss Monster'.

image.png.9a74d5e15c38324064549b574a135009.png

Which is kinda funny. Also, this means that the 'Event_Ballista_Electric_Defender' NPC got the new Shocked! mechanic for free, which is neat.

Pinnacle refugee. Powers and math guy.

Link to comment
Share on other sites

1 hour ago, BillyMailman said:

I'm left with a bunch of questions (what happens if the even_ballista warden enemies actually do attack a player? 0 damage? default to the 'default' table which means -1 damage? Mapserver crash? And what even are/were those enemies used in?), but I guess CoD's handling is probably technically correct.

 

Yeah, that's actually the table those critters look up, it really doesn't exist for critters. I have no idea what happens if the game tries to access a table that doesn't exist like that. I would hope for some sanity check to prevent a mapserver crash, and consider 0 damage a likely "fail safe", but am totally guessing without some code diving.

Link to comment
Share on other sites

I have a much less complicated problem this time. Probably.

Sentinel /Ninjitsu Kuji-In Rin isn't showing as taking any enhancements at all. Confirmed in-game that it does. See attached screenshot.

 

image.thumb.png.6ad152663f48111d2abe146976e57479.png

 

Edit: Same problem with Scrapper and Stalker.

Edited by BillyMailman
  • Thanks 1

Pinnacle refugee. Powers and math guy.

Link to comment
Share on other sites

7 hours ago, BillyMailman said:

I have a much less complicated problem this time. Probably.

Sentinel /Ninjitsu Kuji-In Rin isn't showing as taking any enhancements at all. Confirmed in-game that it does. See attached screenshot.

 

image.thumb.png.6ad152663f48111d2abe146976e57479.png

 

Edit: Same problem with Scrapper and Stalker.

 

I helped! 

@Aurora Girl - Excelsior - BSOD
 Aurora Girl  (Blaster)- Energy/Atomic, Queen of Faceplants and former Mayor of Pinnacle Server  Straye  (Brute)- Savage/SR, Survivor of +4 ITF Nictus Crystals and Bobcat's Bane  Aurora Snow  (Corruptor) - Ice/Cold, AV Humiliator  Terraflux  (Controller) - Earth/Rad, Bass Exploder  Spynerette  (Arachnos Soldier) - Night Widow, Super Spy of Sneakiness and Stabbing  Snowberrie  (Tank) - Ice/Spines, Disco Ball and Lady of Winter

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...