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:
File diff suppressed because it is too large
Load Diff
@@ -5368,6 +5368,18 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
LockEntry* key = const_cast<LockEntry*>(sLockStore.LookupEntry(36)); // 3366 Opening, allows to open without proper key
|
LockEntry* key = const_cast<LockEntry*>(sLockStore.LookupEntry(36)); // 3366 Opening, allows to open without proper key
|
||||||
key->Type[2] = LOCK_KEY_NONE;
|
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
|
// Fractured: strip reagent requirements from every player-class spell at
|
||||||
// load time. Filtered by SpellFamilyName != 0 so that profession spells
|
// load time. Filtered by SpellFamilyName != 0 so that profession spells
|
||||||
// (cooking, alchemy, enchanting, blacksmithing, jewelcrafting, leatherworking,
|
// (cooking, alchemy, enchanting, blacksmithing, jewelcrafting, leatherworking,
|
||||||
|
|||||||
Reference in New Issue
Block a user