From 713f1b1f0694a6402af958774a1bd5b594417fb9 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 27 Nov 2019 11:17:35 -0500 Subject: [PATCH] Core/Items: Disable legion artifacts except fishing artifact Port From (https://github.com/TrinityCore/TrinityCore/commit/e718440599b2ce69a45bfdf0af0aee7d37621072) --- Source/Game/Entities/Item/Item.cs | 9 +++++++++ Source/Game/Entities/Player/Player.Items.cs | 3 +++ Source/Game/Handlers/ArtifactHandler.cs | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Source/Game/Entities/Item/Item.cs b/Source/Game/Entities/Item/Item.cs index 2c6492179..8b2a91f82 100644 --- a/Source/Game/Entities/Item/Item.cs +++ b/Source/Game/Entities/Item/Item.cs @@ -2152,6 +2152,15 @@ namespace Game.Entities SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ItemAppearanceModID), (byte)_bonusData.AppearanceModID); } + public bool IsArtifactDisabled() + { + ArtifactRecord artifact = CliDB.ArtifactStorage.LookupByKey(GetTemplate().GetArtifactID()); + if (artifact != null) + return artifact.ArtifactCategoryID != 2; // fishing artifact + + return true; + } + public ArtifactPower GetArtifactPower(uint artifactPowerId) { var index = m_artifactPowerIdToIndex.LookupByKey(artifactPowerId); diff --git a/Source/Game/Entities/Player/Player.Items.cs b/Source/Game/Entities/Player/Player.Items.cs index a8cb176fe..52f0d2b0c 100644 --- a/Source/Game/Entities/Player/Player.Items.cs +++ b/Source/Game/Entities/Player/Player.Items.cs @@ -5385,6 +5385,9 @@ namespace Game.Entities //Artifact void ApplyArtifactPowers(Item item, bool apply) { + if (item.IsArtifactDisabled()) + return; + foreach (ArtifactPower artifactPower in item.m_itemData.ArtifactPowers) { byte rank = artifactPower.CurrentRankWithBonus; diff --git a/Source/Game/Handlers/ArtifactHandler.cs b/Source/Game/Handlers/ArtifactHandler.cs index 40613fb48..8fdf2034e 100644 --- a/Source/Game/Handlers/ArtifactHandler.cs +++ b/Source/Game/Handlers/ArtifactHandler.cs @@ -34,7 +34,7 @@ namespace Game return; Item artifact = _player.GetItemByGuid(artifactAddPower.ArtifactGUID); - if (!artifact) + if (!artifact || artifact.IsArtifactDisabled()) return; uint currentArtifactTier = artifact.GetModifier(ItemModifier.ArtifactTier); @@ -210,7 +210,7 @@ namespace Game return; Item artifact = _player.GetItemByGuid(confirmArtifactRespec.ArtifactGUID); - if (!artifact) + if (!artifact || artifact.IsArtifactDisabled()) return; ulong xpCost = 0;