diff options
author | Shauren <shauren.trinity@gmail.com> | 2012-02-25 20:23:14 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2012-02-25 20:23:14 +0100 |
commit | 63ebdcda5b2a7dbec9b04b50010ea83835d983c0 (patch) | |
tree | e6190a2ba5db00b249f80a730675f020494cd82f | |
parent | 4e1c8e0fa1c117f5400b86df8267f56a0f266239 (diff) |
Core/Player: Fixed feral AP applying for non-scaling items
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e6afd44e489..4b3c7f9a83a 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7943,10 +7943,19 @@ void Player::_ApplyItemBonuses(ItemTemplate const* proto, uint8 slot, bool apply if (CanUseAttackType(attType)) _ApplyWeaponDamage(slot, proto, ssv, apply); - // Apply feral bonus from ScalingStatValue if set - if (ssv && getClass() == CLASS_DRUID) + + // Druids get feral AP bonus from weapon dps (also use DPS from ScalingStatValue) + if (getClass() == CLASS_DRUID) { - int32 feral_bonus = ssv->getFeralBonus(proto->ScalingStatValue) + proto->getFeralBonus(ssv->getDPSMod(proto->ScalingStatValue)); + int32 dpsMod = 0; + int32 feral_bonus = 0; + if (ssv) + { + dpsMod = ssv->getDPSMod(proto->ScalingStatValue); + feral_bonus += ssv->getFeralBonus(proto->ScalingStatValue); + } + + feral_bonus += proto->getFeralBonus(dpsMod); if (feral_bonus) ApplyFeralAPBonus(feral_bonus, apply); } |