Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
- index 76f80b4..2a3975c 100644
- --- a/src/server/game/Entities/Unit/StatSystem.cpp
- +++ b/src/server/game/Entities/Unit/StatSystem.cpp
- @@ -375,57 +375,17 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
- break;
- case CLASS_DRUID:
- {
- - // Check if Predatory Strikes is skilled
- - float mLevelMult = 0.0f;
- - float weapon_bonus = 0.0f;
- - if (IsInFeralForm())
- - {
- - Unit::AuraEffectList const& mDummy = GetAuraEffectsByType(SPELL_AURA_DUMMY);
- - for (Unit::AuraEffectList::const_iterator itr = mDummy.begin(); itr != mDummy.end(); ++itr)
- - {
- - AuraEffect* aurEff = *itr;
- - if (aurEff->GetSpellProto()->SpellIconID == 1563)
- - {
- - switch (aurEff->GetEffIndex())
- - {
- - case 0: // Predatory Strikes (effect 0)
- - mLevelMult = CalculatePctN(1.0f, aurEff->GetAmount());
- - break;
- - case 1: // Predatory Strikes (effect 1)
- - if (Item* mainHand = m_items[EQUIPMENT_SLOT_MAINHAND])
- - {
- - // also gains % attack power from equipped weapon
- - ItemPrototype const *proto = mainHand->GetProto();
- - if (!proto)
- - continue;
- -
- - weapon_bonus = CalculatePctN(float(proto->getFeralBonus()), aurEff->GetAmount());
- - }
- - break;
- - default:
- - break;
- - }
- - }
- - }
- - }
- -
- switch (GetShapeshiftForm())
- - {
- - case FORM_CAT:
- - val2 = getLevel() * (mLevelMult + 2.0f) + GetStat(STAT_STRENGTH) * 2.0f + GetStat(STAT_AGILITY) - 20.0f + weapon_bonus + m_baseFeralAP;
- - break;
- - case FORM_BEAR:
- - case FORM_DIREBEAR:
- - val2 = getLevel() * (mLevelMult + 3.0f) + GetStat(STAT_STRENGTH) * 2.0f - 20.0f + weapon_bonus + m_baseFeralAP;
- - break;
- - case FORM_MOONKIN:
- - val2 = getLevel() * (mLevelMult + 1.5f) + GetStat(STAT_STRENGTH) * 2.0f - 20.0f + m_baseFeralAP;
- - break;
- - default:
- - val2 = GetStat(STAT_STRENGTH) * 2.0f - 20.0f;
- - break;
- - }
- - break;
- + {
- + case FORM_CAT:
- + case FORM_BEAR:
- + val2 = (level * 3.0f) + (GetStat(STAT_STRENGTH) * 2.0f - 20.0f) + (GetStat(STAT_AGILITY) * 2.0f - 20.0f);
- + break;
- + default:
- + val2 = (level * 3.0f) + (GetStat(STAT_STRENGTH) * 2.0f - 20.0f);
- + break;
- + }
- + break;
- }
- case CLASS_MAGE:
- val2 = GetStat(STAT_STRENGTH) - 10.0f;
- @@ -522,30 +481,22 @@ void Player::UpdateShieldBlockValue()
- void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bool addTotalPct, float& min_damage, float& max_damage)
- {
- UnitMods unitMod;
- - UnitMods attPower_pos;
- - UnitMods attPower_neg;
- switch(attType)
- {
- case BASE_ATTACK:
- default:
- unitMod = UNIT_MOD_DAMAGE_MAINHAND;
- - attPower_pos = UNIT_MOD_ATTACK_POWER_POS;
- - attPower_neg = UNIT_MOD_ATTACK_POWER_NEG;
- break;
- case OFF_ATTACK:
- unitMod = UNIT_MOD_DAMAGE_OFFHAND;
- - attPower_pos = UNIT_MOD_ATTACK_POWER_POS;
- - attPower_neg = UNIT_MOD_ATTACK_POWER_NEG;
- break;
- case RANGED_ATTACK:
- unitMod = UNIT_MOD_DAMAGE_RANGED;
- - attPower_pos = UNIT_MOD_ATTACK_POWER_RANGED_POS;
- - attPower_neg = UNIT_MOD_ATTACK_POWER_RANGED_NEG;
- break;
- }
- - float att_speed = GetAPMultiplier(attType,normalized);
- + float att_speed = GetAPMultiplier(attType,normalized);
- float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType)/ 14.0f * att_speed;
- float base_pct = GetModifierValue(unitMod, BASE_PCT);
- @@ -576,11 +518,6 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bo
- weapon_mindamage = BASE_MINDAMAGE;
- weapon_maxdamage = BASE_MAXDAMAGE;
- }
- - else if (attType == RANGED_ATTACK) //add ammo DPS to ranged damage
- - {
- - weapon_mindamage += GetAmmoDPS() * att_speed;
- - weapon_maxdamage += GetAmmoDPS() * att_speed;
- - }
- min_damage = ((base_value + weapon_mindamage) * base_pct + total_value) * total_pct;
- max_damage = ((base_value + weapon_maxdamage) * base_pct + total_value) * total_pct;
Advertisement
Add Comment
Please, Sign In to add comment