From 1b5ff6231432273cf39a0fb3adf8dcfa7e2c5c04 Mon Sep 17 00:00:00 2001 From: silinoron Date: Sat, 4 Dec 2010 10:59:06 -0800 Subject: Core/Auras: Replenishment should stack duration, not several instances. Patch by dr.tenma. Fixes issue #4370. --HG-- branch : trunk --- src/server/game/Spells/Spell.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 1ae359f38fa..e105da7ca4d 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2745,6 +2745,19 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur) unitList.sort(Trinity::PowerPctOrderPred((Powers)power)); unitList.resize(maxSize); } + + // Replenishment: refresh existing auras + if (m_spellInfo->Id == 57669) + for (std::list::iterator itr = unitList.begin(); itr != unitList.end();) + if (AuraEffect *aurEff = (*itr)->GetAuraEffect(SPELL_AURA_PERIODIC_ENERGIZE, SPELLFAMILY_GENERIC, 3184, EFFECT_0)) + { + aurEff->SetAmount((*itr)->GetMaxPower(POWER_MANA) * 25 / 10000); + aurEff->GetBase()->RefreshDuration(); + + itr = unitList.erase(itr); + } + else + ++itr; } } -- cgit v1.2.3