mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-19 22:49:39 -04:00
Core/Items: Implemented artifacts
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
#include "GridNotifiersImpl.h"
|
||||
#include "Group.h"
|
||||
#include "GroupMgr.h"
|
||||
#include "ArtifactPackets.h"
|
||||
#include "MiscPackets.h"
|
||||
#include "ObjectMgr.h"
|
||||
#include "OutdoorPvPMgr.h"
|
||||
@@ -1816,6 +1817,34 @@ void GameObject::Use(Unit* user)
|
||||
player->SetStandState(UnitStandStateType(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->barberChair.chairheight), info->barberChair.SitAnimKit);
|
||||
return;
|
||||
}
|
||||
case GAMEOBJECT_TYPE_ARTIFACT_FORGE:
|
||||
{
|
||||
GameObjectTemplate const* info = GetGOInfo();
|
||||
if (!info)
|
||||
return;
|
||||
|
||||
if (user->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
|
||||
Player* player = user->ToPlayer();
|
||||
if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(info->artifactForge.conditionID1))
|
||||
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)
|
||||
{
|
||||
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());
|
||||
return;
|
||||
}
|
||||
default:
|
||||
if (GetGoType() >= MAX_GAMEOBJECT_TYPE)
|
||||
TC_LOG_ERROR("misc", "GameObject::Use(): unit (type: %u, %s, name: %s) tries to use object (%s, name: %s) of unknown type (%u)",
|
||||
|
||||
Reference in New Issue
Block a user