Core/Items: Disable legion artifacts except fishing artifact

This commit is contained in:
Shauren
2019-11-24 13:50:57 +01:00
parent 599722eba0
commit e718440599
4 changed files with 15 additions and 2 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;