diff options
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 |
3 files changed, 6 insertions, 10 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ffda2efc0b1..897df8b1633 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5889,7 +5889,7 @@ float Player::GetRatingBonusValue(CombatRating cr) const float baseResult = float(GetUInt32Value(PLAYER_FIELD_COMBAT_RATING_1 + cr)) * GetRatingMultiplier(cr); if (cr != CR_RESILIENCE_PLAYER_DAMAGE_TAKEN) return baseResult; - return float(1.0f - pow(0.99f, baseResult)); + return float(1.0f - pow(0.99f, baseResult)) * 100.0f; } float Player::GetExpertiseDodgeOrParryReduction(WeaponAttackType attType) const @@ -5927,7 +5927,7 @@ float Player::OCTRegenMPPerSpirit() void Player::ApplyRatingMod(CombatRating cr, int32 value, bool apply) { - m_baseRatingValue[cr]+=(apply ? value : -value); + m_baseRatingValue[cr] +=(apply ? value : -value); // explicit affected values switch (cr) @@ -5943,14 +5943,12 @@ void Player::ApplyRatingMod(CombatRating cr, int32 value, bool apply) } case CR_HASTE_RANGED: { - float RatingChange = value * GetRatingMultiplier(cr); - ApplyAttackTimePercentMod(RANGED_ATTACK, RatingChange, apply); + ApplyAttackTimePercentMod(RANGED_ATTACK, value * GetRatingMultiplier(cr), apply); break; } case CR_HASTE_SPELL: { - float RatingChange = value * GetRatingMultiplier(cr); - ApplyCastTimePercentMod(RatingChange, apply); + ApplyCastTimePercentMod(value * GetRatingMultiplier(cr), apply); break; } default: diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index e8ac91eb145..f95c808d167 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -15688,8 +15688,8 @@ void Unit::ApplyResilience(Unit const* victim, int32* damage, bool isCrit) const return; if (isCrit) - *damage = target->GetCritDamageReduction(*damage); - *damage = target->GetDamageReduction(*damage); + *damage -= target->GetCritDamageReduction(*damage); + *damage -= target->GetDamageReduction(*damage); } // Melee based spells can be miss, parry or dodge on this step diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 515e7644299..cb58b79794e 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1451,8 +1451,6 @@ class Unit : public WorldObject // player or player's pet resilience (-1%) uint32 GetCritDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_CRIT_TAKEN, 2.2f, 33.0f, damage); } - - // player or player's pet resilience (-1%), cap 100% uint32 GetDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_PLAYER_DAMAGE_TAKEN, 2.0f, 100.0f, damage); } void ApplyResilience(const Unit* victim, int32 * damage, bool isCrit) const; |