diff options
| author | Ovahlord <dreadkiller@gmx.de> | 2021-05-13 00:43:11 +0200 | 
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-05-13 00:43:11 +0200 | 
| commit | a0a4d23fed58880c5ad1ebf4216d15d957035b65 (patch) | |
| tree | 1561a0f831849f468ba1af3aed6aba9a2b2e3968 /src | |
| parent | 1a7779a6e6464d9bc5b367e02820213edd60f704 (diff) | |
Core/Units: No longer send PowerUpdate packets when gaining power via energize spell effects
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 16 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 4 | 
2 files changed, 10 insertions, 10 deletions
| diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index af0cfc6be38..7c0fb6a64fd 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6745,9 +6745,9 @@ void Unit::EnergizeBySpell(Unit* victim, uint32 spellId, int32 damage, Powers po  void Unit::EnergizeBySpell(Unit* victim, SpellInfo const* spellInfo, int32 damage, Powers powerType)  { -    int32 gain = victim->ModifyPower(powerType, damage); +    int32 gain = victim->ModifyPower(powerType, damage, false);      int32 overEnergize = damage - gain; -    victim->GetThreatManager().ForwardThreatForAssistingMe(this, float(damage)/2, spellInfo, true); +    victim->GetThreatManager().ForwardThreatForAssistingMe(this, float(damage) / 2, spellInfo, true);      SendEnergizeSpellLog(victim, spellInfo->Id, damage, overEnergize, powerType);  } @@ -8637,7 +8637,7 @@ int64 Unit::GetHealthGain(int64 dVal)  }  // returns negative amount on power reduction -int32 Unit::ModifyPower(Powers power, int32 dVal) +int32 Unit::ModifyPower(Powers power, int32 dVal, bool withPowerUpdate /*= true*/)  {      int32 gain = 0; @@ -8652,7 +8652,7 @@ int32 Unit::ModifyPower(Powers power, int32 dVal)      int32 val = dVal + curPower;      if (val <= GetMinPower(power))      { -        SetPower(power, GetMinPower(power)); +        SetPower(power, GetMinPower(power), withPowerUpdate);          return -curPower;      } @@ -8660,12 +8660,12 @@ int32 Unit::ModifyPower(Powers power, int32 dVal)      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;      } @@ -10082,7 +10082,7 @@ int32 Unit::GetMaxPower(Powers power) const      return m_unitData->MaxPower[powerIndex];  } -void Unit::SetPower(Powers power, int32 val) +void Unit::SetPower(Powers power, int32 val, bool withPowerUpdate /*= true*/)  {      uint32 powerIndex = GetPowerIndex(power);      if (powerIndex == MAX_POWERS || powerIndex >= MAX_POWERS_PER_CLASS) @@ -10095,7 +10095,7 @@ void Unit::SetPower(Powers power, int32 val)      int32 oldPower = m_unitData->Power[powerIndex];      SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Power, powerIndex), val); -    if (IsInWorld()) +    if (IsInWorld() && withPowerUpdate)      {          WorldPackets::Combat::PowerUpdate packet;          packet.Guid = GetGUID(); diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 6af545a36a3..5275677e2e8 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -934,12 +934,12 @@ class TC_GAME_API Unit : public WorldObject          int32 GetMaxPower(Powers power) const;          float GetPowerPct(Powers power) const { return GetMaxPower(power) ? 100.f * GetPower(power) / GetMaxPower(power) : 0.0f; }          int32 CountPctFromMaxPower(Powers power, int32 pct) const { return CalculatePct(GetMaxPower(power), pct); } -        void SetPower(Powers power, int32 val); +        void SetPower(Powers power, int32 val, bool withPowerUpdate = true);          void SetMaxPower(Powers power, int32 val);          void TriggerOnPowerChangeAuras(Powers power, int32 oldVal, int32 newVal);          inline void SetFullPower(Powers power) { SetPower(power, GetMaxPower(power)); }          // returns the change in power -        int32 ModifyPower(Powers power, int32 val); +        int32 ModifyPower(Powers power, int32 val, bool withPowerUpdate = true);          void ApplyModManaCostMultiplier(float manaCostMultiplier, bool apply) { ApplyModUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::ManaCostMultiplier),  manaCostMultiplier, apply); }          void ApplyModManaCostModifier(SpellSchools school, int32 mod, bool apply) { ApplyModUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::ManaCostModifier, school), mod, apply); } | 
