Scripts/Spells: Implement mage talent "Pyrotechnics" (#31254)

This commit is contained in:
Aqua Deus
2025-09-19 14:49:21 +02:00
committed by GitHub
parent 2536890beb
commit e9d963760c
3 changed files with 33 additions and 1 deletions

View File

@@ -6,5 +6,5 @@ INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
DELETE FROM `spell_proc` WHERE `SpellId` IN (44448,48108);
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(44448,0x04,3,0x00C00013,0x00100000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x2,0x0,0x0,0,0,0,0), -- Pyroblast Clearcasting Driver
(44448,0x04,3,0x00C00013,0x00100000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x0,0x0,0x0,0,0,0,0), -- Pyroblast Clearcasting Driver
(48108,0x00,3,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x4,0x0,0x0,0x0,0x8,0x0,0,0,0,1); -- Hot Streak!

View File

@@ -0,0 +1,7 @@
DELETE FROM `spell_proc` WHERE `SpellId` IN (157642);
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(157642,0x0,3,0x00000001,0x00000000,0x00000000,0x00000000,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0,0,0,0); -- Pyrotechnics
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_mage_pyrotechnics';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(157642, 'spell_mage_pyrotechnics');

View File

@@ -94,6 +94,7 @@ enum MageSpells
SPELL_MAGE_PHOENIX_FLAMES = 257541,
SPELL_MAGE_PHOENIX_FLAMES_DAMAGE = 257542,
SPELL_MAGE_PYROBLAST = 11366,
SPELL_MAGE_PYROTECHNICS = 157644,
SPELL_MAGE_RADIANT_SPARK_PROC_BLOCKER = 376105,
SPELL_MAGE_RAY_OF_FROST_BONUS = 208141,
SPELL_MAGE_RAY_OF_FROST_FINGERS_OF_FROST = 269748,
@@ -1591,6 +1592,29 @@ class spell_mage_prismatic_barrier : public AuraScript
}
};
// 157642 - Pyrotechnics
class spell_mage_pyrotechnics : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_MAGE_PYROTECHNICS });
}
void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo const& procInfo)
{
if (procInfo.GetHitMask() & PROC_HIT_CRITICAL)
{
PreventDefaultAction();
procInfo.GetActor()->RemoveAurasDueToSpell(SPELL_MAGE_PYROTECHNICS);
}
}
void Register() override
{
OnEffectProc += AuraEffectProcFn(spell_mage_pyrotechnics::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
}
};
// 376103 - Radiant Spark
class spell_mage_radiant_spark : public AuraScript
{
@@ -2054,6 +2078,7 @@ void AddSC_mage_spell_scripts()
RegisterSpellScript(spell_mage_molten_fury);
RegisterSpellScript(spell_mage_polymorph_visual);
RegisterSpellScript(spell_mage_prismatic_barrier);
RegisterSpellScript(spell_mage_pyrotechnics);
RegisterSpellScript(spell_mage_radiant_spark);
RegisterSpellAndAuraScriptPair(spell_mage_ray_of_frost, spell_mage_ray_of_frost_aura);
RegisterSpellScript(spell_mage_ring_of_frost);