aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTrisjdc <trisjdc@gmail.com>2014-07-03 00:42:55 +0100
committerTrisjdc <trisjdc@gmail.com>2014-07-03 00:42:55 +0100
commit531de49fe78436c30e504d2ea4b94469484333d8 (patch)
tree12c569ece4cda1252fa01a0a7a39be6b25e3a735 /src
parent9f0698b605a48578a0f2e82c8a6fc507ad54d0b8 (diff)
Core/Spells: Spells which do not apply auras should not apply DR
- Solves issue where Intimidating Shout applied DR twice on the main target
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 9086a304e1c..814ae4d24c1 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2538,9 +2538,14 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
}
}
+ uint8 aura_effmask = 0;
+ for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
+ if (effectMask & (1 << i) && m_spellInfo->Effects[i].IsUnitOwnedAuraEffect())
+ aura_effmask |= 1 << i;
+
// Get Data Needed for Diminishing Returns, some effects may have multiple auras, so this must be done on spell hit, not aura add
m_diminishGroup = GetDiminishingReturnsGroupForSpell(m_spellInfo, m_triggeredByAuraSpell);
- if (m_diminishGroup)
+ if (m_diminishGroup && aura_effmask)
{
m_diminishLevel = unit->GetDiminishing(m_diminishGroup);
DiminishingReturnsType type = GetDiminishingReturnsGroupType(m_diminishGroup);
@@ -2551,11 +2556,6 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
unit->IncrDiminishing(m_diminishGroup);
}
- uint8 aura_effmask = 0;
- for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
- if (effectMask & (1 << i) && m_spellInfo->Effects[i].IsUnitOwnedAuraEffect())
- aura_effmask |= 1 << i;
-
if (aura_effmask)
{
// Select rank for aura with level requirements only in specific cases