diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-10-24 15:48:38 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-10-24 15:48:38 +0200 |
| commit | 81a1a5585132257972fe527bb2f7d9b672cc0422 (patch) | |
| tree | 2840b0468bfb6eb925b8dd1c6cac62871fef7de6 /src/server/scripts | |
| parent | 13c0dbd629e61ea9b8af0497eae01f169ba7cf0b (diff) | |
Scripts/Spells: Update priest pvp talent Trinity
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index b558ac9c91e..ab79773e642 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -192,7 +192,7 @@ enum PriestSpells SPELL_PRIEST_THE_PENITENT_AURA = 200347, SPELL_PRIEST_TRAIL_OF_LIGHT_HEAL = 234946, SPELL_PRIEST_TRINITY = 214205, - SPELL_PRIEST_TRINITY_EFFECT = 214206, + SPELL_PRIEST_TRINITY_EFFECT = 290793, SPELL_PRIEST_ULTIMATE_PENITENCE = 421453, SPELL_PRIEST_ULTIMATE_PENITENCE_DAMAGE = 421543, SPELL_PRIEST_ULTIMATE_PENITENCE_HEAL = 421544, @@ -389,8 +389,8 @@ class spell_pri_atonement : public AuraScript { bool Validate(SpellInfo const* spellInfo) override { - return ValidateSpellInfo({ SPELL_PRIEST_ATONEMENT_HEAL, SPELL_PRIEST_SINS_OF_THE_MANY }) - && ValidateSpellEffect({ { spellInfo->Id, EFFECT_1 }, { SPELL_PRIEST_SINS_OF_THE_MANY, EFFECT_2 } }); + return ValidateSpellInfo({ SPELL_PRIEST_ATONEMENT_HEAL, SPELL_PRIEST_SINS_OF_THE_MANY, SPELL_PRIEST_TRINITY_EFFECT }) + && ValidateSpellEffect({ { spellInfo->Id, EFFECT_1 }, { SPELL_PRIEST_SINS_OF_THE_MANY, EFFECT_2 }, { SPELL_PRIEST_TRINITY, EFFECT_0 } }); } static bool CheckProc(AuraScript const&, ProcEventInfo const& eventInfo) @@ -417,6 +417,7 @@ public: _appliedAtonements.push_back(target); UpdateSinsOfTheManyValue(); + UpdateTrinityEffect(); } void RemoveAtonementTarget(ObjectGuid const& target) @@ -424,6 +425,7 @@ public: std::erase(_appliedAtonements, target); UpdateSinsOfTheManyValue(); + UpdateTrinityEffect(); } std::vector<ObjectGuid> const& GetAtonementTargets() const @@ -475,6 +477,15 @@ public: if (AuraEffect* sinOfTheMany = GetUnitOwner()->GetAuraEffect(SPELL_PRIEST_SINS_OF_THE_MANY, effectIndex)) sinOfTheMany->ChangeAmount(damageByStack[std::min(_appliedAtonements.size(), damageByStack.size() - 1)]); } + + void UpdateTrinityEffect() const + { + Unit* priest = GetUnitOwner(); + if (AuraEffect const* trinity = priest->GetAuraEffect(SPELL_PRIEST_TRINITY, EFFECT_0); trinity && std::ssize(_appliedAtonements) >= trinity->GetAmount()) + priest->CastSpell(priest, SPELL_PRIEST_TRINITY_EFFECT, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR }); + else + priest->RemoveAurasDueToSpell(SPELL_PRIEST_TRINITY_EFFECT); + } }; // 81751 - Atonement (Heal) @@ -1212,12 +1223,7 @@ class spell_pri_evangelism : public SpellScript { bool Validate(SpellInfo const* /*spellInfo*/) override { - return ValidateSpellInfo - ({ - SPELL_PRIEST_TRINITY, - SPELL_PRIEST_ATONEMENT_EFFECT, - SPELL_PRIEST_TRINITY_EFFECT - }); + return ValidateSpellInfo({ SPELL_PRIEST_ATONEMENT_EFFECT }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) const @@ -1225,9 +1231,7 @@ class spell_pri_evangelism : public SpellScript Unit* caster = GetCaster(); Unit* target = GetHitUnit(); - Aura* atonementAura = caster->HasAura(SPELL_PRIEST_TRINITY) - ? target->GetAura(SPELL_PRIEST_TRINITY_EFFECT, caster->GetGUID()) - : target->GetAura(SPELL_PRIEST_ATONEMENT_EFFECT, caster->GetGUID()); + Aura* atonementAura = target->GetAura(SPELL_PRIEST_ATONEMENT_EFFECT, caster->GetGUID()); if (!atonementAura) return; @@ -1828,7 +1832,6 @@ class spell_pri_pain_transformation : public SpellScript return ValidateSpellInfo ({ SPELL_PRIEST_ATONEMENT_EFFECT, - SPELL_PRIEST_TRINITY, SPELL_PRIEST_PAIN_TRANSFORMATION, SPELL_PRIEST_PAIN_TRANSFORMATION_HEAL }); @@ -1836,7 +1839,7 @@ class spell_pri_pain_transformation : public SpellScript bool Load() override { - return GetCaster()->HasAura(SPELL_PRIEST_PAIN_TRANSFORMATION) && !GetCaster()->HasAura(SPELL_PRIEST_TRINITY); + return GetCaster()->HasAura(SPELL_PRIEST_PAIN_TRANSFORMATION); } void HandleHit(SpellEffIndex /*effIndex*/) const @@ -2976,7 +2979,6 @@ class spell_pri_shadow_mend : public SpellScript ({ SPELL_PRIEST_ATONEMENT, SPELL_PRIEST_ATONEMENT_EFFECT, - SPELL_PRIEST_TRINITY, SPELL_PRIEST_MASOCHISM_TALENT, SPELL_PRIEST_MASOCHISM_PERIODIC_HEAL, SPELL_PRIEST_SHADOW_MEND_PERIODIC_DUMMY |
