aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Achievements/CriteriaHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-06-27 15:29:30 +0200
committerShauren <shauren.trinity@gmail.com>2025-06-27 15:29:30 +0200
commit60400d25f5fff2dabd4aa74bbdbc0d2370360a35 (patch)
tree54f2ae7ecfdbe1387d6d6e39a4168a9385b1f230 /src/server/game/Achievements/CriteriaHandler.cpp
parente0f3291eab271cb7dc5f39abfc7e2a4744be6ee0 (diff)
Core/Players: Implemented PlayerDataElementAccount, PlayerDataElementCharacter, PlayerDataFlagAccount and PlayerDataFlagCharacter
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);