@@ -192,7 +192,7 @@ enum PriestSpells
192192 SPELL_PRIEST_THE_PENITENT_AURA = 200347 ,
193193 SPELL_PRIEST_TRAIL_OF_LIGHT_HEAL = 234946 ,
194194 SPELL_PRIEST_TRINITY = 214205 ,
195- SPELL_PRIEST_TRINITY_EFFECT = 214206 ,
195+ SPELL_PRIEST_TRINITY_EFFECT = 290793 ,
196196 SPELL_PRIEST_ULTIMATE_PENITENCE = 421453 ,
197197 SPELL_PRIEST_ULTIMATE_PENITENCE_DAMAGE = 421543 ,
198198 SPELL_PRIEST_ULTIMATE_PENITENCE_HEAL = 421544 ,
@@ -389,8 +389,8 @@ class spell_pri_atonement : public AuraScript
389389{
390390 bool Validate (SpellInfo const * spellInfo) override
391391 {
392- return ValidateSpellInfo ({ SPELL_PRIEST_ATONEMENT_HEAL, SPELL_PRIEST_SINS_OF_THE_MANY })
393- && ValidateSpellEffect ({ { spellInfo->Id , EFFECT_1 }, { SPELL_PRIEST_SINS_OF_THE_MANY, EFFECT_2 } });
392+ return ValidateSpellInfo ({ SPELL_PRIEST_ATONEMENT_HEAL, SPELL_PRIEST_SINS_OF_THE_MANY, SPELL_PRIEST_TRINITY_EFFECT })
393+ && ValidateSpellEffect ({ { spellInfo->Id , EFFECT_1 }, { SPELL_PRIEST_SINS_OF_THE_MANY, EFFECT_2 }, { SPELL_PRIEST_TRINITY, EFFECT_0 } });
394394 }
395395
396396 static bool CheckProc (AuraScript const &, ProcEventInfo const & eventInfo)
@@ -417,13 +417,15 @@ class spell_pri_atonement : public AuraScript
417417 _appliedAtonements.push_back (target);
418418
419419 UpdateSinsOfTheManyValue ();
420+ UpdateTrinityEffect ();
420421 }
421422
422423 void RemoveAtonementTarget (ObjectGuid const & target)
423424 {
424425 std::erase (_appliedAtonements, target);
425426
426427 UpdateSinsOfTheManyValue ();
428+ UpdateTrinityEffect ();
427429 }
428430
429431 std::vector<ObjectGuid> const & GetAtonementTargets () const
@@ -475,6 +477,15 @@ class spell_pri_atonement : public AuraScript
475477 if (AuraEffect* sinOfTheMany = GetUnitOwner ()->GetAuraEffect (SPELL_PRIEST_SINS_OF_THE_MANY, effectIndex))
476478 sinOfTheMany->ChangeAmount (damageByStack[std::min (_appliedAtonements.size (), damageByStack.size () - 1 )]);
477479 }
480+
481+ void UpdateTrinityEffect () const
482+ {
483+ Unit* priest = GetUnitOwner ();
484+ if (AuraEffect const * trinity = priest->GetAuraEffect (SPELL_PRIEST_TRINITY, EFFECT_0); trinity && std::ssize (_appliedAtonements) >= trinity->GetAmount ())
485+ priest->CastSpell (priest, SPELL_PRIEST_TRINITY_EFFECT, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR });
486+ else
487+ priest->RemoveAurasDueToSpell (SPELL_PRIEST_TRINITY_EFFECT);
488+ }
478489};
479490
480491// 81751 - Atonement (Heal)
@@ -1212,22 +1223,15 @@ class spell_pri_evangelism : public SpellScript
12121223{
12131224 bool Validate (SpellInfo const * /* spellInfo*/ ) override
12141225 {
1215- return ValidateSpellInfo
1216- ({
1217- SPELL_PRIEST_TRINITY,
1218- SPELL_PRIEST_ATONEMENT_EFFECT,
1219- SPELL_PRIEST_TRINITY_EFFECT
1220- });
1226+ return ValidateSpellInfo ({ SPELL_PRIEST_ATONEMENT_EFFECT });
12211227 }
12221228
12231229 void HandleScriptEffect (SpellEffIndex /* effIndex*/ ) const
12241230 {
12251231 Unit* caster = GetCaster ();
12261232 Unit* target = GetHitUnit ();
12271233
1228- Aura* atonementAura = caster->HasAura (SPELL_PRIEST_TRINITY)
1229- ? target->GetAura (SPELL_PRIEST_TRINITY_EFFECT, caster->GetGUID ())
1230- : target->GetAura (SPELL_PRIEST_ATONEMENT_EFFECT, caster->GetGUID ());
1234+ Aura* atonementAura = target->GetAura (SPELL_PRIEST_ATONEMENT_EFFECT, caster->GetGUID ());
12311235 if (!atonementAura)
12321236 return ;
12331237
@@ -1828,15 +1832,14 @@ class spell_pri_pain_transformation : public SpellScript
18281832 return ValidateSpellInfo
18291833 ({
18301834 SPELL_PRIEST_ATONEMENT_EFFECT,
1831- SPELL_PRIEST_TRINITY,
18321835 SPELL_PRIEST_PAIN_TRANSFORMATION,
18331836 SPELL_PRIEST_PAIN_TRANSFORMATION_HEAL
18341837 });
18351838 }
18361839
18371840 bool Load () override
18381841 {
1839- return GetCaster ()->HasAura (SPELL_PRIEST_PAIN_TRANSFORMATION) && ! GetCaster ()-> HasAura (SPELL_PRIEST_TRINITY) ;
1842+ return GetCaster ()->HasAura (SPELL_PRIEST_PAIN_TRANSFORMATION);
18401843 }
18411844
18421845 void HandleHit (SpellEffIndex /* effIndex*/ ) const
@@ -2976,7 +2979,6 @@ class spell_pri_shadow_mend : public SpellScript
29762979 ({
29772980 SPELL_PRIEST_ATONEMENT,
29782981 SPELL_PRIEST_ATONEMENT_EFFECT,
2979- SPELL_PRIEST_TRINITY,
29802982 SPELL_PRIEST_MASOCHISM_TALENT,
29812983 SPELL_PRIEST_MASOCHISM_PERIODIC_HEAL,
29822984 SPELL_PRIEST_SHADOW_MEND_PERIODIC_DUMMY
0 commit comments