gw2-api / issues

14 stars 0 forks source link

Attribute-enhancing Sigils (`UpgradeComponent`s) missing `$.details.infix_upgrade.attributes` values #76

Open shehi opened 5 months ago

shehi commented 5 months ago

Current Behavior

Sigils (UpgradeComponents) in general are missing $.details.infix_upgrade.attributes values, which is totally understandable, considering almost all of them have conditional effects.

However, the Attribute-enhancing versions of them with following Item-IDs (API Link):

72339,72010,73289,24618,24617,24616,44944,44943,44942,44950,44949,44948,94901,74326,75623,75963

should have their $.details.infix_upgrade.attributes data available, primarily because they are used to calculate character attributes. The passive effects of these Sigils are constant and not-conditional.

The list of these Sigils is on Wiki:

image

Disclaimer: This is a low priority request (at least for me).

P.S.: As a side note, I think $.details.infix_upgrade.buff field for these Sigils should be unset, as their effects are global, not-specific-skill related. Not to mention, those skill IDs are invalid (non-existent in API).

sliekens commented 4 months ago

I think this won't be possible because the bonuses are given as a percentage, not an absolute value.

I noticed that the infix upgrades refer to skills:

image

However the API won't give you the skill details: https://api.guildwars2.com/v2/skills/33913

Otherwise, I would have expected it to return a passive skill with an AttributeAdjust skill fact. Something like:

{
  "type": "AttributeAdjust",
  "percent": 10,
  "target": "BoonDuration"
}

I think because this is a sigil skill, it is not whitelisted.

shehi commented 4 months ago

You are making so many assumptions...

I think this won't be possible because the bonuses are given as a percentage, not an absolute value.

Irrelevant. Primary and Secondary attributes are non-percentiles, whereas Derived ones are percentiles. Boon Duration (not to be mixed with classic BoonDuration which is used for Concentration) is a derived attrib, a percentile.

I noticed that the infix upgrades refer to skills:

Stop! :) Please check documentation: https://wiki.guildwars2.com/wiki/API:2/items#Infix_upgrade_subobject infix_upgrade isn't related to skills, it is to itemstats. It can have optional, additional, skill-related info. In our case, that optional info is actually buggy, because these specific Sigils have skill-agnostic, global effects of changing Attributes.

I think because this is a sigil skill, it is not whitelisted.

Again, "skill" side of things is incorrect.

Wait, are you mixing "Sigil" items (which are UpgradeComponents) with the skills of type Sigil (which are toggleables)? If yes, then no, they aren't the same thing.

Event without it: Why? Because their name is "sigil"? :D Let's not "think" please, because that doesn't solve problems. The very first sentence of my OP above states the most important reason why Sigils at large don't have infix_upgrade set for them. The essence of this issue is to request an exception, for the reasons, again, listed in that OP up there.

Otherwise, I would have expected it to return a passive skill with an AttributeAdjust skill fact. Something like:

{
  "type": "AttributeAdjust",
  "percent": 10,
  "target": "BoonDuration"
}

And now, you made me think. Is there any AttributeAdjust rule that is applied to a Derived attribute, in whole API? I think not - I will check that. If AttributeAdjust can't be percentile-based, then it explains everything. Even if it could, I can't imagine what they would put in target field then: as mentioned above it can't be BoonDuration. BoonDuration is Concentration, the Primary, non-percentile attribute. Let me check this.

darthmaim commented 4 months ago

@sliekens is right with all of his assumptions as far as we know. Equipping a sigil item will give a an invisible buff, which will modify stats.

But this doesn't matter for this issue, because the issue is about adding the attribute adjustments to the infix_upgrade.