diff options
author | Trisjdc <trisjdc@gmail.com> | 2014-07-24 03:40:05 +0100 |
---|---|---|
committer | Trisjdc <trisjdc@gmail.com> | 2014-07-24 03:40:05 +0100 |
commit | 0e91a0e54c4fd00c71ee4a7fd9d6a305110cbcc8 (patch) | |
tree | 2af97d75dcb29f26f0521420630273c2f3194149 /src | |
parent | 7524e2dfda499177ffe633bd8284aad2cf1f547f (diff) |
Core/Spells: Solving the double dips in Hammer of the Righteous
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 0ab4e7c9e6e..0ee494d2898 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -625,8 +625,13 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex) // Hammer of the Righteous if (m_spellInfo->SpellFamilyFlags[1]&0x00040000) { + float min_damage = m_caster->GetFloatValue(UNIT_FIELD_MINDAMAGE); + float max_damage = m_caster->GetFloatValue(UNIT_FIELD_MAXDAMAGE); + if (Player* player = m_caster->ToPlayer()) // UNIT_FIELD_MINDAMAGE/MAXDAMAGE already include damage bonuses, so try to get them without damage bonuses + player->CalculateMinMaxDamage(BASE_ATTACK, false, false, min_damage, max_damage); + + float average = (min_damage + max_damage) / 2; // Add main hand dps * effect[2] amount - float average = (m_caster->GetFloatValue(UNIT_FIELD_MINDAMAGE) + m_caster->GetFloatValue(UNIT_FIELD_MAXDAMAGE)) / 2; int32 count = m_caster->CalculateSpellDamage(unitTarget, m_spellInfo, EFFECT_2); damage += count * int32(average * IN_MILLISECONDS) / m_caster->GetAttackTime(BASE_ATTACK); break; |