aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeleqraph <nyrdeveloper@gmail.com>2023-05-31 19:10:38 +0200
committerGitHub <noreply@github.com>2023-05-31 19:10:38 +0200
commit692c26a15eb52e44c33bd381b0bee4f1a1a34e71 (patch)
treed8c6e22a4fc52270c791ecef97f4ec45965a2d0a
parentfd1d66269ad9585e14e624cfb272e6ade3b3d1c6 (diff)
Scripts/Spells: Implement Say Your Prayers (#29028)
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index a785a1b0eae..a5ebb647694 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -100,6 +100,7 @@ enum PriestSpells
SPELL_PRIEST_RENEWED_HOPE = 197469,
SPELL_PRIEST_RENEWED_HOPE_EFFECT = 197470,
SPELL_PRIEST_REVEL_IN_PURITY = 373003,
+ SPELL_PRIEST_SAY_YOUR_PRAYERS = 391186,
SPELL_PRIEST_SHADOW_MEND_DAMAGE = 186439,
SPELL_PRIEST_SHADOW_MEND_PERIODIC_DUMMY = 187464,
SPELL_PRIEST_SHADOW_WORD_PAIN = 589,
@@ -1247,7 +1248,13 @@ class spell_pri_prayer_of_mending_aura : public AuraScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- return ValidateSpellInfo({ SPELL_PRIEST_PRAYER_OF_MENDING_HEAL, SPELL_PRIEST_PRAYER_OF_MENDING_JUMP });
+ return ValidateSpellInfo
+ ({
+ SPELL_PRIEST_PRAYER_OF_MENDING_HEAL,
+ SPELL_PRIEST_PRAYER_OF_MENDING_JUMP,
+ SPELL_PRIEST_SAY_YOUR_PRAYERS
+ })
+ && ValidateSpellEffect({ { SPELL_PRIEST_SAY_YOUR_PRAYERS, EFFECT_0 } });
}
void HandleHeal(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
@@ -1266,7 +1273,14 @@ class spell_pri_prayer_of_mending_aura : public AuraScript
{
CastSpellExtraArgs args(aurEff);
args.OriginalCaster = caster->GetGUID();
- args.AddSpellMod(SPELLVALUE_BASE_POINT0, stackAmount - 1);
+
+ int32 newStackAmount = stackAmount - 1;
+ if (AuraEffect* sayYourPrayers = caster->GetAuraEffect(SPELL_PRIEST_SAY_YOUR_PRAYERS, EFFECT_0))
+ if (roll_chance_i(sayYourPrayers->GetAmount()))
+ ++newStackAmount;
+
+ args.AddSpellMod(SPELLVALUE_BASE_POINT0, newStackAmount);
+
target->CastSpell(target, SPELL_PRIEST_PRAYER_OF_MENDING_JUMP, args);
}