aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Martín Berti <15972392+BertiRean@users.noreply.github.com>2024-05-18 10:48:07 -0300
committerGitHub <noreply@github.com>2024-05-18 15:48:07 +0200
commit9e22ca9d52eef131687b5f28f3187232bbe56c11 (patch)
treee6c6e5e8e29b3bd4f77a29f24b60fcd7a41e64b2
parentf80f931e2bee9dbf08c3edee94d0c79dbbb64072 (diff)
Core/Criteria: Implemented CompletedLFGDungeon criteria type (#29980)
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp4
-rw-r--r--src/server/game/DataStores/DBCEnums.h2
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp2
3 files changed, 6 insertions, 2 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index e4d2ae0d289..08e2bdb4c27 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -575,6 +575,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
case CriteriaType::MoneyEarnedFromAuctions:/* FIXME: for online player only currently */
case CriteriaType::TotalDamageTaken:
case CriteriaType::TotalHealReceived:
+ case CriteriaType::CompletedLFGDungeon:
case CriteriaType::CompletedLFGDungeonWithStrangers:
case CriteriaType::DamageDealt:
case CriteriaType::HealingDone:
@@ -829,7 +830,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
case CriteriaType::BattlePetAchievementPointsEarned:
case CriteriaType::ReleasedSpirit:
case CriteriaType::AccountKnownPet:
- case CriteriaType::CompletedLFGDungeon:
case CriteriaType::KickInitiatorInLFGDungeon:
case CriteriaType::KickVoterInLFGDungeon:
case CriteriaType::KickTargetInLFGDungeon:
@@ -1201,6 +1201,7 @@ bool CriteriaHandler::IsCompletedCriteria(Criteria const* criteria, uint64 requi
case CriteriaType::DefeatDungeonEncounterWhileElegibleForLoot:
case CriteriaType::GetLootByType:
case CriteriaType::LearnTradeskillSkillLine:
+ case CriteriaType::CompletedLFGDungeon:
case CriteriaType::CompletedLFGDungeonWithStrangers:
case CriteriaType::DeliveredKillingBlow:
case CriteriaType::CurrencyGained:
@@ -1384,6 +1385,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
case CriteriaType::KillPlayer:
case CriteriaType::TotalDamageTaken:
case CriteriaType::TotalHealReceived:
+ case CriteriaType::CompletedLFGDungeon:
case CriteriaType::CompletedLFGDungeonWithStrangers:
case CriteriaType::GotHaircut:
case CriteriaType::WinDuel:
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index 0a05c0d8d9f..fe3a6dd6ead 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -619,7 +619,7 @@ enum class CriteriaType : int16
EarnAchievementPoints = 115, // Earn achievement points
RollDisenchant = 116, /*NYI*/ // Roll disenchant and get {#Disenchant Roll}
RollAnyDisenchant = 117, /*NYI*/ // Roll any number on disenchant
- CompletedLFGDungeon = 118, /*NYI*/ // Completed an LFG dungeon
+ CompletedLFGDungeon = 118, // Completed an LFG dungeon
CompletedLFGDungeonWithStrangers = 119, // Completed an LFG dungeon with strangers
KickInitiatorInLFGDungeon = 120, /*NYI*/ // Kicked in an LFG dungeon (initiator)
KickVoterInLFGDungeon = 121, /*NYI*/ // Kicked in an LFG dungeon (voter)
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index e99faab32c1..84f3c8541cf 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -1538,6 +1538,8 @@ void LFGMgr::FinishDungeon(ObjectGuid gguid, const uint32 dungeonId, Map const*
continue;
}
+ player->UpdateCriteria(CriteriaType::CompletedLFGDungeon, 1);
+
// Update achievements
if (dungeon->difficulty == DIFFICULTY_HEROIC)
{