aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTrisjdc <trisjdc@gmail.com>2014-07-24 03:40:05 +0100
committerTrisjdc <trisjdc@gmail.com>2014-07-24 03:40:05 +0100
commit0e91a0e54c4fd00c71ee4a7fd9d6a305110cbcc8 (patch)
tree2af97d75dcb29f26f0521420630273c2f3194149 /src
parent7524e2dfda499177ffe633bd8284aad2cf1f547f (diff)
Core/Spells: Solving the double dips in Hammer of the Righteous
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp7
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;