aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Achievements/CriteriaHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Achievements/CriteriaHandler.cpp')
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp14
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);