From ec9d624aec9e0a39b1bcee7d4077f46be358faad Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 22 Nov 2019 11:02:04 +0100 Subject: Core/Items: Implement azerite essences * Implement inspecting heart of azeroth data * Fixed heart of azeroth item level - bonuses now apply --- src/server/game/Entities/GameObject/GameObject.cpp | 43 +++++++++++++++++----- 1 file changed, 33 insertions(+), 10 deletions(-) (limited to 'src/server/game/Entities/GameObject') diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index db212bf76d5..7266be71202 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -18,6 +18,8 @@ #include "GameObject.h" #include "ArtifactPackets.h" +#include "AzeriteItem.h" +#include "AzeritePackets.h" #include "Battleground.h" #include "CellImpl.h" #include "CreatureAISelector.h" @@ -1983,18 +1985,39 @@ void GameObject::Use(Unit* user) if (!sConditionMgr->IsPlayerMeetingCondition(player, playerCondition)) return; - Aura const* artifactAura = player->GetAura(ARTIFACTS_ALL_WEAPONS_GENERAL_WEAPON_EQUIPPED_PASSIVE); - Item const* item = artifactAura ? player->GetItemByGuid(artifactAura->GetCastItemGUID()) : nullptr; - if (!item) + switch (info->itemForge.ForgeType) { - player->SendDirectMessage(WorldPackets::Misc::DisplayGameError(GameError::ERR_MUST_EQUIP_ARTIFACT).Write()); - return; - } + case 0: // Artifact Forge + case 1: // Relic Forge + { + Aura const* artifactAura = player->GetAura(ARTIFACTS_ALL_WEAPONS_GENERAL_WEAPON_EQUIPPED_PASSIVE); + Item const* item = artifactAura ? player->GetItemByGuid(artifactAura->GetCastItemGUID()) : nullptr; + if (!item) + { + player->SendDirectMessage(WorldPackets::Misc::DisplayGameError(GameError::ERR_MUST_EQUIP_ARTIFACT).Write()); + return; + } + + WorldPackets::Artifact::ArtifactForgeOpened artifactForgeOpened; + artifactForgeOpened.ArtifactGUID = item->GetGUID(); + artifactForgeOpened.ForgeGUID = GetGUID(); + player->SendDirectMessage(artifactForgeOpened.Write()); + break; + } + case 2: // Heart Forge + { + Item const* item = player->GetItemByEntry(ITEM_ID_HEART_OF_AZEROTH); + if (!item) + return; - WorldPackets::Artifact::ArtifactForgeOpened artifactForgeOpened; - artifactForgeOpened.ArtifactGUID = item->GetGUID(); - artifactForgeOpened.ForgeGUID = GetGUID(); - player->SendDirectMessage(artifactForgeOpened.Write()); + WorldPackets::Azerite::AzeriteEssenceForgeOpened azeriteEssenceForgeOpened; + azeriteEssenceForgeOpened.ForgeGUID = GetGUID(); + player->SendDirectMessage(azeriteEssenceForgeOpened.Write()); + break; + } + default: + break; + } return; } case GAMEOBJECT_TYPE_UI_LINK: -- cgit v1.2.3