diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index aee8afdb9..944021730 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -293,7 +293,8 @@ void Player::UpdateAttackPowerAndDamage(bool ranged ) case CLASS_DRUID: { //Check if Predatory Strikes is skilled - float mLevelMult = 0.0; + float mLevelBonus = 0.0f; + float mBonusWeaponAtt = 0.0f; switch(m_form) { case FORM_CAT: @@ -304,12 +305,18 @@ void Player::UpdateAttackPowerAndDamage(bool ranged ) Unit::AuraList const& mDummy = GetAurasByType(SPELL_AURA_DUMMY); for(Unit::AuraList::const_iterator itr = mDummy.begin(); itr != mDummy.end(); ++itr) { + if((*itr)->GetSpellProto()->SpellIconID != 1563) + continue; + // Predatory Strikes (effect 0) - if ((*itr)->GetEffIndex() == EFFECT_INDEX_0 && (*itr)->GetSpellProto()->SpellIconID == 1563) - { - mLevelMult = (*itr)->GetModifier()->m_amount / 100.0f; + if ((*itr)->GetEffIndex() == EFFECT_INDEX_0 && IsInFeralForm()) + mLevelBonus = getLevel() * (*itr)->GetModifier()->m_amount / 100.0f; + // Predatory Strikes (effect 1) + else if ((*itr)->GetEffIndex() == EFFECT_INDEX_1) + mBonusWeaponAtt = (*itr)->GetModifier()->m_amount * m_baseFeralAP / 100.0f; + + if (mLevelBonus != 0.0f && mBonusWeaponAtt != 0.0f) break; - } } break; } @@ -319,12 +326,12 @@ void Player::UpdateAttackPowerAndDamage(bool ranged ) switch(m_form) { case FORM_CAT: - val2 = getLevel()*(mLevelMult+2.0f) + GetStat(STAT_STRENGTH)*2.0f + GetStat(STAT_AGILITY) - 20.0f + m_baseFeralAP; break; + val2 = GetStat(STAT_STRENGTH)*2.0f + GetStat(STAT_AGILITY) - 20.0f + mLevelBonus + m_baseFeralAP + mBonusWeaponAtt; break; case FORM_BEAR: case FORM_DIREBEAR: - val2 = getLevel()*(mLevelMult+3.0f) + GetStat(STAT_STRENGTH)*2.0f - 20.0f + m_baseFeralAP; break; + val2 = GetStat(STAT_STRENGTH)*2.0f - 20.0f + mLevelBonus + m_baseFeralAP + mBonusWeaponAtt; break; case FORM_MOONKIN: - val2 = getLevel()*(mLevelMult+1.5f) + GetStat(STAT_STRENGTH)*2.0f - 20.0f + m_baseFeralAP; break; + val2 = GetStat(STAT_STRENGTH)*2.0f - 20.0f + m_baseFeralAP + mBonusWeaponAtt; break; default: val2 = GetStat(STAT_STRENGTH)*2.0f - 20.0f; break; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index aea6e9ca2..6bb14ecc3 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9695" + #define REVISION_NR "9696" #endif // __REVISION_NR_H__