Skip to content

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

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

Add opt-in Full DPS auto-count for Totem skills#9849
mcagnion wants to merge 4 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.

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 from 708ce9d to fad0bfb Compare August 17, 2026 17:47
mcagnion and others added 3 commits August 22, 2026 09:24
Add a Configuration option "Auto-count Totems in Full DPS?" that lets
Full DPS treat a Totem skill's count as the build's current
TotemsSummoned (falling back to ActiveTotemLimit) when the skill's
manual Count is 1.

Behavior:
- Default off: Full DPS uses the manual skill Count, unchanged.
- Option on, Count == 1, skill has skillFlags.totem, not Explosive
  Arrow, and exactly one Totem source is included in Full DPS: Full
  DPS uses output.TotemsSummoned or output.ActiveTotemLimit.
- Option on, Count > 1: manual Count wins.
- Explosive Arrow is excluded from scaling because its custom DPS
  function already accounts for active totems, but it still counts
  as a Full DPS totem source for the multi-source guard.
- Two or more Totem sources included in Full DPS (including Explosive
  Arrow): auto-count is suppressed and each skill keeps its manual
  Count, because ActiveTotemLimit is a global slot pool that cannot
  be allocated automatically across multiple sources.

The implementation keeps two predicates intentionally separate:
isIncludedFullDPSTotemSource (broader, used by the source counter)
matches every included Totem skill that occupies a global totem slot;
isFullDPSAutoTotemScalable (narrower, used by the per-skill scaling
gate) additionally excludes Explosive Arrow.

The option is gated by ifSkillFlag = "totem" so it only appears for
builds containing at least one Totem skill, making it useful for
comparison tools (Power Report, Compare tab, anoint sorting, trade
query) to surface "+1 to maximum number of Summoned Totems" sources
in single-totem-source Full DPS setups.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Keep the multi-source regression description clear while satisfying the tracked repository spellcheck.
Count only enabled Full DPS sources, resolve automatic Totem counts in one place, and cover the Explosive Arrow exclusion explicitly.
@mcagnion
mcagnion force-pushed the feature/full-dps-auto-max-totems branch from fad0bfb to c376c5d Compare August 22, 2026 07:29
Keep calcFullDPS independent of Totem rules while preserving the existing opt-in behavior behind a private pool-aware policy.

Addresses the architecture review for PR 9849.
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