Paragon panel: keep cascade passives, strip free actives; DK passive DBC fix
- PanelLearnSpellChain: record every non-chain passive as panel_spell_child; only revoke non-passive (Blood Presence, Death Coil, Death Grip, etc.). - RevokeUnwantedCascadeSpellsForPlayer: skip passive rewards on login sweep. - RevokeBlockedSpellsForPlayer: migrate legacy passive revoke rows to children; walk (parent, revoked) pairs from DB. - PruneSkillLineCascadeChildrenFromDb: only strip actives wrongly stored as children; never strip passives. - SpellInfoCorrections: set SPELL_ATTR0_PASSIVE on Forceful Deflection (49410) and Runic Focus (61455) so IsPassive() matches spellbook behavior. - PanelUnlearnTalentPurchase: mirror resetTalents (_removeTalentAurasAndSpells, _removeTalent, SendTalentsInfoData) so Beast Mastery loss triggers pet reset. - OnPlayerLogin: run legacy passive attach before scoped cascade sweep. - Add .paragon recalibrate GM command (RBAC modify): full panel reset + AE/TE reconciliation for selected player or self. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -5368,6 +5368,18 @@ void SpellMgr::LoadSpellInfoCorrections()
|
||||
LockEntry* key = const_cast<LockEntry*>(sLockStore.LookupEntry(36)); // 3366 Opening, allows to open without proper key
|
||||
key->Type[2] = LOCK_KEY_NONE;
|
||||
|
||||
// Fractured / Paragon: DK weapon-line "passives" Forceful Deflection and
|
||||
// Runic Focus ship in 3.3.5a Spell.dbc without SPELL_ATTR0_PASSIVE set.
|
||||
// SpellInfo::IsPassive() is therefore false, and mod-paragon's panel-learn
|
||||
// diff treats them as castable actives and revokes them — while true
|
||||
// actives (Blood Presence, Death Coil, Death Grip, ...) must stay
|
||||
// stripped. Mark these two passive in-memory so the panel policy matches
|
||||
// the spellbook UX for every class (stock DK benefits too).
|
||||
ApplySpellFix({ 49410, 61455 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Attributes |= SPELL_ATTR0_PASSIVE;
|
||||
});
|
||||
|
||||
// Fractured: strip reagent requirements from every player-class spell at
|
||||
// load time. Filtered by SpellFamilyName != 0 so that profession spells
|
||||
// (cooking, alchemy, enchanting, blacksmithing, jewelcrafting, leatherworking,
|
||||
|
||||
Reference in New Issue
Block a user