Core/Transmog: Mark tracking quests as completed when completing transmog sets

This commit is contained in:
Shauren
2025-09-26 10:27:02 +02:00
parent 4a3f22948c
commit c550385720

View File

@@ -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)