mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 01:15:35 +01:00
Core/Items: Disable legion artifacts except fishing artifact
This commit is contained in:
@@ -2495,6 +2495,14 @@ void Item::ClearBonuses()
|
||||
SetUpdateFieldValue(m_values.ModifyValue(&Item::m_itemData).ModifyValue(&UF::ItemData::ItemAppearanceModID), _bonusData.AppearanceModID);
|
||||
}
|
||||
|
||||
bool Item::IsArtifactDisabled() const
|
||||
{
|
||||
if (ArtifactEntry const* artifact = sArtifactStore.LookupEntry(GetTemplate()->GetArtifactID()))
|
||||
return artifact->ArtifactCategoryID != 2; // fishing artifact
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
UF::ArtifactPower const* Item::GetArtifactPower(uint32 artifactPowerId) const
|
||||
{
|
||||
auto indexItr = m_artifactPowerIdToIndex.find(artifactPowerId);
|
||||
|
||||
@@ -387,6 +387,8 @@ class TC_GAME_API Item : public Object
|
||||
ObjectGuid GetChildItem() const { return m_childItem; }
|
||||
void SetChildItem(ObjectGuid childItem) { m_childItem = childItem; }
|
||||
|
||||
bool IsArtifactDisabled() const;
|
||||
|
||||
UF::ArtifactPower const* GetArtifactPower(uint32 artifactPowerId) const;
|
||||
void AddArtifactPower(ArtifactPowerData const* artifactPower);
|
||||
void SetArtifactPower(uint16 artifactPowerId, uint8 purchasedRank, uint8 currentRankWithBonus);
|
||||
|
||||
@@ -7842,6 +7842,9 @@ void Player::UpdateItemSetAuras(bool formChange /*= false*/)
|
||||
|
||||
void Player::ApplyArtifactPowers(Item* item, bool apply)
|
||||
{
|
||||
if (item->IsArtifactDisabled())
|
||||
return;
|
||||
|
||||
for (UF::ArtifactPower const& artifactPower : item->m_itemData->ArtifactPowers)
|
||||
{
|
||||
uint8 rank = artifactPower.CurrentRankWithBonus;
|
||||
|
||||
@@ -32,7 +32,7 @@ void WorldSession::HandleArtifactAddPower(WorldPackets::Artifact::ArtifactAddPow
|
||||
return;
|
||||
|
||||
Item* artifact = _player->GetItemByGuid(artifactAddPower.ArtifactGUID);
|
||||
if (!artifact)
|
||||
if (!artifact || artifact->IsArtifactDisabled())
|
||||
return;
|
||||
|
||||
uint32 currentArtifactTier = artifact->GetModifier(ITEM_MODIFIER_ARTIFACT_TIER);
|
||||
@@ -204,7 +204,7 @@ void WorldSession::HandleConfirmArtifactRespec(WorldPackets::Artifact::ConfirmAr
|
||||
return;
|
||||
|
||||
Item* artifact = _player->GetItemByGuid(confirmArtifactRespec.ArtifactGUID);
|
||||
if (!artifact)
|
||||
if (!artifact || artifact->IsArtifactDisabled())
|
||||
return;
|
||||
|
||||
uint64 xpCost = 0;
|
||||
|
||||
Reference in New Issue
Block a user