aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp5
-rw-r--r--src/server/game/DataStores/DBCEnums.h4
-rw-r--r--src/server/game/Entities/Player/CollectionMgr.cpp4
3 files changed, 10 insertions, 3 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index eaae8708e29..726b3b4579c 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -552,6 +552,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
case CriteriaType::DefeatDungeonEncounter:
case CriteriaType::PlaceGarrisonBuilding:
case CriteriaType::ActivateAnyGarrisonBuilding:
+ case CriteriaType::LearnAnyHeirloom:
case CriteriaType::HonorLevelIncrease:
case CriteriaType::PrestigeLevelIncrease:
case CriteriaType::LearnAnyTransmogInSlot:
@@ -677,6 +678,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
case CriteriaType::EnterArea:
case CriteriaType::LeaveArea:
case CriteriaType::RecruitGarrisonFollower:
+ case CriteriaType::LearnHeirloom:
case CriteriaType::ActivelyReachLevel:
case CriteriaType::CollectTransmogSetFromGroup:
case CriteriaType::EnterTopLevelArea:
@@ -815,7 +817,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
case CriteriaType::LevelChangedForGarrisonFollower:
case CriteriaType::LearnToy:
case CriteriaType::LearnAnyToy:
- case CriteriaType::LearnAnyHeirloom:
case CriteriaType::FindResearchObject:
case CriteriaType::ExhaustAnyResearchSite:
case CriteriaType::CompleteInternalCriteria:
@@ -1207,6 +1208,8 @@ bool CriteriaHandler::IsCompletedCriteria(Criteria const* criteria, uint64 requi
case CriteriaType::BattlePetReachLevel:
case CriteriaType::ActivelyEarnPetLevel:
case CriteriaType::DefeatDungeonEncounter:
+ case CriteriaType::LearnHeirloom:
+ case CriteriaType::LearnAnyHeirloom:
case CriteriaType::LearnAnyTransmogInSlot:
case CriteriaType::ParagonLevelIncreaseWithFaction:
case CriteriaType::PlayerHasEarnedHonor:
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index d3053a993d8..5d0e393a4a9 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -689,8 +689,8 @@ enum class CriteriaType : int16
LearnToy = 185, /*NYI*/ // Learn Toy "{Item}"
LearnAnyToy = 186, /*NYI*/ // Learn Any Toy
QualityUpgradedForGarrisonFollower = 187, /*NYI*/ // Garrison Follower: Quality Upgraded
- LearnHeirloom = 188, /*NYI*/ // Learn Heirloom "{Item}"
- LearnAnyHeirloom = 189, /*NYI*/ // Learn Any Heirloom
+ LearnHeirloom = 188, // Learn Heirloom "{Item}"
+ LearnAnyHeirloom = 189, // Learn Any Heirloom
EarnArtifactXP = 190, // Earn Artifact XP
AnyArtifactPowerRankPurchased = 191, /*NYI*/ // Artifact Power Ranks Purchased
LearnTransmog = 192, /*NYI*/ // Learn Transmog "{ItemModifiedAppearance}"
diff --git a/src/server/game/Entities/Player/CollectionMgr.cpp b/src/server/game/Entities/Player/CollectionMgr.cpp
index 3160d99b27a..ba4fb42b5fc 100644
--- a/src/server/game/Entities/Player/CollectionMgr.cpp
+++ b/src/server/game/Entities/Player/CollectionMgr.cpp
@@ -237,7 +237,11 @@ void CollectionMgr::LoadHeirlooms()
void CollectionMgr::AddHeirloom(uint32 itemId, uint32 flags)
{
if (UpdateAccountHeirlooms(itemId, flags))
+ {
+ _owner->GetPlayer()->UpdateCriteria(CriteriaType::LearnHeirloom, itemId);
+ _owner->GetPlayer()->UpdateCriteria(CriteriaType::LearnAnyHeirloom, 1);
_owner->GetPlayer()->AddHeirloom(itemId, flags);
+ }
}
void CollectionMgr::UpgradeHeirloom(uint32 itemId, int32 castItem)