diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 57feb9ddd..f60f1f3e9 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -3622,9 +3622,10 @@ bool Unit::AddAura(Aura *Aur) else if (aur2->GetSpellProto()->AttributesEx4 & SPELL_ATTR_EX4_STACK_DOT_MODIFIER && aurName == SPELL_AURA_PERIODIC_DAMAGE && aur2->GetAuraDuration() > 0) { int32 remainingTicks = 1 + (aur2->GetAuraDuration() / aur2->GetModifier()->periodictime); - int32 maxTicks = aur2->GetAuraMaxDuration() / aur2->GetModifier()->periodictime; + int32 remainingDamage = aur2->GetModifier()->m_amount * remainingTicks; - Aur->GetModifier()->m_amount += int32(remainingTicks * aur2->GetModifier()->m_amount / maxTicks); + int32 maxTicks = Aur->GetAuraMaxDuration() / Aur->GetModifier()->periodictime; + Aur->GetModifier()->m_amount += int32(remainingDamage / maxTicks); } // can be only single (this check done at _each_ aura add RemoveAura(i2,AURA_REMOVE_BY_STACK); @@ -7037,9 +7038,13 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB case 12867: basepoints[0] = int32(weaponDamage * 48 / 100); break; // Impossible case default: + sLog.outError("Unit::HandleProcTriggerSpell: DW unknown spell rank %u",auraSpellInfo->Id); return false; } + // 1 tick/sec * 6 sec = 6 ticks + basepoints[0] /= 6; + trigger_spell_id = 12721; break; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index ad763cc05..d52180e56 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9080" + #define REVISION_NR "9081" #endif // __REVISION_NR_H__