aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Martín Berti <15972392+BertiRean@users.noreply.github.com>2024-05-13 15:12:00 -0300
committerOvahlord <dreadkiller@gmx.de>2024-05-28 17:01:15 +0200
commit207f2d49ea14237195739cd80b7f35ac7397b21d (patch)
treef387d10962c0facdb6363457fef38499c01fdf72
parent73972e4067a6d3fdf764f2a8b30c568f6cbda1fb (diff)
Core/Criteria: Implemented LearnAnyTransmog CriteriaType (#29981)
(cherry picked from commit d60f0e2b28d8d0aba011ad80c65d4a8da85e5026)
-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/Player/CollectionMgr.cpp2
3 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 2811c6b42c4..18b5583b5d0 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -551,6 +551,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
case CriteriaType::PlaceGarrisonBuilding:
case CriteriaType::ActivateAnyGarrisonBuilding:
case CriteriaType::LearnAnyHeirloom:
+ case CriteriaType::LearnAnyTransmog:
case CriteriaType::HonorLevelIncrease:
case CriteriaType::PrestigeLevelIncrease:
case CriteriaType::LearnAnyTransmogInSlot:
@@ -1279,6 +1280,7 @@ bool CriteriaHandler::IsCompletedCriteria(Criteria const* criteria, uint64 requi
case CriteriaType::AbandonAnyQuest:
case CriteriaType::BuyTaxi:
case CriteriaType::AcceptSummon:
+ case CriteriaType::LearnAnyTransmog:
default:
break;
}
@@ -1385,6 +1387,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
case CriteriaType::BuyItemsFromVendors:
case CriteriaType::SellItemsToVendors:
case CriteriaType::GainLevels:
+ case CriteriaType::LearnAnyTransmog:
if (!miscValue1)
return false;
break;
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index d87e68054e4..90255b0600c 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -694,7 +694,7 @@ enum class CriteriaType : int16
EarnArtifactXP = 190, /*NYI*/ // Earn Artifact XP
AnyArtifactPowerRankPurchased = 191, /*NYI*/ // Artifact Power Ranks Purchased
LearnTransmog = 192, /*NYI*/ // Learn Transmog "{ItemModifiedAppearance}"
- LearnAnyTransmog = 193, /*NYI*/ // Learn Any Transmog
+ LearnAnyTransmog = 193, // Learn Any Transmog
HonorLevelIncrease = 194, // (Player) honor level increase
PrestigeLevelIncrease = 195, /*NYI*/ // (Player) prestige level increase
ActivelyReachLevel = 196, // Actively level to level {#Level}
diff --git a/src/server/game/Entities/Player/CollectionMgr.cpp b/src/server/game/Entities/Player/CollectionMgr.cpp
index 03dc764e60a..918aef37960 100644
--- a/src/server/game/Entities/Player/CollectionMgr.cpp
+++ b/src/server/game/Entities/Player/CollectionMgr.cpp
@@ -765,6 +765,8 @@ void CollectionMgr::AddItemAppearance(ItemModifiedAppearanceEntry const* itemMod
_temporaryAppearances.erase(temporaryAppearance);
}
+ _owner->GetPlayer()->UpdateCriteria(CriteriaType::LearnAnyTransmog, 1);
+
if (ItemEntry const* item = sItemStore.LookupEntry(itemModifiedAppearance->ItemID))
{
int32 transmogSlot = ItemTransmogrificationSlots[item->InventoryType];