aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorQAston <qaston@gmail.com>2013-02-25 08:21:35 -0800
committerQAston <qaston@gmail.com>2013-02-25 08:21:35 -0800
commitca19852510a991e53b9c873c27eacab8d6fdb04e (patch)
tree6a54c5b2024ec03f4a354f60671010b7af185d5d /src/server/game/Entities/Unit
parent9fbbcb5371ef3b55e1cbaa86a65c1fe95755fac9 (diff)
parent760018647dd2f6bd728676e576bacbfed00020fb (diff)
Merge pull request #9193 from drskull/master
Core: Fix Feral Spirit attack speed and update attack power
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index 0024d726060..94b4047e943 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -441,6 +441,7 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
SetFloatValue(index_mult, attPowerMultiplier); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
Pet* pet = GetPet(); //update pet's AP
+ Guardian* guardian = GetGuardianPet();
//automatically update weapon damage after attack power modification
if (ranged)
{
@@ -456,8 +457,11 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
if (getClass() == CLASS_SHAMAN || getClass() == CLASS_PALADIN) // mental quickness
UpdateSpellDamageAndHealingBonus();
- if (pet && pet->IsPetGhoul()) // At ranged attack change for hunter pet
+ if (pet && pet->IsPetGhoul()) // At melee attack power change for DK pet
pet->UpdateAttackPowerAndDamage();
+
+ if (guardian && guardian->IsSpiritWolf()) // At melee attack power change for Shaman feral spirit
+ guardian->UpdateAttackPowerAndDamage();
}
}
@@ -1305,6 +1309,14 @@ void Guardian::UpdateAttackPowerAndDamage(bool ranged)
bonusAP = owner->GetTotalAttackPowerValue(BASE_ATTACK) * 0.22f;
SetBonusDamage(int32(owner->GetTotalAttackPowerValue(BASE_ATTACK) * 0.1287f));
}
+ else if (IsSpiritWolf()) //wolf benefit from shaman's attack power
+ {
+ float dmg_multiplier = 0.31f;
+ if (m_owner->GetAuraEffect(63271, 0)) // Glyph of Feral Spirit
+ dmg_multiplier = 0.61f;
+ bonusAP = owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier;
+ SetBonusDamage(int32(owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier));
+ }
//demons benefit from warlocks shadow or fire damage
else if (isPet())
{