feat(character): gear-set tabs, compare set picker, stat deltas + set bonuses#168
Merged
Conversation
… bonuses
Character sheet:
- Gear-set pills (Current + one per saved in-game set) swap the paperdoll
and gear rating to that set; ?set= deep link via the safeSetParams mirror.
- Stats approximate the selected set: current + (set - worn) per stat with
signed delta chips; banner-only pools surface in a "Health & Power" group.
- New "Set Bonuses" section between Equipment and Consumables: worn sets
with piece counts, active tiers marked, inactive tiers dimmed. Pure
read of the existing tooltip prefetch cache; masonry column layout.
Compare: per-side "Current gear / <set>" dropdown on the Gear tab feeding
the diff + headline ilvl.
Backend:
- CensusClient.get_gear_sets reads the adventure_sets collection and reuses
_parse_equipment per set.
- census_store character_gear_sets table (keep-last-known, name+world).
- GET /api/character/{name}/gear-sets - store-first SWR mirroring aa.py,
with per-set ilvl and stat_deltas.
- stat_deltas.py: additive item-stat sums from items.db item_stats (items +
adorns) plus active item-set bonus tiers; percent-derived sheet values and
the stamina->health cascade deliberately excluded.
- items.db accessors: stats_for_ids, set_bonus_rows_for_ids.
Live-verified on Badbang (Wuoshi): DPS/Gear score/Tank sets resolve, ilvls
computed, deltas correct including the zero-delta currently-worn set.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Clears the 5 Pillow advisories flagged by the dep CVE scan. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Surfaces the in-game saved equipment sets (Census
adventure_setscollection) across the site, plus a worn Set Bonuses panel:Character sheet
?set=).current + (set − worn)per stat, with signed green/red delta chips. Health/Power (banner-only pools) surface in their own group when moved. Percent-derived values (armor/avoidance/mitigation) and the stamina→health cascade are deliberately excluded.Compare — per-side "Current gear / " dropdown on the Gear tab feeding the diff and headline ilvl.
Backend
CensusClient.get_gear_sets(reuses_parse_equipment),character_gear_setstable in census_store, andGET /api/character/{name}/gear-sets— store-first SWR mirroring the AA read path (hot cache → store + bg refresh → one live fetch; 503 when Census is down, 404 unknown char).stat_deltas.py: additive stat sums from items.dbitem_stats(items + adorns) plus active item-set bonus tiers grouped bysetbonus_namewithrequireditemsthresholds.stats_for_ids,set_bonus_rows_for_ids.Testing
🤖 Generated with Claude Code