From d1d8f907fe0f1e42d9a8569ef2afdd89e2739b3a Mon Sep 17 00:00:00 2001 From: Antonio Martín Berti <15972392+BertiRean@users.noreply.github.com> Date: Sun, 12 May 2024 06:15:04 -0300 Subject: Core/Criteria: Implemented CriteriaType EarnArtifactXP (#29975) --- src/server/game/Achievements/CriteriaHandler.cpp | 3 ++- src/server/game/DataStores/DBCEnums.h | 2 +- src/server/game/Entities/Item/Item.cpp | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src/server') diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index ab9858593ef..87c14eeed78 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -575,6 +575,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0* case CriteriaType::HealingDone: case CriteriaType::EarnArtifactXPForAzeriteItem: case CriteriaType::GainLevels: + case CriteriaType::EarnArtifactXP: SetCriteriaProgress(criteria, miscValue1, referencePlayer, PROGRESS_ACCUMULATE); break; case CriteriaType::KillCreature: @@ -834,7 +835,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0* case CriteriaType::EnterAreaTriggerWithActionSet: case CriteriaType::StartGarrisonMission: case CriteriaType::QualityUpgradedForGarrisonFollower: - case CriteriaType::EarnArtifactXP: case CriteriaType::AnyArtifactPowerRankPurchased: case CriteriaType::CompleteResearchGarrisonTalent: case CriteriaType::RecruitAnyGarrisonTroop: @@ -1218,6 +1218,7 @@ bool CriteriaHandler::IsCompletedCriteria(Criteria const* criteria, uint64 requi case CriteriaType::BuyItemsFromVendors: case CriteriaType::SellItemsToVendors: case CriteriaType::GainLevels: + case CriteriaType::EarnArtifactXP: return progress->Counter >= requiredAmount; case CriteriaType::EarnAchievement: case CriteriaType::CompleteQuest: diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 711d99a3e3b..40146f66c85 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -691,7 +691,7 @@ enum class CriteriaType : int16 QualityUpgradedForGarrisonFollower = 187, /*NYI*/ // Garrison Follower: Quality Upgraded LearnHeirloom = 188, /*NYI*/ // Learn Heirloom "{Item}" LearnAnyHeirloom = 189, /*NYI*/ // Learn Any Heirloom - EarnArtifactXP = 190, /*NYI*/ // Earn Artifact XP + EarnArtifactXP = 190, // Earn Artifact XP AnyArtifactPowerRankPurchased = 191, /*NYI*/ // Artifact Power Ranks Purchased LearnTransmog = 192, /*NYI*/ // Learn Transmog "{ItemModifiedAppearance}" LearnAnyTransmog = 193, /*NYI*/ // Learn Any Transmog diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 00bf2adcd2f..04aed3fa0c4 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -2756,6 +2756,8 @@ void Item::GiveArtifactXp(uint64 amount, Item* sourceItem, uint32 artifactCatego owner->SendDirectMessage(artifactXpGain.Write()); SetState(ITEM_CHANGED, owner); + + owner->UpdateCriteria(CriteriaType::EarnArtifactXP, amount); } void Item::SetFixedLevel(uint8 level) -- cgit v1.2.3