diff options
| author | Shauren <shauren.trinity@gmail.com> | 2019-11-22 11:02:04 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2019-11-22 11:02:04 +0100 |
| commit | ec9d624aec9e0a39b1bcee7d4077f46be358faad (patch) | |
| tree | e5aceec6e06d537fb1966f0ccab913f8558b3b8e /src/server/game/Entities/GameObject | |
| parent | 2a46798362c7e39544886e406a619360096298a1 (diff) | |
Core/Items: Implement azerite essences
* Implement inspecting heart of azeroth data
* Fixed heart of azeroth item level - bonuses now apply
Diffstat (limited to 'src/server/game/Entities/GameObject')
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 43 |
1 files changed, 33 insertions, 10 deletions
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: |
