• Knack117 released this 2026-05-11 22:20:30 +00:00 | 10 commits to main since this release

    Summary

    Paragon weapon-class wildcard: cross-class proc talents (most visibly Maelstrom Weapon) now fire from any weapon a Paragon has equipped, not just the talent's stock subclass mask.

    Server commit: 7c57abd
    Default config flag still: Paragon.WildcardFamilyMatching = 1 (.reload config to toggle).

    No client changes this release — patch-enUS-4/5/6.MPQ and Wow.exe are byte-identical to the v0.7.16 attachments and are re-attached for one-click install.


    What changed

    For Paragon casters, the EquippedItemSubClassMask gate is now bypassed in three independent places that all sit on the proc path:

    1. Player::HasItemFitToSpellRequirements — talent-attach check at item-equip / login. Without this, a passive talent aura like Maelstrom Weapon (51528-51532) never even applies for a Paragon wielding a non-stock weapon.
    2. Player::CheckAttackFitToAuraRequirement — per-swing attackType↔aura match used by the proc engine.
    3. Aura::IsProcTriggeredOnEvent (SpellAuras.cpp:2254) — per-event proc evaluator that calls Item::IsFitToSpellRequirements again, independently of the previous two. This was the proc-killing gate before this commit: talent attached, swing matched, but this evaluator returned 0 charges for any weapon outside the stock subclass mask, so no stack was ever applied.

    All three bypasses are gated on:

    • IsParagonWildcardCaller(this) — player class 12 + the existing config flag.
    • spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON. ITEM_CLASS_ARMOR (shield) gates are deliberately untouched — Shield Specialization / Shield Block / etc. still need an actual shield equipped.

    Each bypass also requires some weapon to be in the relevant slot (MAINHAND / OFFHAND / RANGED). Unarmed Paragons do not auto-activate every weapon-gated talent in the game.

    Net effect

    For a Paragon character with Maelstrom Weapon talented, the proc fires from every melee weapon — 1H sword, polearm, spear, fist, dagger, staff, 2H weapons, axes, maces, etc. Stock Shamans (and every other non-Paragon class) are byte-identical to before.

    Other weapon-class proc talents inherit the same wildcard for free (Sword Specialization, Mace Specialization, Two-Handed Weapon Specialization, etc.) — a Paragon will see those proc / be active off whatever weapon they wield, which is consistent with the wildcard identity of the class.

    Caveat — ranged-weapon auto-attacks

    The talent's stock ProcFlags (0xC00014) only fire on melee swings + melee abilities (DONE_MELEE_AUTO_ATTACK | DONE_SPELL_MELEE_DMG_CLASS | DONE_OFFHAND_ATTACK | DONE_MAINHAND_ATTACK). Ranged auto-attacks (bow / gun / crossbow / wand) fire PROC_FLAG_DONE_RANGED_AUTO_ATTACK (0x40), which the proc engine never matches against this talent, so the new weapon-subclass bypass is moot for those weapons specifically. Adding ranged-auto-attack support would require a Paragon-only ProcFlags expansion at the proc engine layer — deferred until requested.

    Deploy

    1. Pull main (commit 7c57abd).
    2. docker compose build ac-worldserver
    3. docker compose restart ac-worldserver

    No DB migration this round.

    Downloads