Skip to content

Commit 81a1a55

Browse files
committed
Scripts/Spells: Update priest pvp talent Trinity
1 parent 13c0dbd commit 81a1a55

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

src/server/scripts/Spells/spell_priest.cpp

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)