aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index f14ff30d5b6..ed6225b3a5b 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -1128,6 +1128,10 @@ void Unit::CalculateMeleeDamage(Unit* victim, CalcDamageInfo* damageInfo, Weapon
for (uint8 i = 0; i < MAX_ITEM_PROTO_DAMAGES; ++i)
{
+ // only players have secondary weapon damage
+ if (i > 0 && GetTypeId() != TYPEID_PLAYER)
+ break;
+
if (immunedMask & (1 << i))
continue;
@@ -1135,7 +1139,8 @@ void Unit::CalculateMeleeDamage(Unit* victim, CalcDamageInfo* damageInfo, Weapon
bool const addPctMods = (schoolMask & SPELL_SCHOOL_MASK_NORMAL);
uint32 damage = 0;
- damage += CalculateDamage(damageInfo->AttackType, false, addPctMods, (1 << i));
+ uint8 itemDamagesMask = (GetTypeId() == TYPEID_PLAYER) ? (1 << i) : 0;
+ damage += CalculateDamage(damageInfo->AttackType, false, addPctMods, itemDamagesMask);
// Add melee damage bonus
damage = MeleeDamageBonusDone(damageInfo->Target, damage, damageInfo->AttackType, nullptr, schoolMask);
damage = damageInfo->Target->MeleeDamageBonusTaken(this, damage, damageInfo->AttackType, nullptr, schoolMask);