From cb06e572f39b4be5ce52990821133c50eb518fc0 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 13 May 2021 20:37:31 -0400 Subject: [PATCH] Core/Units: No longer send PowerUpdate packets when gaining power via energize spell effects Port From (https://github.com/TrinityCore/TrinityCore/commit/a0a4d23fed58880c5ad1ebf4216d15d957035b65) --- Source/Game/Entities/StatSystem.cs | 12 ++++++------ Source/Game/Entities/Unit/Unit.Spells.cs | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Game/Entities/StatSystem.cs b/Source/Game/Entities/StatSystem.cs index e4a77bf8b..ed4880a82 100644 --- a/Source/Game/Entities/StatSystem.cs +++ b/Source/Game/Entities/StatSystem.cs @@ -187,7 +187,7 @@ namespace Game.Entities int GetMinPower(PowerType power) { return power == PowerType.LunarPower ? -100 : 0; } // 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; @@ -202,19 +202,19 @@ namespace Game.Entities int val = (dVal + curPower); if (val <= GetMinPower(power)) { - SetPower(power, GetMinPower(power)); + SetPower(power, GetMinPower(power), withPowerUpdate); return -curPower; } int maxPower = GetMaxPower(power); if (val < maxPower) { - SetPower(power, val); + SetPower(power, val, withPowerUpdate); gain = val - curPower; } else if (curPower != maxPower) { - SetPower(power, maxPower); + SetPower(power, maxPower, withPowerUpdate); gain = maxPower - curPower; } @@ -601,7 +601,7 @@ namespace Game.Entities if (val < cur_power) SetPower(powerType, val); } - public void SetPower(PowerType powerType, int val) + public void SetPower(PowerType powerType, int val, bool withPowerUpdate = true) { uint powerIndex = GetPowerIndex(powerType); if (powerIndex == (int)PowerType.Max || powerIndex >= (int)PowerType.MaxPerClass) @@ -614,7 +614,7 @@ namespace Game.Entities int oldPower = m_unitData.Power[(int)powerIndex]; SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Power, (int)powerIndex), val); - if (IsInWorld) + if (IsInWorld && withPowerUpdate) { PowerUpdate packet = new(); packet.Guid = GetGUID(); diff --git a/Source/Game/Entities/Unit/Unit.Spells.cs b/Source/Game/Entities/Unit/Unit.Spells.cs index 4d9ad465a..daed2feab 100644 --- a/Source/Game/Entities/Unit/Unit.Spells.cs +++ b/Source/Game/Entities/Unit/Unit.Spells.cs @@ -1523,7 +1523,7 @@ namespace Game.Entities 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; victim.GetThreatManager().ForwardThreatForAssistingMe(this, damage / 2, spellInfo, true);