aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp13
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp17
-rw-r--r--src/server/game/Entities/Unit/Unit.h3
4 files changed, 17 insertions, 18 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 0e18bffc92e..e2033dd834c 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -7907,6 +7907,19 @@ void Player::ApplyItemDependentAuras(Item* item, bool apply)
RemoveItemDependentAurasAndCasts(item);
}
+bool Player::CheckAttackFitToAuraRequirement(WeaponAttackType attackType, AuraEffect const* aurEff) const
+{
+ SpellInfo const* spellInfo = aurEff->GetSpellInfo();
+ if (spellInfo->EquippedItemClass == -1)
+ return true;
+
+ Item* item = GetWeaponForAttack(attackType, true);
+ if (!item || !item->IsFitToSpellRequirements(spellInfo))
+ return false;
+
+ return true;
+}
+
void Player::ApplyItemEquipSpell(Item* item, bool apply, bool form_change)
{
if (!item)
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 808078d74c0..9d8c9c38f3b 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1973,6 +1973,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void UpdateWeaponDependentAuras(WeaponAttackType attackType);
void ApplyItemDependentAuras(Item* item, bool apply);
+ bool CheckAttackFitToAuraRequirement(WeaponAttackType attackType, AuraEffect const* aurEff) const override;
+
void _ApplyItemMods(Item* item, uint8 slot, bool apply, bool updateItemAuras = true);
void _RemoveAllItemMods();
void _ApplyAllItemMods();
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index b1096c08e3a..108396fdf68 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -10241,23 +10241,6 @@ void Unit::UpdateUnitMod(UnitMods unitMod)
}
}
-bool Unit::CheckAttackFitToAuraRequirement(WeaponAttackType attackType, AuraEffect const* aurEff) const
-{
- // only players have item requirements
- if (GetTypeId() != TYPEID_PLAYER)
- return true;
-
- SpellInfo const* spellInfo = aurEff->GetSpellInfo();
- if (spellInfo->EquippedItemClass == -1)
- return true;
-
- Item* item = ToPlayer()->GetWeaponForAttack(attackType, true);
- if (!item || !item->IsFitToSpellRequirements(spellInfo))
- return false;
-
- return true;
-}
-
void Unit::UpdateDamageDoneMods(WeaponAttackType attackType)
{
UnitMods unitMod;
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 15c5e3cd535..a0ebe4ddf10 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1940,7 +1940,8 @@ class TC_GAME_API Unit : public WorldObject
void UpdateUnitMod(UnitMods unitMod);
- bool CheckAttackFitToAuraRequirement(WeaponAttackType attackType, AuraEffect const* aurEff) const;
+ // only players have item requirements
+ virtual bool CheckAttackFitToAuraRequirement(WeaponAttackType /*attackType*/, AuraEffect const* /*aurEff*/) const { return true; }
virtual void UpdateDamageDoneMods(WeaponAttackType attackType);
void UpdateAllDamageDoneMods();