aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-12-03 19:42:23 -0300
committerDoctorKraft <DoctorKraft@users.noreply.github.com>2018-03-12 10:32:06 +0100
commit4e08ab8f69c10d2c34aaaf2ea160461ea6e02c33 (patch)
tree2bc699f84d0693c1919bc81b2904333a7b36e4d0
parentbc87d3a2b3061e1f986a73acbbcb42e227a9ed13 (diff)
Core/Auras: calculate periodic bonuses before specific mods, fixes Imp. Devouring Plague damage
(cherry picked from commit bd49d37258a467b7b8dc98a3454b6079ecd9b3b6)
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp2
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index f8c79bbbe1c..a466ef6d4b8 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -3296,8 +3296,8 @@ void Unit::_ApplyAura(AuraApplication * aurApp, uint32 effMask)
if (aurApp->GetRemoveMode())
return;
- aura->HandleAuraSpecificMods(aurApp, caster, true, false);
aura->HandleAuraSpecificPeriodics(aurApp, caster);
+ aura->HandleAuraSpecificMods(aurApp, caster, true, false);
// apply effects of the aura
for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index 022d2c821f0..676702d5d1b 100644
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -923,11 +923,13 @@ void Aura::SetStackAmount(uint8 stackAmount)
effect->ChangeAmount(effect->CalculateAmount(caster), false, true);
for (std::list<AuraApplication*>::const_iterator apptItr = applications.begin(); apptItr != applications.end(); ++apptItr)
+ {
if (!(*apptItr)->GetRemoveMode())
{
- HandleAuraSpecificMods(*apptItr, caster, true, true);
HandleAuraSpecificPeriodics(*apptItr, caster);
+ HandleAuraSpecificMods(*apptItr, caster, true, true);
}
+ }
SetNeedClientUpdateForTargets();
}