Fractured: Paragon core hooks, mod-paragon, mod-ale, Docker build cap

- Track mod-paragon and mod-ale (un-ignore modules in .gitignore).
- Ship docker-compose.override.yml with CMAKE_EXTRA_OPTIONS for LuaJIT (mod-ale).
- Dockerfile: CBUILD_PARALLEL default to limit OOM under Docker/WSL2.
- Core: CLASS_PARAGON sticky combo points (DetachComboTarget), selection rebind,
  Spell::CheckPower rune path for multi-resource Paragon.
- spell_dk_death_rune: IsClass(CLASS_DEATH_KNIGHT, CLASS_CONTEXT_ABILITY) for
  Blood of the North / Reaping / DRM on Paragon.
- Remove temporary Paragon CheckPower logging.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Docker Build
2026-05-08 00:03:09 -04:00
parent f9f2bc5e0c
commit 8e4c8f57e4
163 changed files with 54817 additions and 10 deletions
@@ -11501,6 +11501,25 @@ void Player::SetSelection(ObjectGuid guid)
if (NeedSendSpectatorData())
ArenaSpectator::SendCommand_GUID(FindMap(), GetGUID(), "TRG", guid);
// mod-paragon: sticky combo points must follow the player when targets
// change. The client filters SMSG_UPDATE_COMBO_POINTS by the embedded
// target GUID — without this re-bind the dots vanish off the new target
// frame on each swap even though Unit::m_comboPoints is intact. Mirrors
// the rebind path inside Unit::AddComboPoints. Applies to every class
// that participates in the sticky-CP pool (Paragon + Rogue + Druid),
// gated behind the same `Paragon.StickyComboPoints` config switch.
if (sConfigMgr->GetOption<bool>("Paragon.StickyComboPoints", true)
&& GetComboPoints() > 0
&& !guid.IsEmpty())
{
uint8 const cls = getClass();
if (cls == CLASS_PARAGON || cls == CLASS_ROGUE || cls == CLASS_DRUID)
{
if (Unit* newTarget = ObjectAccessor::GetUnit(*this, guid))
RebindComboTarget(newTarget);
}
}
}
void Player::SetGroup(Group* group, int8 subgroup)