diff options
| author | Shauren <shauren.trinity@gmail.com> | 2021-02-20 14:00:48 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-02-20 14:00:48 +0100 |
| commit | 31d3080091643d4e348ec53c5bec3caf0e17110f (patch) | |
| tree | 6df7f20f2a01ac9480f46ac9504f82c0b756c5be /src/server/game/Entities/Unit | |
| parent | 411631743adb6438dc7690e5be3a1430080384ec (diff) | |
Core/Players: Corrected shield block value calculations
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index b9718b165dd..614b0ce07db 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1363,7 +1363,7 @@ void Unit::CalculateMeleeDamage(Unit* victim, uint32 damage, CalcDamageInfo* dam damageInfo->HitInfo |= HITINFO_BLOCK; damageInfo->originalDamage = damageInfo->damage; // 30% damage blocked, double blocked amount if block is critical - damageInfo->blocked_amount = CalculatePct(damageInfo->damage, damageInfo->target->isBlockCritical() ? damageInfo->target->GetBlockPercent() * 2 : damageInfo->target->GetBlockPercent()); + damageInfo->blocked_amount = CalculatePct(damageInfo->damage, damageInfo->target->isBlockCritical() ? damageInfo->target->GetBlockPercent(getLevel()) * 2 : damageInfo->target->GetBlockPercent(getLevel())); damageInfo->damage -= damageInfo->blocked_amount; damageInfo->cleanDamage += damageInfo->blocked_amount; break; @@ -1649,7 +1649,7 @@ uint32 Unit::CalcArmorReducedDamage(Unit* attacker, Unit* victim, const uint32 d // Expansion and ContentTuningID necessary? Does Player get a ContentTuningID too ? float armorConstant = sDB2Manager.EvaluateExpectedStat(ExpectedStatType::ArmorConstant, attackerLevel, -2, 0, Classes(attacker->getClass())); - if (!armorConstant) + if (!(armor + armorConstant)) return damage; float mitigation = std::min(armor / (armor + armorConstant), 0.85f); diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 7a9e1cf7ae3..ba8b58e5317 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1233,7 +1233,7 @@ class TC_GAME_API Unit : public WorldObject int32 GetMechanicResistChance(SpellInfo const* spellInfo) const; bool CanUseAttackType(uint8 attacktype) const; - virtual uint32 GetBlockPercent() const { return 30; } + virtual float GetBlockPercent(uint8 /*attackerLevel*/) const { return 30.0f; } float GetWeaponProcChance() const; float GetPPMProcChance(uint32 WeaponSpeed, float PPM, SpellInfo const* spellProto) const; |
