aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-02-25 20:23:14 +0100
committerShauren <shauren.trinity@gmail.com>2012-02-25 20:23:14 +0100
commit63ebdcda5b2a7dbec9b04b50010ea83835d983c0 (patch)
treee6190a2ba5db00b249f80a730675f020494cd82f /src
parent4e1c8e0fa1c117f5400b86df8267f56a0f266239 (diff)
Core/Player: Fixed feral AP applying for non-scaling items
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp15
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);
}