mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
[8136] Fixed aura refresh on modify stack by negative amount.
When decreasing stack amount of aura, aura should not be refreshed to full time. This should only happen on increasing stack. Signed-off-by: ApoC <apoc@nymfe.net>
This commit is contained in:
parent
5d8bd14d38
commit
84e46d76e3
2 changed files with 25 additions and 16 deletions
|
|
@ -1178,23 +1178,32 @@ void Aura::SendAuraUpdate(bool remove)
|
|||
|
||||
void Aura::SetStackAmount(uint8 stackAmount)
|
||||
{
|
||||
if (stackAmount != m_stackAmount)
|
||||
if (stackAmount == m_stackAmount)
|
||||
// Nothing changed
|
||||
return;
|
||||
|
||||
Unit *target = GetTarget();
|
||||
Unit *caster = GetCaster();
|
||||
if (!target || !caster)
|
||||
return;
|
||||
|
||||
bool refresh = stackAmount > m_stackAmount;
|
||||
m_stackAmount = stackAmount;
|
||||
int32 amount = m_stackAmount * caster->CalculateSpellDamage(m_spellProto, m_effIndex, m_currentBasePoints, target);
|
||||
// Reapply if amount change
|
||||
if (amount!=m_modifier.m_amount)
|
||||
{
|
||||
Unit *target = GetTarget();
|
||||
Unit *caster = GetCaster();
|
||||
if (!target || !caster)
|
||||
return;
|
||||
m_stackAmount = 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_modifier.m_amount = amount;
|
||||
ApplyModifier(true, true);
|
||||
}
|
||||
ApplyModifier(false, true);
|
||||
m_modifier.m_amount = amount;
|
||||
ApplyModifier(true, true);
|
||||
}
|
||||
RefreshAura();
|
||||
|
||||
if (refresh)
|
||||
// Stack increased refresh duration
|
||||
RefreshAura();
|
||||
else
|
||||
// Stack decreased only send update
|
||||
SendAuraUpdate(false);
|
||||
}
|
||||
|
||||
bool Aura::modStackAmount(int32 num)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "8135"
|
||||
#define REVISION_NR "8136"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue