Skip to content

Add opt-in Full DPS auto-count for Totem skills - #9849

Open
mcagnion wants to merge 6 commits into
PathOfBuildingCommunity:devfrom
mcagnion:feature/full-dps-auto-max-totems
Open

mcagnion wants to merge 6 commits into
PathOfBuildingCommunity:devfrom
mcagnion:feature/full-dps-auto-max-totems

Conversation

@mcagnion

@mcagnion mcagnion commented May 12, 2026 •

Copy link
Copy Markdown
Contributor

Description of the problem being solved:

Power Report, Compare, anoint sorting, trade scoring, and similar comparison tools use Full DPS to evaluate a change. For Totem skills, a source of +1 to maximum number of Summoned Totems currently has no effect on those comparisons unless the user also updates the socket group's manual Count.

This PR adds an opt-in Configuration option, Auto-count Totems in Full DPS?. For a single enabled Totem source included in Full DPS at Count 1, it uses the current TotemsSummoned value when available, then ActiveTotemLimit. Manual Count values greater than 1 always win, and the option is off by default.

Because ActiveTotemLimit is a shared slot pool, multiple Totem sources fall back to their manual Counts rather than applying the same global limit to each. Explosive Arrow Ballista still occupies a source slot but is not scaled again because its custom DPS calculation already models active totems. Disabled Vaal variants do not block auto-counting for the remaining active source.

The Full DPS aggregator resolves this through a generic, pool-aware Count policy boundary. calcFullDPS only builds and resolves generic Count context; Totem detection, shared-pool participation, opt-in handling, Count priority, and the Explosive Arrow exception stay inside the private Totem policy. No second skill family or per-skill Count persistence mode is introduced in this PR.

Steps taken to verify a working solution:

  • Added focused coverage for default-off behavior, single-source auto-counting, manual Count precedence, the current-count override, disabled Vaal variants, multi-source suppression, and Explosive Arrow handling.
  • Manually verified option visibility, the Watchtowers ranking change, manual Count precedence, and that non-Totem Full DPS entries are unaffected.

Build used for the screenshots below:

Example totem build (Hierophant): https://pobb.in/-3AWBE9QE4FU. Any build with a single Totem skill marked Include in Full DPS exhibits the same behavior; builds with multiple included Totem sources keep their manual Counts.

Anoint Item dropdown sorted by Full DPS, option OFF (baseline — "Watchtowers" not in the top 6):

full-dps-option-off

Same Anoint Item dropdown, option ON ("Watchtowers" jumps to #1):

full-dps-option-on

Configuration tab — new option in the Totem section:

auto-count-totems-option

@mcagnion
mcagnion marked this pull request as ready for review May 12, 2026 21:41
@mcagnion
mcagnion force-pushed the feature/full-dps-auto-max-totems branch 2 times, most recently from fad0bfb to c376c5d Compare August 22, 2026 07:29
@mcagnion
mcagnion force-pushed the feature/full-dps-auto-max-totems branch from f270bc5 to 6883e2d Compare August 29, 2026 06:23
@mcagnion

Copy link
Copy Markdown
Contributor Author

Updated the implementation to keep calcFullDPS family-neutral. Full DPS Count selection now goes through a generic, pool-aware context and resolver, while all Totem-specific rules remain isolated in a private policy. No additional skill family or Count persistence/UI change was added.

mcagnion and others added 6 commits September 27, 2026 12:57
When enabled, use TotemsSummoned or ActiveTotemLimit when the manual Count is 1. Manual counts still win, and multiple Totem sources keep their existing counts.

Explosive Arrow remains excluded from automatic scaling because its DPS calculation already accounts for active Totems.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Use project terminology for the case where two Totem skills share one global limit.
Count only enabled Full DPS sources, resolve automatic Totem counts in one place, and cover the Explosive Arrow exclusion explicitly.
Keep calcFullDPS generic by passing resolved counts through its Count context. Totem-specific pool rules stay in the caller.
The private table is an identity key for one shared Totem slot pool; its contents are intentionally unused.
The existing Full DPS test already verifies that the option starts disabled.
@mcagnion
mcagnion force-pushed the feature/full-dps-auto-max-totems branch from 6883e2d to 11fdd5b Compare September 27, 2026 11:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant