diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-01-18 14:33:07 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-01-18 14:33:07 +0100 |
commit | 03dd82b52d340e9e21e22fff0c3e5fee1a35a52d (patch) | |
tree | 69cc5a35fef37d1345e4cd4cad67f1b3e4a03452 | |
parent | 77e1304a5aada6df095f9c60c09ede296c8bc28a (diff) |
Scripts/Spells: Updated Power Word: Shield script
Closes #27630
-rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 6a0f4e2a879..f1bb033cf2c 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -57,12 +57,14 @@ enum PriestSpells SPELL_PRIEST_LEVITATE_EFFECT = 111759, SPELL_PRIEST_MASOCHISM_TALENT = 193063, SPELL_PRIEST_MASOCHISM_PERIODIC_HEAL = 193065, + SPELL_PRIEST_MASTERY_GRACE = 271534, SPELL_PRIEST_MIND_BOMB_STUN = 226943, SPELL_PRIEST_ORACULAR_HEAL = 26170, SPELL_PRIEST_PENANCE_R1 = 47540, SPELL_PRIEST_PENANCE_R1_DAMAGE = 47758, SPELL_PRIEST_PENANCE_R1_HEAL = 47757, SPELL_PRIEST_PRAYER_OF_HEALING = 596, + SPELL_PRIEST_RAPTURE = 47536, SPELL_PRIEST_RENEW = 139, SPELL_PRIEST_RENEWED_HOPE = 197469, SPELL_PRIEST_RENEWED_HOPE_EFFECT = 197470, @@ -749,7 +751,9 @@ public: SPELL_PRIEST_ATONEMENT_TRIGGERED, SPELL_PRIEST_ATONEMENT_TRIGGERED_TRINITY, SPELL_PRIEST_SHIELD_DISCIPLINE_PASSIVE, - SPELL_PRIEST_SHIELD_DISCIPLINE_ENERGIZE + SPELL_PRIEST_SHIELD_DISCIPLINE_ENERGIZE, + SPELL_PRIEST_RAPTURE, + SPELL_PRIEST_MASTERY_GRACE }); } @@ -757,14 +761,23 @@ public: { canBeRecalculated = false; - if (Player* player = GetCaster()->ToPlayer()) + if (Unit* caster = GetCaster()) { - int32 playerMastery = player->GetRatingBonusValue(CR_MASTERY); - int32 playerSpellPower = player->SpellBaseDamageBonusDone(SPELL_SCHOOL_MASK_HOLY); - int32 playerVersatileDamage = player->GetRatingBonusValue(CR_VERSATILITY_DAMAGE_DONE); + float amountF = caster->SpellBaseDamageBonusDone(GetSpellInfo()->GetSchoolMask()) * 1.65f; + + if (Player* player = caster->ToPlayer()) + { + AddPct(amountF, player->GetRatingBonusValue(CR_VERSATILITY_DAMAGE_DONE)); + + if (AuraEffect const* mastery = caster->GetAuraEffect(SPELL_PRIEST_MASTERY_GRACE, EFFECT_0)) + if (GetUnitOwner()->HasAura(SPELL_PRIEST_ATONEMENT_TRIGGERED) || GetUnitOwner()->HasAura(SPELL_PRIEST_ATONEMENT_TRIGGERED_TRINITY)) + AddPct(amountF, mastery->GetAmount()); + } + + if (AuraEffect const* rapture = caster->GetAuraEffect(SPELL_PRIEST_RAPTURE, EFFECT_1)) + AddPct(amountF, rapture->GetAmount()); - //Formula taken from SpellWork - amount = (int32)((playerSpellPower * 5.5f) + playerMastery) * (1 + playerVersatileDamage); + amount = amountF; } } |