diff --git a/data/sql/updates/pending_db_world/rev_1772207125325046.sql b/data/sql/updates/pending_db_world/rev_1772207125325046.sql new file mode 100644 index 000000000..aeb239fc0 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1772207125325046.sql @@ -0,0 +1,10 @@ +-- Beacon of Light (53651): restrict proc to Holy Light, Flash of Light, Holy Shock, Lay on Hands +-- Previously had no SpellFamily filter, allowing unintended heals to transfer: +-- Glyph of Holy Light (54968), Seal of Light (20167), JoL (20267) +-- SpellFamilyName=10 (PALADIN) blocks Glyph of Holy Light (GENERIC family) +-- SpellFamilyMask 0xC0008000/0x00010000 allows only: +-- Holy Light (635) Flags[0]=0x80000000 +-- Flash of Light (19750) Flags[0]=0x40000000 +-- Lay on Hands (633) Flags[0]=0x00008000 +-- Holy Shock heal (25914) Flags[1]=0x00010000 +UPDATE `spell_proc` SET `SpellFamilyName` = 10, `SpellFamilyMask0` = 0xC0008000, `SpellFamilyMask1` = 0x00010000 WHERE `SpellId` = 53651; diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index a9f8ebfe1..44b210542 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -2088,18 +2088,12 @@ class spell_pal_light_s_beacon : public AuraScript SPELL_PALADIN_BEACON_OF_LIGHT_AURA, SPELL_PALADIN_BEACON_OF_LIGHT_FLASH, SPELL_PALADIN_BEACON_OF_LIGHT_HOLY, - SPELL_PALADIN_HOLY_LIGHT_R1, - SPELL_PALADIN_JUDGEMENT_OF_LIGHT_HEAL + SPELL_PALADIN_HOLY_LIGHT_R1 }); } bool CheckProc(ProcEventInfo& eventInfo) { - // Don't proc from Judgement of Light heals — JoL sets originalCaster to - // the paladin for combat log, but the heal is actually cast by the attacker. - if (eventInfo.GetSpellInfo() && eventInfo.GetSpellInfo()->Id == SPELL_PALADIN_JUDGEMENT_OF_LIGHT_HEAL) - return false; - // Don't proc if the heal target is the beacon target (no double heal) if (GetTarget()->HasAura(SPELL_PALADIN_BEACON_OF_LIGHT_AURA, eventInfo.GetActor()->GetGUID())) return false;