aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAntonio Martín Berti <15972392+BertiRean@users.noreply.github.com>2024-05-12 06:15:04 -0300
committerGitHub <noreply@github.com>2024-05-12 11:15:04 +0200
commitd1d8f907fe0f1e42d9a8569ef2afdd89e2739b3a (patch)
treec0e792300f2576253d9b884b064d4d09f2fd7c6a /src
parent7b0d2eb39e7f2b0295b1d40b70b8d757c20f5d72 (diff)
Core/Criteria: Implemented CriteriaType EarnArtifactXP (#29975)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp3
-rw-r--r--src/server/game/DataStores/DBCEnums.h2
-rw-r--r--src/server/game/Entities/Item/Item.cpp2
3 files changed, 5 insertions, 2 deletions
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)