From 9cd5c14cd8c23e621697127a62e1f278172db6ee Mon Sep 17 00:00:00 2001 From: Hondacrx Date: Sun, 25 Aug 2024 00:14:55 -0400 Subject: [PATCH] Core/Criteria: Implemented CompletedLFGDungeon criteria type Port From (https://github.com/TrinityCore/TrinityCore/commit/9e22ca9d52eef131687b5f28f3187232bbe56c11) --- Source/Framework/Constants/AchievementConst.cs | 2 +- Source/Game/Achievements/CriteriaHandler.cs | 4 +++- Source/Game/DungeonFinding/LFGManager.cs | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/Framework/Constants/AchievementConst.cs b/Source/Framework/Constants/AchievementConst.cs index 8dda7f624..316077683 100644 --- a/Source/Framework/Constants/AchievementConst.cs +++ b/Source/Framework/Constants/AchievementConst.cs @@ -626,7 +626,7 @@ namespace Framework.Constants 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/Source/Game/Achievements/CriteriaHandler.cs b/Source/Game/Achievements/CriteriaHandler.cs index abfd0e939..e8c26803d 100644 --- a/Source/Game/Achievements/CriteriaHandler.cs +++ b/Source/Game/Achievements/CriteriaHandler.cs @@ -156,6 +156,7 @@ namespace Game.Achievements 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: @@ -414,7 +415,6 @@ namespace Game.Achievements case CriteriaType.BattlePetAchievementPointsEarned: case CriteriaType.ReleasedSpirit: case CriteriaType.AccountKnownPet: - case CriteriaType.CompletedLFGDungeon: case CriteriaType.KickInitiatorInLFGDungeon: case CriteriaType.KickVoterInLFGDungeon: case CriteriaType.KickTargetInLFGDungeon: @@ -786,6 +786,7 @@ namespace Game.Achievements case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot: case CriteriaType.GetLootByType: case CriteriaType.LearnTradeskillSkillLine: + case CriteriaType.CompletedLFGDungeon: case CriteriaType.CompletedLFGDungeonWithStrangers: case CriteriaType.DeliveredKillingBlow: case CriteriaType.CurrencyGained: @@ -937,6 +938,7 @@ namespace Game.Achievements case CriteriaType.KillPlayer: case CriteriaType.TotalDamageTaken: case CriteriaType.TotalHealReceived: + case CriteriaType.CompletedLFGDungeon: case CriteriaType.CompletedLFGDungeonWithStrangers: case CriteriaType.GotHaircut: case CriteriaType.WinDuel: diff --git a/Source/Game/DungeonFinding/LFGManager.cs b/Source/Game/DungeonFinding/LFGManager.cs index 2f9449ccf..3db1766ad 100644 --- a/Source/Game/DungeonFinding/LFGManager.cs +++ b/Source/Game/DungeonFinding/LFGManager.cs @@ -1430,10 +1430,12 @@ namespace Game.DungeonFinding continue; } + player.UpdateCriteria(CriteriaType.CompletedLFGDungeon, 1); + // Update achievements if (dungeon.difficulty == Difficulty.Heroic) { - byte lfdRandomPlayers = 0; + byte lfdRandomPlayers; byte numParty = PlayersStore[guid].GetNumberOfPartyMembersAtJoin(); if (numParty != 0) lfdRandomPlayers = (byte)(5 - numParty);