Scripts/Spells: Implement priest talent Empyreal Blaze (#31472)

This commit is contained in:
Cristian Vintila
2026-01-09 18:14:14 +02:00
committed by GitHub
parent 6b4ff53187
commit fc3bc4cef2
2 changed files with 73 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_empyreal_blaze', 'spell_pri_empyreal_blaze_extend');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(372616, 'spell_pri_empyreal_blaze'),
(14914, 'spell_pri_empyreal_blaze_extend');
DELETE FROM `spell_proc` WHERE `SpellId` IN (372616,372617);
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(372616,0x00,6,0x00000000,0x00000000,0x00000020,0x00000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0,0,0), -- Empyreal Blaze
(372617,0x00,6,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0,0,0,0); -- Empyreal Blaze

View File

@@ -101,6 +101,8 @@ enum PriestSpells
SPELL_PRIEST_DIVINITY_AURA = 1216314,
SPELL_PRIEST_EMPOWERED_RENEW = 391339,
SPELL_PRIEST_EMPOWERED_RENEW_HEAL = 391359,
SPELL_PRIEST_EMPYREAL_BLAZE = 372616,
SPELL_PRIEST_EMPYREAL_BLAZE_AURA = 372617,
SPELL_PRIEST_ENTROPIC_RIFT = 447444,
SPELL_PRIEST_ENTROPIC_RIFT_AREATRIGGER = 447445,
SPELL_PRIEST_ENTROPIC_RIFT_AURA = 450193,
@@ -1520,6 +1522,66 @@ class spell_pri_empowered_renew_heal : public AuraScript
}
};
// 372616 - Empyreal Blaze
class spell_pri_empyreal_blaze : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_PRIEST_HOLY_WORD_CHASTISE, SPELL_PRIEST_EMPYREAL_BLAZE_AURA });
}
static void HandleProc(AuraScript const&, AuraEffect const* aurEff, ProcEventInfo const& eventInfo)
{
Unit* caster = eventInfo.GetActor();
if (!caster)
return;
caster->CastSpell(caster, SPELL_PRIEST_EMPYREAL_BLAZE_AURA, CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.TriggeringSpell = eventInfo.GetProcSpell(),
.TriggeringAura = aurEff,
.SpellValueOverrides = { { SPELLVALUE_AURA_STACK, aurEff->GetAmount() } }
});
}
void Register() override
{
OnEffectProc += AuraEffectProcFn(spell_pri_empyreal_blaze::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
// Triggered by 14914 - Holy Fire
class spell_pri_empyreal_blaze_extend : public SpellScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_PRIEST_EMPYREAL_BLAZE });
}
bool Load() override
{
return GetCaster()->HasAura(SPELL_PRIEST_EMPYREAL_BLAZE);
}
void HandleHit() const
{
Unit* target = GetHitUnit();
if (!target)
return;
Aura* holyFireAura = target->GetAura(GetSpellInfo()->Id, GetCaster()->GetGUID());
if (!holyFireAura)
return;
GetSpell()->SetSpellValue({ SPELLVALUE_DURATION, holyFireAura->GetDuration() + Aura::CalcMaxDuration(GetSpellInfo(), GetCaster(), nullptr) + GetSpellValue()->Duration.value_or(0) });
}
void Register() override
{
OnHit += SpellHitFn(spell_pri_empyreal_blaze_extend::HandleHit);
}
};
// 447444 - Entropic Rift
// Triggered by 8092 - Mind Blast (Discipline) and 263165 - Void Torrent (Shadow)
class spell_pri_entropic_rift : public SpellScript
@@ -4683,6 +4745,8 @@ void AddSC_priest_spell_scripts()
RegisterSpellScript(spell_pri_divine_procession);
RegisterSpellScript(spell_pri_empowered_renew);
RegisterSpellScript(spell_pri_empowered_renew_heal);
RegisterSpellScript(spell_pri_empyreal_blaze);
RegisterSpellScript(spell_pri_empyreal_blaze_extend);
RegisterSpellScript(spell_pri_entropic_rift);
RegisterSpellScript(spell_pri_entropic_rift_aura);
RegisterSpellScript(spell_pri_entropic_rift_periodic);