From 141b6e4a9a2eaa55b7f9cb693b00f146bc1586d3 Mon Sep 17 00:00:00 2001 From: Hondacrx Date: Sat, 24 Aug 2024 21:21:53 -0400 Subject: [PATCH] Core/Criteria: Implemented LearnHeirloom and LearnAnyHeirloom criteria types Port From (https://github.com/TrinityCore/TrinityCore/commit/eaa76f0eb2524e4c6c5be1a34d3cde392d35c3de) --- Source/Framework/Constants/AchievementConst.cs | 4 ++-- Source/Game/Achievements/CriteriaHandler.cs | 5 ++++- Source/Game/Entities/Player/CollectionManager.cs | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Source/Framework/Constants/AchievementConst.cs b/Source/Framework/Constants/AchievementConst.cs index 525e99d6c..e61f4d894 100644 --- a/Source/Framework/Constants/AchievementConst.cs +++ b/Source/Framework/Constants/AchievementConst.cs @@ -696,8 +696,8 @@ namespace Framework.Constants 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/Source/Game/Achievements/CriteriaHandler.cs b/Source/Game/Achievements/CriteriaHandler.cs index 9d411b287..7af4a6401 100644 --- a/Source/Game/Achievements/CriteriaHandler.cs +++ b/Source/Game/Achievements/CriteriaHandler.cs @@ -133,6 +133,7 @@ namespace Game.Achievements case CriteriaType.DefeatDungeonEncounter: case CriteriaType.PlaceGarrisonBuilding: case CriteriaType.ActivateAnyGarrisonBuilding: + case CriteriaType.LearnAnyHeirloom: case CriteriaType.HonorLevelIncrease: case CriteriaType.PrestigeLevelIncrease: case CriteriaType.LearnAnyTransmogInSlot: @@ -260,6 +261,7 @@ namespace Game.Achievements case CriteriaType.EnterArea: case CriteriaType.LeaveArea: case CriteriaType.RecruitGarrisonFollower: + case CriteriaType.LearnHeirloom: case CriteriaType.ActivelyReachLevel: case CriteriaType.CollectTransmogSetFromGroup: case CriteriaType.EnterTopLevelArea: @@ -400,7 +402,6 @@ namespace Game.Achievements case CriteriaType.LevelChangedForGarrisonFollower: case CriteriaType.LearnToy: case CriteriaType.LearnAnyToy: - case CriteriaType.LearnAnyHeirloom: case CriteriaType.FindResearchObject: case CriteriaType.ExhaustAnyResearchSite: case CriteriaType.CompleteInternalCriteria: @@ -792,6 +793,8 @@ namespace Game.Achievements 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/Source/Game/Entities/Player/CollectionManager.cs b/Source/Game/Entities/Player/CollectionManager.cs index ef38ddb29..57c1f4553 100644 --- a/Source/Game/Entities/Player/CollectionManager.cs +++ b/Source/Game/Entities/Player/CollectionManager.cs @@ -226,7 +226,11 @@ namespace Game.Entities public void AddHeirloom(uint itemId, HeirloomPlayerFlags flags) { if (UpdateAccountHeirlooms(itemId, flags)) + { + _owner.GetPlayer().UpdateCriteria(CriteriaType.LearnHeirloom, itemId); + _owner.GetPlayer().UpdateCriteria(CriteriaType.LearnAnyHeirloom, 1); _owner.GetPlayer().AddHeirloom(itemId, (uint)flags); + } } public bool HasHeirloom(uint itemId)