Core/Criteria: Implemented CompletedLFGDungeon criteria type

Port From (https://github.com/TrinityCore/TrinityCore/commit/9e22ca9d52eef131687b5f28f3187232bbe56c11)
This commit is contained in:
Hondacrx
2024-08-25 00:14:55 -04:00
parent e936c7d099
commit 9cd5c14cd8
3 changed files with 7 additions and 3 deletions
@@ -626,7 +626,7 @@ namespace Framework.Constants
EarnAchievementPoints = 115, // Earn achievement points EarnAchievementPoints = 115, // Earn achievement points
RollDisenchant = 116, /*NYI*/ // Roll disenchant and get {#Disenchant Roll} RollDisenchant = 116, /*NYI*/ // Roll disenchant and get {#Disenchant Roll}
RollAnyDisenchant = 117, /*NYI*/ // Roll any number on disenchant 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 CompletedLFGDungeonWithStrangers = 119, // Completed an LFG dungeon with strangers
KickInitiatorInLFGDungeon = 120, /*NYI*/ // Kicked in an LFG dungeon (initiator) KickInitiatorInLFGDungeon = 120, /*NYI*/ // Kicked in an LFG dungeon (initiator)
KickVoterInLFGDungeon = 121, /*NYI*/ // Kicked in an LFG dungeon (voter) KickVoterInLFGDungeon = 121, /*NYI*/ // Kicked in an LFG dungeon (voter)
+3 -1
View File
@@ -156,6 +156,7 @@ namespace Game.Achievements
case CriteriaType.MoneyEarnedFromAuctions:/* FIXME: for online player only currently */ case CriteriaType.MoneyEarnedFromAuctions:/* FIXME: for online player only currently */
case CriteriaType.TotalDamageTaken: case CriteriaType.TotalDamageTaken:
case CriteriaType.TotalHealReceived: case CriteriaType.TotalHealReceived:
case CriteriaType.CompletedLFGDungeon:
case CriteriaType.CompletedLFGDungeonWithStrangers: case CriteriaType.CompletedLFGDungeonWithStrangers:
case CriteriaType.DamageDealt: case CriteriaType.DamageDealt:
case CriteriaType.HealingDone: case CriteriaType.HealingDone:
@@ -414,7 +415,6 @@ namespace Game.Achievements
case CriteriaType.BattlePetAchievementPointsEarned: case CriteriaType.BattlePetAchievementPointsEarned:
case CriteriaType.ReleasedSpirit: case CriteriaType.ReleasedSpirit:
case CriteriaType.AccountKnownPet: case CriteriaType.AccountKnownPet:
case CriteriaType.CompletedLFGDungeon:
case CriteriaType.KickInitiatorInLFGDungeon: case CriteriaType.KickInitiatorInLFGDungeon:
case CriteriaType.KickVoterInLFGDungeon: case CriteriaType.KickVoterInLFGDungeon:
case CriteriaType.KickTargetInLFGDungeon: case CriteriaType.KickTargetInLFGDungeon:
@@ -786,6 +786,7 @@ namespace Game.Achievements
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot: case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
case CriteriaType.GetLootByType: case CriteriaType.GetLootByType:
case CriteriaType.LearnTradeskillSkillLine: case CriteriaType.LearnTradeskillSkillLine:
case CriteriaType.CompletedLFGDungeon:
case CriteriaType.CompletedLFGDungeonWithStrangers: case CriteriaType.CompletedLFGDungeonWithStrangers:
case CriteriaType.DeliveredKillingBlow: case CriteriaType.DeliveredKillingBlow:
case CriteriaType.CurrencyGained: case CriteriaType.CurrencyGained:
@@ -937,6 +938,7 @@ namespace Game.Achievements
case CriteriaType.KillPlayer: case CriteriaType.KillPlayer:
case CriteriaType.TotalDamageTaken: case CriteriaType.TotalDamageTaken:
case CriteriaType.TotalHealReceived: case CriteriaType.TotalHealReceived:
case CriteriaType.CompletedLFGDungeon:
case CriteriaType.CompletedLFGDungeonWithStrangers: case CriteriaType.CompletedLFGDungeonWithStrangers:
case CriteriaType.GotHaircut: case CriteriaType.GotHaircut:
case CriteriaType.WinDuel: case CriteriaType.WinDuel:
+3 -1
View File
@@ -1430,10 +1430,12 @@ namespace Game.DungeonFinding
continue; continue;
} }
player.UpdateCriteria(CriteriaType.CompletedLFGDungeon, 1);
// Update achievements // Update achievements
if (dungeon.difficulty == Difficulty.Heroic) if (dungeon.difficulty == Difficulty.Heroic)
{ {
byte lfdRandomPlayers = 0; byte lfdRandomPlayers;
byte numParty = PlayersStore[guid].GetNumberOfPartyMembersAtJoin(); byte numParty = PlayersStore[guid].GetNumberOfPartyMembersAtJoin();
if (numParty != 0) if (numParty != 0)
lfdRandomPlayers = (byte)(5 - numParty); lfdRandomPlayers = (byte)(5 - numParty);