You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In GW2, hero points (and many other things) are implemented using a bitmask system. Each hero point you can unlock is one bit - off for locked, on for unlocked.
One of the features of the system is that it will compress itself - if you set every bit in the mask, we simply store a flag that says "yep, you got all the bits." If there are hundreds of bits, we basically eliminate all but one of them from storage. This is a super useful efficiency savings and we rely on it a lot.
The API endpoint for base GW2 works by coincidence or some kind of crazy luck. There are more bits in the mask than actual hero points you can unlock for base GW2. The result is that when you have 100% of the hero points, the bitmask is not compressed yet because there are unset bits still. This enables the API to look at every bit you have set and dump a list of hero points.
I bet you can see where this is going.
When we look at HoT hero points, the mask has exactly as many bits as obtainable hero points. This means that when you 100% HoT hero points, the mask gets collapsed/compressed to a single "everything is done" bit.
Here's the painful part: the API implementation doesn't have the data to understand how to go from "yep, you have all the bits!" to a comprehensive list of those bits, because that data is uniquely accessible to the game servers themselves.
We can and probably will add plumbing to make this work, but it's a decent-sized lift and in competition with a lot of other priorities at the moment.
Could you return some value to signify that all the bits are set? Like just a "1" for HoT and a "2" for PoF? It's already possible to find the hero challenge IDs associated with each expansion pack through the API:
If a character has all HoT heropoints unlocked, they are not showing up in /v2/characters/:id/heropoints.
Examples:
The disscussion about this on gitter starts here: https://gitter.im/arenanet/api-cdi?at=5ad0c4d0270d7d3708c3ba93
The text was updated successfully, but these errors were encountered: