From d1c6b9d253faa61246f04058719f7f3c07548165 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 13 Jun 2023 18:56:22 +0200 Subject: Core/Items: Mirror client logic when determining whether to apply feral attack power bonuses or not Closes #28674 --- src/server/game/Entities/Item/ItemTemplate.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/server') diff --git a/src/server/game/Entities/Item/ItemTemplate.cpp b/src/server/game/Entities/Item/ItemTemplate.cpp index a55a90ed77c..13aa6980eb0 100644 --- a/src/server/game/Entities/Item/ItemTemplate.cpp +++ b/src/server/game/Entities/Item/ItemTemplate.cpp @@ -66,8 +66,10 @@ float ItemTemplate::getDPS() const int32 ItemTemplate::getFeralBonus(int32 extraDPS /*= 0*/) const { + constexpr uint32 feralApEnabledInventoryTypeMaks = 1 << INVTYPE_WEAPON | 1 << INVTYPE_2HWEAPON | 1 << INVTYPE_WEAPONMAINHAND | 1 << INVTYPE_WEAPONOFFHAND; + // 0x02A5F3 - is mask for Melee weapon from ItemSubClassMask.dbc - if (Class == ITEM_CLASS_WEAPON && (1 << SubClass) & 0x02A5F3) + if (Class == ITEM_CLASS_WEAPON && (1 << InventoryType) & feralApEnabledInventoryTypeMaks) { int32 bonus = int32((extraDPS + getDPS()) * 14.0f) - 767; if (bonus < 0) -- cgit v1.2.3