aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 580f21843d0..b8d8c1c2ce8 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -7924,6 +7924,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 formChange /*= false*/)
{
if (!item)
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 554c9090212..6bc50b7dc40 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2031,6 +2031,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 be6324229d8..8de9a90ac44 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -9568,23 +9568,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 0838d2b226b..32e109a5392 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1700,7 +1700,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();