diff options
| author | Shauren <shauren.trinity@gmail.com> | 2016-11-06 00:14:50 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-11-06 00:14:50 +0100 |
| commit | 39df5e9ead83783585590241aa21014e550f68a2 (patch) | |
| tree | 4c302338833d656eaf991599fd5cb1c6d2da4ae5 /src/server/game/Entities | |
| parent | 56a7e86a2869e0b179c7ccac8221fac2979560e6 (diff) | |
Core/Stats: Updated handling crit chance - removed school specific crit chances
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 3 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/StatSystem.cpp | 23 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 6 |
4 files changed, 6 insertions, 28 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f64078f8117..38675cf6b52 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5086,7 +5086,7 @@ void Player::UpdateRating(CombatRating cr) break; case CR_CRIT_SPELL: if (affectStats) - UpdateAllSpellCritChances(); + UpdateSpellCritChance(); break; case CR_MULTISTRIKE: case CR_READINESS: diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 068d253610f..97fe7df32c1 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1966,8 +1966,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> void UpdateRangedHitChances(); void UpdateSpellHitChances(); - void UpdateAllSpellCritChances(); - void UpdateSpellCritChance(uint32 school); + void UpdateSpellCritChance(); void UpdateArmorPenetration(int32 amount); void UpdateExpertise(WeaponAttackType attType); void ApplyManaRegenBonus(int32 amount, bool apply); diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp index b9b0dca17c1..04124e71c6e 100644 --- a/src/server/game/Entities/Unit/StatSystem.cpp +++ b/src/server/game/Entities/Unit/StatSystem.cpp @@ -114,7 +114,7 @@ bool Player::UpdateStats(Stats stat) UpdateMaxHealth(); break; case STAT_INTELLECT: - UpdateAllSpellCritChances(); + UpdateSpellCritChance(); UpdateArmor(); //SPELL_AURA_MOD_RESISTANCE_OF_INTELLECT_PERCENT, only armor currently break; default: @@ -201,7 +201,7 @@ bool Player::UpdateAllStats() UpdateAllRatings(); UpdateAllCritPercentages(); - UpdateAllSpellCritChances(); + UpdateSpellCritChance(); UpdateBlockPercentage(); UpdateParryPercentage(); UpdateDodgePercentage(); @@ -636,27 +636,18 @@ void Player::UpdateDodgePercentage() SetStatFloatValue(PLAYER_DODGE_PERCENTAGE, value); } -void Player::UpdateSpellCritChance(uint32 school) +void Player::UpdateSpellCritChance() { - // For normal school set zero crit chance - if (school == SPELL_SCHOOL_NORMAL) - { - SetFloatValue(PLAYER_SPELL_CRIT_PERCENTAGE1, 0.0f); - return; - } - // For others recalculate it from: float crit = 5.0f; // Increase crit from SPELL_AURA_MOD_SPELL_CRIT_CHANCE crit += GetTotalAuraModifier(SPELL_AURA_MOD_SPELL_CRIT_CHANCE); // Increase crit from SPELL_AURA_MOD_CRIT_PCT crit += GetTotalAuraModifier(SPELL_AURA_MOD_CRIT_PCT); - // Increase crit by school from SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL - crit += GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, 1<<school); // Increase crit from spell crit ratings crit += GetRatingBonusValue(CR_CRIT_SPELL); // Store crit value - SetFloatValue(PLAYER_SPELL_CRIT_PERCENTAGE1 + school, crit); + SetFloatValue(PLAYER_SPELL_CRIT_PERCENTAGE1, crit); } void Player::UpdateArmorPenetration(int32 amount) @@ -683,12 +674,6 @@ void Player::UpdateSpellHitChances() m_modSpellHitChance += GetRatingBonusValue(CR_HIT_SPELL); } -void Player::UpdateAllSpellCritChances() -{ - for (int i = SPELL_SCHOOL_NORMAL; i < MAX_SPELL_SCHOOL; ++i) - UpdateSpellCritChance(i); -} - void Player::UpdateExpertise(WeaponAttackType attack) { if (attack == RANGED_ATTACK) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ca44e62923d..9e543c2c110 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -8244,10 +8244,7 @@ float Unit::GetUnitSpellCriticalChance(Unit* victim, SpellInfo const* spellProto else if (GetTypeId() == TYPEID_PLAYER) crit_chance = GetFloatValue(PLAYER_SPELL_CRIT_PERCENTAGE1); else - { crit_chance = (float)m_baseSpellCritChance; - crit_chance += GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, schoolMask); - } // taken if (victim) { @@ -8366,10 +8363,7 @@ float Unit::GetUnitSpellCriticalChance(Unit* victim, SpellInfo const* spellProto case SPELL_DAMAGE_CLASS_RANGED: { if (victim) - { crit_chance += GetUnitCriticalChance(attackType, victim); - crit_chance += GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, schoolMask); - } break; } default: |
