aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrobinsch <robin.schriever.hude@web.de>2016-06-30 17:17:43 +0200
committerShauren <shauren.trinity@gmail.com>2016-06-30 17:17:43 +0200
commit3213e4712c75dc09f44bc7dc3fca32efb0f94bc1 (patch)
tree13ba0ba1b4c6b1c0e4c58747d58e93434970e6ae /src
parent787206acd76b4b745e37542da49b3e767eaab861 (diff)
Core/Spells: Rewrite Steady Shot damage to deal correct damage when using Heirloom Weapons (#17481)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp18
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;