diff options
| author | Shauren <shauren.trinity@gmail.com> | 2023-01-28 01:53:26 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2023-01-28 01:53:26 +0100 |
| commit | 4bec7233badf9d3ab71dbdde8b24f66f7c4eedfb (patch) | |
| tree | b0d28e475ba99293fd0ca531a82a3446a027078f /src/server/game/Achievements/CriteriaHandler.cpp | |
| parent | 1bb9ba457418889d848998ccf6d412b1b369a5d3 (diff) | |
Core: Updated to 10.0.5
Diffstat (limited to 'src/server/game/Achievements/CriteriaHandler.cpp')
| -rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index 992b4e72393..812cddfe1d9 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -3858,6 +3858,10 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6 if (GameTime::GetGameTime() - referencePlayer->m_playerData->LogoutTime < int64(reqValue) * DAY) return false; break; + case ModifierTreeType::PlayerHasPerksProgramPendingReward: // 350 + if (!referencePlayer->m_activePlayerData->HasPerksProgramPendingReward) + return false; + break; case ModifierTreeType::PlayerCanUseItem: // 351 { ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(reqValue); @@ -3865,6 +3869,29 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6 return false; break; } + case ModifierTreeType::PlayerHasAtLeastProfPathRanks: // 355 + { + auto traitNodeEntryRankCount = [referencePlayer, secondaryAsset]() + { + uint32 ranks = 0; + for (UF::TraitConfig const& traitConfig : referencePlayer->m_activePlayerData->TraitConfigs) + { + if (TraitConfigType(*traitConfig.Type) != TraitConfigType::Profession) + continue; + + if (*traitConfig.SkillLineID != int32(secondaryAsset)) + continue; + + for (UF::TraitEntry const& traitEntry : traitConfig.Entries) + if (sTraitNodeEntryStore.AssertEntry(traitEntry.TraitNodeEntryID)->GetNodeEntryType() == TraitNodeEntryType::ProfPath) + ranks += traitEntry.Rank + traitEntry.GrantedRanks; + } + return ranks; + }(); + if (traitNodeEntryRankCount < reqValue) + return false; + break; + } default: return false; } |
