diff options
Diffstat (limited to 'src/server/game/Achievements/CriteriaHandler.cpp')
-rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index f3bb97ecf4b..9cb9a61386f 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -700,6 +700,16 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0 case CRITERIA_TYPE_REACH_GUILD_LEVEL: SetCriteriaProgress(criteria, miscValue1, referencePlayer); break; + case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED: + if (miscValue1 != criteria->Entry->Asset.TransmogSetGroupID) + continue; + SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE); + break; + case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT: + if (!miscValue2 /*login case*/ || miscValue1 != criteria->Entry->Asset.EquipmentSlot) + continue; + SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE); + break; // FIXME: not triggered in code as result, need to implement case CRITERIA_TYPE_COMPLETE_RAID: case CRITERIA_TYPE_PLAY_ARENA: @@ -774,7 +784,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0 case CRITERIA_TYPE_ARTIFACT_POWER_EARNED: case CRITERIA_TYPE_ARTIFACT_TRAITS_UNLOCKED: case CRITERIA_TYPE_ORDER_HALL_TALENT_LEARNED: - case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT: case CRITERIA_TYPE_ORDER_HALL_RECRUIT_TROOP: case CRITERIA_TYPE_COMPLETE_WORLD_QUEST: break; // Not implemented yet :( @@ -1135,6 +1144,7 @@ bool CriteriaHandler::IsCompletedCriteria(Criteria const* criteria, uint64 requi case CRITERIA_TYPE_CURRENCY: case CRITERIA_TYPE_PLACE_GARRISON_BUILDING: case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT: + case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT: return progress->Counter >= requiredAmount; case CRITERIA_TYPE_COMPLETE_ACHIEVEMENT: case CRITERIA_TYPE_COMPLETE_QUEST: @@ -1144,6 +1154,7 @@ bool CriteriaHandler::IsCompletedCriteria(Criteria const* criteria, uint64 requi case CRITERIA_TYPE_OWN_BATTLE_PET: case CRITERIA_TYPE_HONOR_LEVEL_REACHED: case CRITERIA_TYPE_PRESTIGE_REACHED: + case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED: return progress->Counter >= 1; case CRITERIA_TYPE_LEARN_SKILL_LEVEL: return progress->Counter >= (requiredAmount * 75); @@ -2125,6 +2136,8 @@ char const* CriteriaMgr::GetCriteriaTypeString(CriteriaTypes type) return "ORDER_HALL_RECRUIT_TROOP"; case CRITERIA_TYPE_COMPLETE_WORLD_QUEST: return "COMPLETE_WORLD_QUEST"; + case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED: + return "TRANSMOG_SET_UNLOCKED"; } return "MISSING_TYPE"; } |