aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2022-06-25 23:17:10 +0200
committerShauren <shauren.trinity@gmail.com>2022-06-25 23:17:10 +0200
commit919ada8d94a321d743bf581673b28b810780fc7e (patch)
treec02309a8633e005c78ab8a970b61f3a5ba7028c7
parent737d94d7efe0b6c308ac1bf3692b6aa2e43f5adb (diff)
Core/Criteria: Implemented worldstate requirements for criteria updates
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 6e053761eeb..9fb6b3b19b7 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -48,6 +48,7 @@
#include "SpellMgr.h"
#include "World.h"
#include "WorldSession.h"
+#include "WorldStateMgr.h"
bool CriteriaData::IsValid(Criteria const* criteria)
{
@@ -1312,6 +1313,10 @@ bool CriteriaHandler::CanUpdateCriteria(Criteria const* criteria, CriteriaTreeLi
return false;
}
+ if (criteria->Entry->EligibilityWorldStateID != 0)
+ if (sWorldStateMgr->GetValue(criteria->Entry->EligibilityWorldStateID, referencePlayer->GetMap()) != criteria->Entry->EligibilityWorldStateValue)
+ return false;
+
return true;
}