From c5503857208d092b6e7b55fa4d3155b5eb47b702 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 26 Sep 2025 10:27:02 +0200 Subject: Core/Transmog: Mark tracking quests as completed when completing transmog sets --- src/server/game/Entities/Player/CollectionMgr.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Player/CollectionMgr.cpp b/src/server/game/Entities/Player/CollectionMgr.cpp index b8ccaf82045..d99e52237fa 100644 --- a/src/server/game/Entities/Player/CollectionMgr.cpp +++ b/src/server/game/Entities/Player/CollectionMgr.cpp @@ -746,19 +746,29 @@ void CollectionMgr::AddItemAppearance(ItemModifiedAppearanceEntry const* itemMod _temporaryAppearances.erase(temporaryAppearance); } - _owner->GetPlayer()->UpdateCriteria(CriteriaType::LearnAnyTransmog, 1); + owner->UpdateCriteria(CriteriaType::LearnAnyTransmog, 1); if (ItemEntry const* item = sItemStore.LookupEntry(itemModifiedAppearance->ItemID)) { int32 transmogSlot = ItemTransmogrificationSlots[item->InventoryType]; if (transmogSlot >= 0) - _owner->GetPlayer()->UpdateCriteria(CriteriaType::LearnAnyTransmogInSlot, transmogSlot, itemModifiedAppearance->ID); + owner->UpdateCriteria(CriteriaType::LearnAnyTransmogInSlot, transmogSlot, itemModifiedAppearance->ID); } if (std::vector const* sets = sDB2Manager.GetTransmogSetsForItemModifiedAppearance(itemModifiedAppearance->ID)) + { for (TransmogSetEntry const* set : *sets) + { if (IsSetCompleted(set->ID)) - _owner->GetPlayer()->UpdateCriteria(CriteriaType::CollectTransmogSetFromGroup, set->TransmogSetGroupID); + { + + if (Quest const* quest = sObjectMgr->GetQuestTemplate(set->TrackingQuestID)) + owner->RewardQuest(quest, LootItemType::Item, 0, owner, false); + + owner->UpdateCriteria(CriteriaType::CollectTransmogSetFromGroup, set->TransmogSetGroupID); + } + } + } } void CollectionMgr::AddTemporaryAppearance(ObjectGuid const& itemGuid, ItemModifiedAppearanceEntry const* itemModifiedAppearance) -- cgit v1.2.3