diff options
author | robinsch <robinsch@users.noreply.github.com> | 2023-05-28 17:12:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-28 17:12:34 +0200 |
commit | d5ef68bc9b4523c0543206b16050644fbc1f5731 (patch) | |
tree | a0e777b9b30adb11ed67813fa4b2a1f1f0670514 | |
parent | fb388298a0bf76402a6f1de35bdfcb33223d51bb (diff) |
Core/StatSystem: Fixed missing calls to set negative attack power mods (#28883)
* Core/StatSystem: Fixed missing calls to set negative attack power mods
(cherry picked from commit 5ab14c14e70e516278b94a9e61e8475ffec86774)
* Added missing calls in Player::InitStatsForLevel
* Fixed typo
* Fixed typo
* Fixed typo
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/StatSystem.cpp | 20 |
2 files changed, 18 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index c3d840dd633..c08aeb7ba7f 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2783,9 +2783,11 @@ void Player::InitStatsForLevel(bool reapplyMods) SetAttackPower(0); SetAttackPowerModPos(0); + SetAttackPowerModNeg(0); SetAttackPowerMultiplier(0.0f); SetRangedAttackPower(0); SetRangedAttackPowerModPos(0); + SetRangedAttackPowerModNeg(0); SetRangedAttackPowerMultiplier(0.0f); // Base crit values (will be recalculated in UpdateAllStats() at loading and in _ApplyAllStatBonuses() at reset diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp index 142affc27cf..5dccf992645 100644 --- a/src/server/game/Entities/Unit/StatSystem.cpp +++ b/src/server/game/Entities/Unit/StatSystem.cpp @@ -475,13 +475,19 @@ void Player::UpdateAttackPowerAndDamage(bool ranged) if (ranged) { SetRangedAttackPower(int32(base_attPower)); - SetRangedAttackPowerModPos(int32(attPowerMod)); + if (attPowerMod >= 0) + SetRangedAttackPowerModPos(int32(attPowerMod)); + if (attPowerMod <= 0) + SetRangedAttackPowerModNeg(int32(attPowerMod)); SetRangedAttackPowerMultiplier(attPowerMultiplier); } else { SetAttackPower(int32(base_attPower)); - SetAttackPowerModPos(int32(attPowerMod)); + if (attPowerMod >= 0) + SetAttackPowerModPos(int32(attPowerMod)); + if (attPowerMod <= 0) + SetAttackPowerModNeg(int32(attPowerMod)); SetAttackPowerMultiplier(attPowerMultiplier); } @@ -1051,13 +1057,19 @@ void Creature::UpdateAttackPowerAndDamage(bool ranged) if (ranged) { SetRangedAttackPower(int32(baseAttackPower)); - SetRangedAttackPowerModPos(int32(attackPowerMod)); + if (attackPowerMod >= 0) + SetRangedAttackPowerModPos(int32(attackPowerMod)); + if (attackPowerMod <= 0) + SetRangedAttackPowerModNeg(int32(attackPowerMod)); SetRangedAttackPowerMultiplier(attackPowerMultiplier); } else { SetAttackPower(int32(baseAttackPower)); - SetAttackPowerModPos(int32(attackPowerMod)); + if (attackPowerMod >= 0) + SetAttackPowerModPos(int32(attackPowerMod)); + if (attackPowerMod <= 0) + SetAttackPowerModNeg(int32(attackPowerMod)); SetAttackPowerMultiplier(attackPowerMultiplier); } |