aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/GameObject
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-11-22 11:02:04 +0100
committerShauren <shauren.trinity@gmail.com>2019-11-22 11:02:04 +0100
commitec9d624aec9e0a39b1bcee7d4077f46be358faad (patch)
treee5aceec6e06d537fb1966f0ccab913f8558b3b8e /src/server/game/Entities/GameObject
parent2a46798362c7e39544886e406a619360096298a1 (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.cpp43
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: