aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGildor <gildor55@gmail.com>2019-12-30 14:46:10 +0100
committerKeader <keader.android@gmail.com>2019-12-30 10:46:10 -0300
commit617e9dacc8c7b87b7ed292eb200aef1a569609e8 (patch)
tree378c81c1100183c918f5ebdabe451a5b01f0c200 /src
parente15354dc7fa423f30c78de8d658093a943adea14 (diff)
Core/Spells: Fix Power Word: Shield (Priest) absorb amount (#23985)
Closes #22090
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index 32fc158a888..f17c4d1c4ad 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -78,6 +78,7 @@ enum PriestSpells
enum PriestSpellIcons
{
+ PRIEST_ICON_ID_FOCUSED_POWER = 2210,
PRIEST_ICON_ID_BORROWED_TIME = 2899,
PRIEST_ICON_ID_EMPOWERED_RENEW_TALENT = 3021,
PRIEST_ICON_ID_PAIN_AND_SUFFERING = 2874,
@@ -95,7 +96,15 @@ enum PriestMisc
enum MiscSpells
{
- SPELL_MAGE_ARCANE_POWER = 12042
+ SPELL_MAGE_ARCANE_POWER = 12042,
+ SPELL_GENERIC_ARENA_DAMPENING = 74410,
+ SPELL_GENERIC_BATTLEGROUND_DAMPENING = 74411
+};
+
+enum MiscSpellIcons
+{
+ SPELL_ICON_ID_STRENGTH_OF_WRYNN = 1704,
+ SPELL_ICON_ID_HELLSCREAM_WARSONG = 937
};
class PowerCheck
@@ -1116,7 +1125,21 @@ class spell_pri_power_word_shield : public SpellScriptLoader
AddPct(amount, twinDisciplines->GetAmount());
// Focused Power
- amount *= caster->GetTotalAuraMultiplier(SPELL_AURA_MOD_HEALING_DONE_PERCENT);
+ if (AuraEffect const* focusedPower = caster->GetAuraEffect(SPELL_AURA_MOD_HEALING_DONE_PERCENT, SPELLFAMILY_PRIEST, PRIEST_ICON_ID_FOCUSED_POWER, EFFECT_2))
+ AddPct(amount, focusedPower->GetAmount());
+
+ // Arena - Dampening
+ if (AuraEffect const* auraEffArenaDampening = caster->GetAuraEffect(SPELL_GENERIC_ARENA_DAMPENING, EFFECT_0))
+ AddPct(amount, auraEffArenaDampening->GetAmount());
+ // Battleground - Dampening
+ else if (AuraEffect const* auraEffBattlegroudDampening = caster->GetAuraEffect(SPELL_GENERIC_BATTLEGROUND_DAMPENING, EFFECT_0))
+ AddPct(amount, auraEffBattlegroudDampening->GetAmount());
+
+ // ICC buff
+ if (AuraEffect const* auraStrengthOfWrynn = caster->GetAuraEffect(SPELL_AURA_MOD_HEALING_DONE_PERCENT, SPELLFAMILY_GENERIC, SPELL_ICON_ID_STRENGTH_OF_WRYNN, EFFECT_2))
+ AddPct(amount, auraStrengthOfWrynn->GetAmount());
+ else if (AuraEffect const* auraHellscreamsWarsong = caster->GetAuraEffect(SPELL_AURA_MOD_HEALING_DONE_PERCENT, SPELLFAMILY_GENERIC, SPELL_ICON_ID_HELLSCREAM_WARSONG, EFFECT_2))
+ AddPct(amount, auraHellscreamsWarsong->GetAmount());
}
}