diff options
author | Warpten <vertozor@gmail.com> | 2014-01-14 20:44:56 +0100 |
---|---|---|
committer | Warpten <vertozor@gmail.com> | 2014-01-14 20:44:56 +0100 |
commit | b2de15ef88462f9ef9e7294242af9c90e2777fd5 (patch) | |
tree | ca61afa148e51e7cf75d9e1108d4ef78fdd386dd /src | |
parent | f9ccb6f585a4714a93f8422b31d89fd8287d3631 (diff) |
Core/Players: Fixed some more "issues" with resilience.
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 5 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 4 |
3 files changed, 8 insertions, 11 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 44c2b4a8da9..1eba9687b87 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1016,7 +1016,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama damage -= damageInfo->blocked; } - ApplyResilience(victim, &damage, crit); + ApplyResilience(victim, &damage); break; } // Magical Attacks @@ -1030,7 +1030,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama damage = SpellCriticalDamageBonus(spellInfo, damage, victim); } - ApplyResilience(victim, &damage, crit); + ApplyResilience(victim, &damage); break; } default: @@ -1242,7 +1242,7 @@ void Unit::CalculateMeleeDamage(Unit* victim, uint32 damage, CalcDamageInfo* dam damageInfo->HitInfo |= HITINFO_AFFECTS_VICTIM; int32 resilienceReduction = damageInfo->damage; - ApplyResilience(victim, &resilienceReduction, damageInfo->hitOutCome == MELEE_HIT_CRIT); + ApplyResilience(victim, &resilienceReduction); resilienceReduction = damageInfo->damage - resilienceReduction; damageInfo->damage -= resilienceReduction; damageInfo->cleanDamage += resilienceReduction; @@ -14438,7 +14438,7 @@ void Unit::SendPlaySpellVisualKit(uint32 id, uint32 unkParam) SendMessageToSet(&data, true); } -void Unit::ApplyResilience(Unit const* victim, int32* damage, bool isCrit) const +void Unit::ApplyResilience(Unit const* victim, int32* damage) const { // player mounted on multi-passenger mount is also classified as vehicle if (IsVehicle() || (victim->IsVehicle() && victim->GetTypeId() != TYPEID_PLAYER)) @@ -14457,8 +14457,6 @@ void Unit::ApplyResilience(Unit const* victim, int32* damage, bool isCrit) const if (!target) return; - if (isCrit) - *damage -= target->GetCritDamageReduction(*damage); *damage -= target->GetDamageReduction(*damage); } diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index ed26722931f..45ac5f6a591 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1473,10 +1473,9 @@ class Unit : public WorldObject void DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss); // player or player's pet resilience (-1%) - uint32 GetCritDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_CRIT_TAKEN, 2.2f, 33.0f, damage); } - uint32 GetDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_PLAYER_DAMAGE_TAKEN, 2.0f, 100.0f, damage); } + uint32 GetDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_PLAYER_DAMAGE_TAKEN, 1.0f, 100.0f, damage); } - void ApplyResilience(Unit const* victim, int32 * damage, bool isCrit) const; + void ApplyResilience(Unit const* victim, int32* damage) const; float MeleeSpellMissChance(Unit const* victim, WeaponAttackType attType, uint32 spellId) const; SpellMissInfo MeleeSpellHitResult(Unit* victim, SpellInfo const* spellInfo); diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 8eabf4d148a..3357b856a56 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5835,7 +5835,7 @@ void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const damage = caster->SpellCriticalDamageBonus(m_spellInfo, damage, target); int32 dmg = damage; - caster->ApplyResilience(target, &dmg, crit); + caster->ApplyResilience(target, &dmg); damage = dmg; caster->CalcAbsorbResist(target, GetSpellInfo()->GetSchoolMask(), DOT, damage, &absorb, &resist, GetSpellInfo()); @@ -5902,7 +5902,7 @@ void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) c } int32 dmg = damage; - caster->ApplyResilience(target, &dmg, crit); + caster->ApplyResilience(target, &dmg); damage = dmg; caster->CalcAbsorbResist(target, GetSpellInfo()->GetSchoolMask(), DOT, damage, &absorb, &resist, m_spellInfo); |