[8161] Partial revert and fix of my prev. commit in Aura::SetStackAmount

* Aura should be refreshed also when stackAmount == m_stackAmount
  this fixing problem that aura not refreshed if you have already full stack
  and cast "stack spell" again on target

Thanks Corfen for problem reporting and testing

Signed-off-by: ApoC <apoc@nymfe.net>
This commit is contained in:
ApoC 2009-07-11 18:11:06 +02:00
parent aed2a9f9b3
commit 45eda48693
2 changed files with 12 additions and 13 deletions

View file

@ -1178,24 +1178,23 @@ void Aura::SendAuraUpdate(bool remove)
void Aura::SetStackAmount(uint8 stackAmount) void Aura::SetStackAmount(uint8 stackAmount)
{ {
if (stackAmount == m_stackAmount)
// Nothing changed
return;
Unit *target = GetTarget(); Unit *target = GetTarget();
Unit *caster = GetCaster(); Unit *caster = GetCaster();
if (!target || !caster) if (!target || !caster)
return; return;
bool refresh = stackAmount > m_stackAmount; bool refresh = stackAmount >= m_stackAmount;
m_stackAmount = stackAmount; if (stackAmount != m_stackAmount)
int32 amount = m_stackAmount * caster->CalculateSpellDamage(m_spellProto, m_effIndex, m_currentBasePoints, target);
// Reapply if amount change
if (amount!=m_modifier.m_amount)
{ {
ApplyModifier(false, true); m_stackAmount = stackAmount;
m_modifier.m_amount = amount; int32 amount = m_stackAmount * caster->CalculateSpellDamage(m_spellProto, m_effIndex, m_currentBasePoints, target);
ApplyModifier(true, true); // Reapply if amount change
if (amount!=m_modifier.m_amount)
{
ApplyModifier(false, true);
m_modifier.m_amount = amount;
ApplyModifier(true, true);
}
} }
if (refresh) if (refresh)

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "8160" #define REVISION_NR "8161"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__