aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-10-24 15:48:38 +0200
committerShauren <shauren.trinity@gmail.com>2025-10-24 15:48:38 +0200
commit81a1a5585132257972fe527bb2f7d9b672cc0422 (patch)
tree2840b0468bfb6eb925b8dd1c6cac62871fef7de6 /src/server/scripts
parent13c0dbd629e61ea9b8af0497eae01f169ba7cf0b (diff)
Scripts/Spells: Update priest pvp talent Trinity
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp32
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