Skip to content

Fix secret value comparisons on Mainline - #5

Merged
pedrozc90 merged 13 commits into
masterfrom
fix/attempt-to-compare-secret-value
Oct 23, 2026
Merged

pedrozc90 merged 13 commits into
masterfrom
fix/attempt-to-compare-secret-value

Conversation

@pedrozc90

Copy link
Copy Markdown
Member

Fixes "attempt to compare secret value" errors on Mainline.

  • Split aura handling per client family (core/Classic/auras.lua, core/Mainline/auras.lua).
  • Mainline: use Blizzard aura containers for player, target, focus and boss auras; private aura anchors for boss debuffs; drop the unused aura event path.
  • Fix cooldown state and secret timer text.
  • Dedupe cooldown buttons by active override spell.
  • Add /filger expN dev commands for in-game experiments.

- read cdInfo.isEnabled (cdInfo.enabled does not exist, so spells were always enabled)
- SPELL_UPDATE_COOLDOWN refreshes only the event's spell, the shown rows,
  and slot/item rows; nil spellID still refreshes everything
- secret cooldowns: text binding on button.Time with a seconds formatter
  and a color curve (red under 5s), replacing Blizzard countdown numbers
- docs: phase 0 experiment results (restriction state, aura access while
  tainted, never-secret coverage, cooldown event payload)
- move aura_proto and the aura frame definitions to core/[Family]/auras.lua
  (Classic and Mainline start as identical copies), exposed as ns.aura_proto
  and merged into Filger.config.frames
- shared layout numbers move to Filger.config.layout
- create the cooldown duration text binding on Mainline only: Classic
  bindings have no SetTextColorCurve (crashed on MoP)
…ase 2 results

- PLAYER_AURAS: HELPFUL|PLAYER + includeSpellIDs from the class spell list
- split Filger:StyleButton out of CreateButton so container buttons share the style
- secret-safe duration text options for container buttons
- name frames from their config key (FilgerPlayerAuras, ...) instead of unit + index
- /filger auras <unit> <buffs|debuffs> lists your auras with spell IDs; unknown command shows help
- data: add Transcendence, Elevated Stagger, Mudborne; blacklist Flurry Charge, August Blessing
- /filger exp4 <buffID>,<debuffID>: four CustomAuraContainerTemplate
  test containers for the spell-ID gate (include/exclude on player
  buffs/debuffs, focus debuffs)
- /filger exp5: aura counts per filter string on the player
- docs: Retail results for exp4 (ID filters refused on player debuffs,
  as the gate table says) and exp5 (`!`, BIG_DEFENSIVE, IMPORTANT work;
  NOT_CANCELABLE ignored); MoP exp5 (no `!` negation, BIG_DEFENSIVE
  and IMPORTANT ignored, NOT_CANCELABLE works)
- data: comment out Premonition of Piety and Vulcanic Blaze
BOSS_DEBUFFS is now enabled on Mainline. It shows HARMFUL auras with
isBossAura (limit 1) and adds two private aura anchors after the
container slot. Classic is unchanged.
Show only important debuffs, one group each: RAID_PLAYER_DISPELLABLE,
CROWD_CONTROL and isBossAura. Stagger dropped (contextually secret,
experiment 3).
All Mainline aura frames now use aura containers, so the copied
aura_proto (UNIT_AURA path) and its LibDispel/UnitIsUnit/C_Secrets
locals were dead code.
- /filger exp7 [itemID]: logs each player cast with its spellID and the
  start/duration of trinket slots 13/14 and the item, or secret
- /filger exp8: prints which GameTooltip aura methods exist
- remove GetAuraIndex and the SetUnitAura tooltip branch used on Era;
  SetUnit{Buff,Debuff}ByAuraInstanceID works on Retail, Era, TBC and
  MoP (checked in game), and Era no longer scans every aura on the
  unit for each aura it processes
- docs: exp7 results (Retail, dummy and boss: no secret spellIDs, item
  and slot cooldowns readable in combat, a new item cooldown isn't
  readable yet at UNIT_SPELLCAST_SUCCEEDED, a trinket cooldown can
  shorten while it runs); exp8 results; add experiment 10 (item
  cooldown refresh events)
- /filger exp10 [itemID]: logs slot 13/14 and item cooldown changes
  per event (SPELL_UPDATE_COOLDOWN, BAG_UPDATE_COOLDOWN,
  ACTIONBAR_UPDATE_COOLDOWN)
- exp7/exp10 cooldown output also prints enabled; skip the secret
  check where issecretvalue doesn't exist (Classic)
Avenging Wrath (31884) was listed three times for paladin, and in
Protection Sentinel (389539) overrides it, so one cast showed four
buttons. Remove the duplicate data entries, skip repeated spell IDs
when building the cooldown list, and show one button per active
spell (C_Spell.GetOverrideSpell, when available).
@pedrozc90 pedrozc90 self-assigned this Oct 23, 2026
@pedrozc90 pedrozc90 added bug Something isn't working enhancement New feature or request labels Oct 23, 2026
@pedrozc90
pedrozc90 merged commit 40ff564 into master Oct 23, 2026
1 check passed
@pedrozc90
pedrozc90 deleted the fix/attempt-to-compare-secret-value branch October 23, 2026 22:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant