Core/Units: No longer send PowerUpdate packets when gaining power via energize spell effects
Port From (https://github.com/TrinityCore/TrinityCore/commit/a0a4d23fed58880c5ad1ebf4216d15d957035b65)
This commit is contained in:
@@ -187,7 +187,7 @@ namespace Game.Entities
|
|||||||
int GetMinPower(PowerType power) { return power == PowerType.LunarPower ? -100 : 0; }
|
int GetMinPower(PowerType power) { return power == PowerType.LunarPower ? -100 : 0; }
|
||||||
|
|
||||||
// returns negative amount on power reduction
|
// returns negative amount on power reduction
|
||||||
public int ModifyPower(PowerType power, int dVal)
|
public int ModifyPower(PowerType power, int dVal, bool withPowerUpdate = true)
|
||||||
{
|
{
|
||||||
int gain = 0;
|
int gain = 0;
|
||||||
|
|
||||||
@@ -202,19 +202,19 @@ namespace Game.Entities
|
|||||||
int val = (dVal + curPower);
|
int val = (dVal + curPower);
|
||||||
if (val <= GetMinPower(power))
|
if (val <= GetMinPower(power))
|
||||||
{
|
{
|
||||||
SetPower(power, GetMinPower(power));
|
SetPower(power, GetMinPower(power), withPowerUpdate);
|
||||||
return -curPower;
|
return -curPower;
|
||||||
}
|
}
|
||||||
|
|
||||||
int maxPower = GetMaxPower(power);
|
int maxPower = GetMaxPower(power);
|
||||||
if (val < maxPower)
|
if (val < maxPower)
|
||||||
{
|
{
|
||||||
SetPower(power, val);
|
SetPower(power, val, withPowerUpdate);
|
||||||
gain = val - curPower;
|
gain = val - curPower;
|
||||||
}
|
}
|
||||||
else if (curPower != maxPower)
|
else if (curPower != maxPower)
|
||||||
{
|
{
|
||||||
SetPower(power, maxPower);
|
SetPower(power, maxPower, withPowerUpdate);
|
||||||
gain = maxPower - curPower;
|
gain = maxPower - curPower;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -601,7 +601,7 @@ namespace Game.Entities
|
|||||||
if (val < cur_power)
|
if (val < cur_power)
|
||||||
SetPower(powerType, val);
|
SetPower(powerType, val);
|
||||||
}
|
}
|
||||||
public void SetPower(PowerType powerType, int val)
|
public void SetPower(PowerType powerType, int val, bool withPowerUpdate = true)
|
||||||
{
|
{
|
||||||
uint powerIndex = GetPowerIndex(powerType);
|
uint powerIndex = GetPowerIndex(powerType);
|
||||||
if (powerIndex == (int)PowerType.Max || powerIndex >= (int)PowerType.MaxPerClass)
|
if (powerIndex == (int)PowerType.Max || powerIndex >= (int)PowerType.MaxPerClass)
|
||||||
@@ -614,7 +614,7 @@ namespace Game.Entities
|
|||||||
int oldPower = m_unitData.Power[(int)powerIndex];
|
int oldPower = m_unitData.Power[(int)powerIndex];
|
||||||
SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Power, (int)powerIndex), val);
|
SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Power, (int)powerIndex), val);
|
||||||
|
|
||||||
if (IsInWorld)
|
if (IsInWorld && withPowerUpdate)
|
||||||
{
|
{
|
||||||
PowerUpdate packet = new();
|
PowerUpdate packet = new();
|
||||||
packet.Guid = GetGUID();
|
packet.Guid = GetGUID();
|
||||||
|
|||||||
@@ -1523,7 +1523,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
void EnergizeBySpell(Unit victim, SpellInfo spellInfo, int damage, PowerType powerType)
|
void EnergizeBySpell(Unit victim, SpellInfo spellInfo, int damage, PowerType powerType)
|
||||||
{
|
{
|
||||||
int gain = victim.ModifyPower(powerType, damage);
|
int gain = victim.ModifyPower(powerType, damage, false);
|
||||||
int overEnergize = damage - gain;
|
int overEnergize = damage - gain;
|
||||||
|
|
||||||
victim.GetThreatManager().ForwardThreatForAssistingMe(this, damage / 2, spellInfo, true);
|
victim.GetThreatManager().ForwardThreatForAssistingMe(this, damage / 2, spellInfo, true);
|
||||||
|
|||||||
Reference in New Issue
Block a user