From 1f645099b6ce8642b6f5437e2d7057f2fbad2dd2 Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Tue, 7 Dec 2021 04:24:52 +0330 Subject: [PATCH] fix(Core/Spells): Steady Shot now deals the correct damage when using Heirloom Weapons. --- src/server/game/Spells/SpellEffects.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 337fd4c7e..0ccae8133 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -617,17 +617,17 @@ 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)) + 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) { - 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); + damage += int32(dmg_min); } + else + { + damage += irand(int32(dmg_min), int32(dmg_max)); + } + damage += int32(caster->GetAmmoDPS() * caster->GetAttackTime(RANGED_ATTACK) * 0.001f); } } break;