diff options
Diffstat (limited to 'src/server/game/Achievements/CriteriaHandler.cpp')
-rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index c5406e0796f..c4896440d0f 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -3988,6 +3988,14 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6 if (referencePlayer->GetPositionZ() >= reqValue) return false; break; + case ModifierTreeType::PlayerDataFlagAccountIsSet: // 378 + if (!referencePlayer->HasDataFlagAccount(reqValue)) + return false; + break; + case ModifierTreeType::PlayerDataFlagCharacterIsSet: // 379 + if (!referencePlayer->HasDataFlagCharacter(reqValue)) + return false; + break; case ModifierTreeType::PlayerIsOnMapWithExpansion: // 380 { MapEntry const* mapEntry = referencePlayer->GetMap()->GetEntry(); @@ -4022,6 +4030,12 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6 return false; break; } + case ModifierTreeType::PlayerDataElementCharacterBetween: // 390 + return std::visit([&]<typename T>(T value) { return value >= T(secondaryAsset) && value <= T(tertiaryAsset); }, + referencePlayer->GetDataElementCharacter(reqValue)); + case ModifierTreeType::PlayerDataElementAccountBetween: // 391 + return std::visit([&]<typename T>(T value) { return value >= T(secondaryAsset) && value <= T(tertiaryAsset); }, + referencePlayer->GetDataElementAccount(reqValue)); case ModifierTreeType::PlayerHasCompletedQuestOrIsReadyToTurnIn: // 392 { QuestStatus status = referencePlayer->GetQuestStatus(reqValue); |