diff --git a/data/sql/updates/pending_db_world/rev_1697102499836430200.sql b/data/sql/updates/pending_db_world/rev_1697102499836430200.sql new file mode 100644 index 000000000..c1c96e14b --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1697102499836430200.sql @@ -0,0 +1,7 @@ +-- 37565 - Flexibility | Item - Priest T4 Holy/Discipline 4P Bonus +DELETE FROM `spell_script_names` WHERE `spell_id`=37565; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (37565, 'spell_pri_t4_4p_bonus'); + +DELETE FROM `spell_proc_event` WHERE `entry`=37565; +INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `procPhase`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES +(37565, 0, 6, 4096, 0, 0, 16384, 0, 1, 0, 0, 0); diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index c5dc9dd0c..14deba616 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -48,6 +48,7 @@ enum PriestSpells SPELL_PRIEST_SHADOW_WORD_DEATH = 32409, SPELL_PRIEST_T9_HEALING_2P = 67201, SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL = 64085, + SPELL_PRIEST_T4_4P_FLEXIBILITY = 37565, SPELL_GENERIC_ARENA_DAMPENING = 74410, SPELL_GENERIC_BATTLEGROUND_DAMPENING = 74411, @@ -926,6 +927,28 @@ class spell_pri_mind_control : public AuraScript } }; +// 37565 - Flexibility | Item - Priest T4 Holy/Discipline 4P Bonus +class spell_pri_t4_4p_bonus : public AuraScript +{ + PrepareAuraScript(spell_pri_t4_4p_bonus); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_PRIEST_T4_4P_FLEXIBILITY }); + } + + void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/) + { + PreventDefaultAction(); + GetTarget()->RemoveAurasDueToSpell(SPELL_PRIEST_T4_4P_FLEXIBILITY); + } + + void Register() override + { + OnEffectProc += AuraEffectProcFn(spell_pri_t4_4p_bonus::HandleProc, EFFECT_ALL, SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); + } +}; + void AddSC_priest_spell_scripts() { RegisterSpellScript(spell_pri_shadowfiend_scaling); @@ -949,4 +972,5 @@ void AddSC_priest_spell_scripts() RegisterSpellScript(spell_pri_shadow_word_death); RegisterSpellScript(spell_pri_vampiric_touch); RegisterSpellScript(spell_pri_mind_control); + RegisterSpellScript(spell_pri_t4_4p_bonus); }