@@ -146,6 +146,9 @@ enum PriestSpells
146146 SPELL_PRIEST_HOLY_10_1_CLASS_SET_4P = 405556 ,
147147 SPELL_PRIEST_HOLY_10_1_CLASS_SET_4P_EFFECT = 409479 ,
148148 SPELL_PRIEST_INDEMNITY = 373049 ,
149+ SPELL_PRIEST_INESCAPABLE_TORMENT = 373427 ,
150+ SPELL_PRIEST_INESCAPABLE_TORMENT_TELEPORT = 373441 ,
151+ SPELL_PRIEST_INESCAPABLE_TORMENT_DAMAGE = 373442 ,
149152 SPELL_PRIEST_ITEM_EFFICIENCY = 37595 ,
150153 SPELL_PRIEST_LASTING_WORDS = 471504 ,
151154 SPELL_PRIEST_LEAP_OF_FAITH_EFFECT = 92832 ,
@@ -300,7 +303,8 @@ enum PriestSummons
300303{
301304 NPC_PRIEST_DIVINE_IMAGE = 198236 ,
302305 NPC_PRIEST_MINDBENDER = 62982 ,
303- NPC_PRIEST_SHADOWFIEND = 19668
306+ NPC_PRIEST_SHADOWFIEND = 19668 ,
307+ NPC_PRIEST_VOIDWRAITH = 224466
304308};
305309
306310class RaidCheck
@@ -2487,6 +2491,52 @@ class spell_pri_holy_word_salvation_cooldown_reduction : public SpellScript
24872491 }
24882492};
24892493
2494+ // 373427 - Inescapable Torment
2495+ // Triggered by 8092 - Mind Blast, 32379 - Shadow Word: Death
2496+ // Triggered by 47758 - Penance (Channel) and 373129 - Dark Reprimand (Channel)
2497+ class spell_pri_inescapable_torment : public SpellScript
2498+ {
2499+ bool Validate (SpellInfo const * /* spellInfo*/ ) override
2500+ {
2501+ return ValidateSpellInfo ({ SPELL_PRIEST_INESCAPABLE_TORMENT_TELEPORT })
2502+ && ValidateSpellEffect ({ { SPELL_PRIEST_INESCAPABLE_TORMENT, EFFECT_1 } });
2503+ }
2504+
2505+ bool Load () override
2506+ {
2507+ return GetCaster ()->HasAura (SPELL_PRIEST_INESCAPABLE_TORMENT);
2508+ }
2509+
2510+ static TempSummon* GetSummon (Unit const * owner)
2511+ {
2512+ for (Unit* summon : owner->m_Controlled )
2513+ if (summon->GetEntry () == NPC_PRIEST_SHADOWFIEND || summon->GetEntry () == NPC_PRIEST_MINDBENDER || summon->GetEntry () == NPC_PRIEST_VOIDWRAITH)
2514+ return summon->ToTempSummon ();
2515+ return nullptr ;
2516+ }
2517+
2518+ void HandleEffectHit (SpellEffIndex /* effIndex*/ ) const
2519+ {
2520+ Unit const * caster = GetCaster ();
2521+ TempSummon* summon = GetSummon (caster);
2522+ if (!summon)
2523+ return ;
2524+
2525+ summon->CastSpell (GetHitUnit (), SPELL_PRIEST_INESCAPABLE_TORMENT_TELEPORT, CastSpellExtraArgsInit{
2526+ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
2527+ .TriggeringSpell = GetSpell ()
2528+ });
2529+
2530+ int32 durationExtend = sSpellMgr ->AssertSpellInfo (SPELL_PRIEST_INESCAPABLE_TORMENT, DIFFICULTY_NONE)->GetEffect (EFFECT_1).CalcValue (caster);
2531+ summon->ModifyTimer (Milliseconds (durationExtend));
2532+ }
2533+
2534+ void Register () override
2535+ {
2536+ OnEffectHitTarget += SpellEffectFn (spell_pri_inescapable_torment::HandleEffectHit, EFFECT_0, SPELL_EFFECT_ANY);
2537+ }
2538+ };
2539+
24902540// 40438 - Priest Tier 6 Trinket
24912541class spell_pri_item_t6_trinket : public AuraScript
24922542{
@@ -5155,6 +5205,7 @@ void AddSC_priest_spell_scripts()
51555205 RegisterSpellScript (spell_pri_holy_word_chastise);
51565206 RegisterSpellScript (spell_pri_holy_word_salvation);
51575207 RegisterSpellScript (spell_pri_holy_word_salvation_cooldown_reduction);
5208+ RegisterSpellScript (spell_pri_inescapable_torment);
51585209 RegisterSpellScript (spell_pri_item_t6_trinket);
51595210 RegisterSpellScriptWithArgs (spell_pri_lasting_words, " spell_pri_lasting_words_serenity" , EFFECT_0);
51605211 RegisterSpellScriptWithArgs (spell_pri_lasting_words, " spell_pri_lasting_words_sanctify" , EFFECT_1);
0 commit comments