diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-06-13 18:56:22 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-06-13 18:56:22 +0200 |
commit | d1c6b9d253faa61246f04058719f7f3c07548165 (patch) | |
tree | 11c24647bf64c72ef017f699fbad5f1e1c40db85 | |
parent | 2cd8b6a5756e0ef8dd69e6b78ee09b72a0d9ddba (diff) |
Core/Items: Mirror client logic when determining whether to apply feral attack power bonuses or not
Closes #28674
-rw-r--r-- | src/server/game/Entities/Item/ItemTemplate.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
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) |