mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-01 11:20:01 +00:00
With selfdebuff on, the displayed debuff list is PLAYER-filtered while GameTooltip:SetUnitAura indexes the unfiltered HARMFUL list, so both handlers map one to the other by matching name + sourceGUID. That mapping scanned slots 1..16 only. The unfiltered harmful list is not capped at 16. Once a unit's 16 debuff slots are full the server parks further debuffs in buff slots, and C_UnitAuras classifies by the aura's polarity flag rather than its slot range, so it reports those as harmful too -- verified live at 18 harmful on a 20-aura target. Past the sixteenth the lookup found nothing and fell through to the raw filtered index, opening the wrong tooltip or none. Both now enumerate however many harmful auras the unit actually has, via ScanAuraSlots, which also drops the per-index rescan the by-index accessor was doing. Each handler gets its own slot buffer: OnEnter can fire while a refresh is showing/hiding frames under the cursor, so sharing the refresh buffer could clobber a scan mid-walk. The nameplate module still collects at most 16 debuffs per plate. That one is a display cap matching its 16 configured icon frames, not an aura-count assumption, so it is left alone.