mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-28 06:25:55 +00:00
fix(Core/Spells): Restrict Beacon of Light proc to intended heals (#24921)
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
This commit is contained in:
10
data/sql/updates/pending_db_world/rev_1772207125325046.sql
Normal file
10
data/sql/updates/pending_db_world/rev_1772207125325046.sql
Normal file
@@ -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;
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user