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
+14 -2
View File
@@ -1011,8 +1011,8 @@ public:
void AddExtraAttacks(uint32 count);
// Combot points system
[[nodiscard]] uint8 GetComboPoints(Unit const* who = nullptr) const { return (who && m_comboTarget != who) ? 0 : m_comboPoints; }
[[nodiscard]] uint8 GetComboPoints(ObjectGuid const& guid) const { return (m_comboTarget && m_comboTarget->GetGUID() == guid) ? m_comboPoints : 0; }
[[nodiscard]] uint8 GetComboPoints(Unit const* who = nullptr) const;
[[nodiscard]] uint8 GetComboPoints(ObjectGuid const& guid) const;
[[nodiscard]] Unit* GetComboTarget() const { return m_comboTarget; }
[[nodiscard]] ObjectGuid const GetComboTargetGUID() const { return m_comboTarget ? m_comboTarget->GetGUID() : ObjectGuid::Empty; }
@@ -1020,6 +1020,18 @@ public:
void AddComboPoints(int8 count) { AddComboPoints(nullptr, count); }
void ClearComboPoints();
// mod-paragon: re-anchor an existing combo-point pool to a different
// target without changing the count, then push SMSG_UPDATE_COMBO_POINTS.
// Used by Player::SetSelection so sticky combo points keep displaying on
// the new target frame after a target swap.
void RebindComboTarget(Unit* newTarget);
// mod-paragon: sticky-CP holder cleanup when the *target* dies / despawns.
// Detaches m_comboTarget (and removes self from the dying unit's holder
// set) but intentionally leaves m_comboPoints intact, so the next
// RebindComboTarget on a fresh target still has a pool to anchor.
void DetachComboTarget();
void AddComboPointHolder(Unit* unit) { m_ComboPointHolders.insert(unit); }
void RemoveComboPointHolder(Unit* unit) { m_ComboPointHolders.erase(unit); }
void ClearComboPointHolders();