File Details
r276-beta
- B
- Apr 23, 2026
- 2.16 MB
- 10.6K
- 12.0.5+6
- Classic + 4
File Name
Cell-r276-beta.zip
Supported Versions
- 12.0.5
- 5.5.4
- 5.5.3
- 4.4.2
- 3.80.1
- 2.5.5
- 1.15.8
WoW 12.0.5 Compatibility
Interface bumped to 120005. Without these fixes Cell showed static white health bars, missing health/power text, and taint errors in PvP/M+. (thanks @matthewjenner)
API Updates
- Added required
isContainer = falsetoC_UnitAuras.AddPrivateAuraAnchorargs (new in 12.0.5).
Secret-Value Guards
12.0.5 decoupled Secret Value restrictions from the aura-restriction context flag, so F.IsAuraRestricted() context-guards miss real secrets. Replaced with per-value F.IsSecretValue / issecretvalue checks at the use site:
Indicators/Custom.lua:auraInfo.sourceUnitcomparison for the cast-by-me filter.Indicators/TargetedSpells.lua:UnitCastingInfo/UnitChannelInforeturns (spellId, timestamps,texture).RaidFrames/UnitButton.lua:UnitGUIDcomparisons inUnitButton_OnTick;powerMaxinUnitButton_UpdatePowerStates.Utilities/BuffTracker.lua: LGI cache lookup by GUID.Utilities/DeathReport.lua:reportedDead[guid]table key.
Text Indicators on Secret Values
UnitHealPredictionCalculator returns secret-flagged numbers even in normal gameplay. Lua arithmetic and comparisons throw, but C-implemented formatters (string.format, AbbreviateNumbers, BreakUpLargeNumbers) pass secrets through to non-secret strings. Percentages come from calculator curve methods.
- Health Text: new
midnightFormattertable backed by calculator methods, plusGetMidnightCurvesfactory (two reusableC_CurveUtilcurves for positive and negative percentage scales).HealthText_SetFormatstashes format names for lookup;HealthText_SetValuetakes a newcalcarg and routes each slot when values are secret. Caller inRaidFrames/UnitButton.luapasses the unit'shealthCalculator. - Power Text:
SetPower_PercentagecallsUnitPowerPercent(unit, nil, true, CurveConstants.ScaleTo100)(wrapped inpcall) to get a plain 0-100 value when Cell's context would otherwise return a secretUnitPower. Caller atUnitButton_UpdatePowerTextpassesself.states.displayedUnitso the formatter has a unit to query.SetPower_Numberusesstring.format("%d", current),SetPower_Number_ShortusesAbbreviateNumbers. Non-secret paths moved toSafeTextWidthbecauseGetStringWidthstays tainted after the FontString held secret text. - Power bar:
UnitButton_UpdatePowerMaxandUnitButton_UpdatePowernow use nativeSetMinMaxValuesandSetValueon Midnight unconditionally, bypassingSmoothStatusBarMixin. The mixin caches min/max and its per-frameClamp()throws every tick if either value was ever secret, even after the current value is plain. Matches what the health bar already does on Midnight. SafeTextWidthhelper: font-proportional fallback whenGetStringWidthreturns a secret-flagged width. Used by both text indicators' secret paths and theirSetFontpaths.- QuickAssist: no change;
StatusBar:SetValue/:SetMinMaxValuesaccept secrets natively.
Supported formats on secret values
Health Text: health, health_short, health_percent, deficit, deficit_short, deficit_percent, shields, shields_short, healabsorbs, healabsorbs_short. effective_* degrades to matching health_* (no GetEffectiveHealth method). *_percent on shields/healabsorbs degrades to short absolute (no matching curve method).
Power Text: number, number-short, percentage. Percent uses UnitPowerPercent with CurveConstants.ScaleTo100 and renders correctly even when raw UnitPower is secret. Falls back to AbbreviateNumbers only if UnitPowerPercent is unavailable or the pcall fails.
Limitations
hideIfEmptyOrFullis a no-op on secret values (needs comparisons).effective-format on health diverges from true effective only when shields or heal absorbs are active.
Aura Classification
12.0.5 un-secreted isHelpful, isHarmful, isRaid, isNameplateOnly, isFromPlayerOrPlayerPet. Removed the issecretvalue(auraInfo.isHelpful) early-return in Indicators/Custom.lua and the classification-secret fallback in RaidFrames/UnitButton.lua's incremental aura fast path.
Add the Raiddebuffs for Lei Shen
Thanks @EkklesN for the contribution!

