Scripts/Spells: Implement priest talent Burning Vehemence (#31456)

This commit is contained in:
Cristian Vintila
2026-01-01 20:10:12 +02:00
committed by GitHub
parent d905ac7d82
commit 48992393c8
4 changed files with 39 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pri_burning_vehemence';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(372307,'spell_pri_burning_vehemence');
DELETE FROM `spell_proc` WHERE `SpellId` IN (372307);
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(372307,0x00,6,0x00100000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x0,0x0,0x0,0,0,0,0); -- Burning Vehemence

View File

@@ -5470,6 +5470,12 @@ void SpellMgr::LoadSpellInfoTargetCaps()
spellInfo->_LoadSqrtTargetLimit(5, 0, 390163, EFFECT_0, {}, {});
});
// Burning Vehemence
ApplySpellFix({ 400370 }, [](SpellInfo* spellInfo)
{
spellInfo->_LoadSqrtTargetLimit(5, 0, {}, EFFECT_1, {}, {});
});
TC_LOG_INFO("server.loading", ">> Loaded SpellInfo target caps in {} ms", GetMSTimeDiffToNow(oldMSTime));
}

View File

@@ -62,6 +62,7 @@ enum PriestSpells
SPELL_PRIEST_BLESSED_LIGHT = 196813,
SPELL_PRIEST_BODY_AND_SOUL = 64129,
SPELL_PRIEST_BODY_AND_SOUL_SPEED = 65081,
SPELL_PRIEST_BURNING_VEHEMENCE_DAMAGE = 400370,
SPELL_PRIEST_CENSURE = 200199,
SPELL_PRIEST_CIRCLE_OF_HEALING = 204883,
SPELL_PRIEST_CRYSTALLINE_REFLECTION = 373457,
@@ -789,6 +790,30 @@ class spell_pri_blaze_of_light : public AuraScript
}
};
// 372307 - Burning Vehemence
class spell_pri_burning_vehemence : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_PRIEST_BURNING_VEHEMENCE_DAMAGE });
}
void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo const& eventInfo) const
{
GetTarget()->CastSpell(eventInfo.GetActionTarget()->GetPosition(), SPELL_PRIEST_BURNING_VEHEMENCE_DAMAGE, CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.TriggeringSpell = eventInfo.GetProcSpell(),
.TriggeringAura = aurEff,
.SpellValueOverrides = { { SPELLVALUE_BASE_POINT0, int32(CalculatePct(eventInfo.GetDamageInfo()->GetDamage(), aurEff->GetAmount())) } }
});
}
void Register() override
{
OnEffectProc += AuraEffectProcFn(spell_pri_burning_vehemence::HandleEffectProc, EFFECT_2, SPELL_AURA_DUMMY);
}
};
// 204883 - Circle of Healing
class spell_pri_circle_of_healing : public SpellScript
{
@@ -4300,6 +4325,7 @@ void AddSC_priest_spell_scripts()
RegisterSpellScript(spell_pri_benediction);
RegisterSpellScript(spell_pri_binding_heals);
RegisterSpellScript(spell_pri_blaze_of_light);
RegisterSpellScript(spell_pri_burning_vehemence);
RegisterSpellScript(spell_pri_circle_of_healing);
RegisterSpellScript(spell_pri_crystalline_reflection);
RegisterSpellScript(spell_pri_dark_indulgence);