diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/CollectionMgr.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
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<TransmogSetEntry const*> 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) |