aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorForesterDev <11771800+ForesterDev@users.noreply.github.com>2019-06-15 17:09:52 +0400
committerGiacomo Pozzoni <giacomopoz@gmail.com>2019-06-15 15:09:52 +0200
commit865ab86173b529bd96cbd1b7fb929def9fc895ce (patch)
tree324ba7d109f4ec0f595e84b6f9587b4ebdd3d87b /src
parent0a24a6571b7065d66afe52fc7b0b00f6366272bf (diff)
Core/Entities: fix excessive damage of exotic pets and some creatures (#23403)
* Core/Conditions: implement CONDITION_GAMEMASTER * Core/Entities: fix excessive exotic pet and some creatures damage
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);