Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
- index c12c1dd..913a38e 100644
- --- a/src/server/game/Entities/Player/Player.cpp
- +++ b/src/server/game/Entities/Player/Player.cpp
- @@ -5590,7 +5590,7 @@ float Player::GetTotalBaseModValue(BaseModGroup modGroup) const
- uint32 Player::GetShieldBlockValue() const
- {
- - float value = (m_auraBaseMod[SHIELD_BLOCK_VALUE][FLAT_MOD] + GetStat(STAT_STRENGTH) * 0.5f - 10)*m_auraBaseMod[SHIELD_BLOCK_VALUE][PCT_MOD];
- + float value = 30.0f + m_auraBaseMod[SHIELD_BLOCK_VALUE][PCT_MOD]*100 - 100;
- value = (value < 0) ? 0 : value;
- diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
- index 1dc416d..76f80b4 100644
- --- a/src/server/game/Entities/Unit/StatSystem.cpp
- +++ b/src/server/game/Entities/Unit/StatSystem.cpp
- @@ -76,7 +76,6 @@ bool Player::UpdateStats(Stats stat)
- switch(stat)
- {
- case STAT_STRENGTH:
- - UpdateShieldBlockValue();
- break;
- case STAT_AGILITY:
- UpdateAllCritPercentages();
- diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
- index 30c137a..defacf3 100644
- --- a/src/server/game/Entities/Unit/Unit.cpp
- +++ b/src/server/game/Entities/Unit/Unit.cpp
- @@ -1123,12 +1123,10 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage *damageInfo, int32 dama
- // Spell weapon based damage CAN BE crit & blocked at same time
- if (blocked)
- {
- - damageInfo->blocked = pVictim->GetShieldBlockValue();
- + damageInfo->blocked = damageInfo->damage * pVictim->GetShieldBlockValue() / 100;
- //double blocked amount if block is critical
- if (pVictim->isBlockCritical())
- damageInfo->blocked += damageInfo->blocked;
- - if (damage < int32(damageInfo->blocked))
- - damageInfo->blocked = uint32(damage);
- damage -= damageInfo->blocked;
- }
- @@ -1326,18 +1324,11 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
- damageInfo->TargetState = VICTIMSTATE_HIT;
- damageInfo->HitInfo |= HITINFO_BLOCK;
- damageInfo->procEx |= PROC_EX_BLOCK;
- - damageInfo->blocked_amount = damageInfo->target->GetShieldBlockValue();
- + damageInfo->blocked_amount = damageInfo->damage * damageInfo->target->GetShieldBlockValue() / 100;
- //double blocked amount if block is critical
- if (damageInfo->target->isBlockCritical())
- damageInfo->blocked_amount+=damageInfo->blocked_amount;
- - if (damageInfo->blocked_amount >= damageInfo->damage)
- - {
- - damageInfo->TargetState = VICTIMSTATE_BLOCKS;
- - damageInfo->blocked_amount = damageInfo->damage;
- - damageInfo->procEx |= PROC_EX_FULL_BLOCK;
- - }
- - else
- - damageInfo->procEx |= PROC_EX_NORMAL_HIT;
- + damageInfo->procEx |= PROC_EX_NORMAL_HIT;
- damageInfo->damage -= damageInfo->blocked_amount;
- damageInfo->cleanDamage += damageInfo->blocked_amount;
- }
Advertisement
Add Comment
Please, Sign In to add comment