diff --git a/sql/updates/world/master/2026_03_06_04_world.sql b/sql/updates/world/master/2026_03_06_04_world.sql new file mode 100644 index 0000000000..52dcb6dc07 --- /dev/null +++ b/sql/updates/world/master/2026_03_06_04_world.sql @@ -0,0 +1,7 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_searing_light'); +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(1280131, 'spell_pri_searing_light'); + +DELETE FROM `spell_proc` WHERE `SpellId` IN (1280131); +INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES +(1280131,0x00,6,0x00000000,0x00008000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x0,0x0,0x0,0,0,0,0); -- Searing Light diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 6d56de6bf2..db425f6c5a 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -221,7 +221,9 @@ enum PriestSpells SPELL_PRIEST_SAY_YOUR_PRAYERS = 391186, SPELL_PRIEST_SCHISM = 424509, SPELL_PRIEST_SCHISM_AURA = 214621, - SPELL_PRIEST_SEARING_LIGHT = 196811, + SPELL_PRIEST_SEARING_LIGHT = 1280131, + SPELL_PRIEST_SEARING_LIGHT_DAMAGE = 1280134, + SPELL_PRIEST_SEARING_LIGHT_DIVINE_IMAGE = 196811, SPELL_PRIEST_SHADOW_MEND_DAMAGE = 186439, SPELL_PRIEST_SHADOW_WORD_DEATH = 32379, SPELL_PRIEST_SHADOW_WORD_DEATH_DAMAGE = 32409, @@ -1185,7 +1187,7 @@ Optional GetSpellToCast(uint32 spellId) case SPELL_PRIEST_HOLY_WORD_CHASTISE: case SPELL_PRIEST_MINDGAMES: case SPELL_PRIEST_MINDGAMES_VENTHYR: - return SPELL_PRIEST_SEARING_LIGHT; + return SPELL_PRIEST_SEARING_LIGHT_DIVINE_IMAGE; case SPELL_PRIEST_HOLY_NOVA: return SPELL_PRIEST_LIGHT_ERUPTION; default: @@ -4210,6 +4212,31 @@ class spell_pri_sanctuary_absorb : public AuraScript } }; +// 1280131 - Searing Light +class spell_pri_searing_light : public AuraScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellEffect({ { SPELL_PRIEST_SEARING_LIGHT_DAMAGE, EFFECT_0 } }); + } + + void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo const& eventInfo) const + { + int32 dotDmg = CalculatePct(eventInfo.GetDamageInfo()->GetDamage(), aurEff->GetAmount()); + dotDmg /= sSpellMgr->AssertSpellInfo(SPELL_PRIEST_SEARING_LIGHT_DAMAGE, GetCastDifficulty())->GetEffect(EFFECT_0).GetPeriodicTickCount(); + + eventInfo.GetActor()->CastSpell(eventInfo.GetActionTarget(), SPELL_PRIEST_SEARING_LIGHT_DAMAGE, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS, + .SpellValueOverrides = { { SPELLVALUE_BASE_POINT0, dotDmg } } + }); + } + + void Register() override + { + OnEffectProc += AuraEffectProcFn(spell_pri_searing_light::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); + } +}; + // Smite - 585 class spell_pri_sanctuary_trigger : public SpellScript { @@ -5487,6 +5514,7 @@ void AddSC_priest_spell_scripts() RegisterSpellScript(spell_pri_rhapsody); RegisterSpellScript(spell_pri_rhapsody_proc); RegisterSpellScript(spell_pri_schism); + RegisterSpellScript(spell_pri_searing_light); RegisterSpellScript(spell_pri_sins_of_the_many); RegisterSpellScript(spell_pri_spirit_of_redemption); RegisterSpellScript(spell_pri_shadow_covenant);