From d934824421c83598853487c5cc9e4cbb3c5d0006 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 5 Dec 2019 00:12:35 +0100 Subject: Core/Items: Implement azerite empowered items --- src/server/scripts/Spells/spell_item.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index d1c611dcd6e..b5b7af67161 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -22,6 +22,7 @@ */ #include "ScriptMgr.h" +#include "AzeritePackets.h" #include "Battleground.h" #include "CreatureAIImpl.h" #include "DB2Stores.h" @@ -4776,16 +4777,24 @@ class spell_item_heart_of_azeroth : public AuraScript void SetEquippedFlag(AuraEffect const* /*effect*/, AuraEffectHandleModes /*mode*/) { - if (Player* target = GetTarget()->ToPlayer()) - if (Item* item = target->GetItemByGuid(GetAura()->GetCastItemGUID())) - item->AddItemFlag2(ITEM_FIELD_FLAG2_HEART_OF_AZEROTH_EQUIPPED); + SetState(true); } void ClearEquippedFlag(AuraEffect const* /*effect*/, AuraEffectHandleModes /*mode*/) + { + SetState(false); + } + + void SetState(bool equipped) { if (Player* target = GetTarget()->ToPlayer()) - if (Item* item = target->GetItemByGuid(GetAura()->GetCastItemGUID())) - item->RemoveItemFlag2(ITEM_FIELD_FLAG2_HEART_OF_AZEROTH_EQUIPPED); + { + target->ApplyAllAzeriteEmpoweredItemMods(equipped); + + WorldPackets::Azerite::AzeriteEmpoweredItemEquippedStatusChanged statusChanged; + statusChanged.IsHeartEquipped = equipped; + target->SendDirectMessage(statusChanged.Write()); + } } void Register() -- cgit v1.2.3