diff options
author | robinsch <robin.schriever.hude@web.de> | 2016-06-30 17:17:43 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-06-30 17:17:43 +0200 |
commit | 3213e4712c75dc09f44bc7dc3fca32efb0f94bc1 (patch) | |
tree | 13ba0ba1b4c6b1c0e4c58747d58e93434970e6ae | |
parent | 787206acd76b4b745e37542da49b3e767eaab861 (diff) |
Core/Spells: Rewrite Steady Shot damage to deal correct damage when using Heirloom Weapons (#17481)
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 2a085acda81..2c7ae279e3a 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -596,17 +596,13 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex) if (Player* caster = m_caster->ToPlayer()) { // Add Ammo and Weapon damage plus RAP * 0.1 - if (Item* item = caster->GetWeaponForAttack(RANGED_ATTACK)) - { - ItemTemplate const* weaponTemplate = item->GetTemplate(); - float dmg_min = weaponTemplate->Damage[0].DamageMin; - float dmg_max = weaponTemplate->Damage[0].DamageMax; - if (dmg_max == 0.0f && dmg_min > dmg_max) - damage += int32(dmg_min); - else - damage += irand(int32(dmg_min), int32(dmg_max)); - damage += int32(caster->GetAmmoDPS() * weaponTemplate->Delay * 0.001f); - } + float dmg_min = caster->GetWeaponDamageRange(RANGED_ATTACK, MINDAMAGE); + float dmg_max = caster->GetWeaponDamageRange(RANGED_ATTACK, MAXDAMAGE); + if (dmg_max == 0.0f && dmg_min > dmg_max) + damage += int32(dmg_min); + else + damage += irand(int32(dmg_min), int32(dmg_max)); + damage += int32(caster->GetAmmoDPS() * caster->GetAttackTime(RANGED_ATTACK) * 0.001f); } } break; |