Core/Achievements: Implemented DefeatDungeonEncounter and DefeatDungeonEncounterWhileElegibleForLoot criteria types
Port From (https://github.com/TrinityCore/TrinityCore/commit/765f86fdc001ce352a706d2950197b1007d9afce)
This commit is contained in:
@@ -126,8 +126,10 @@ namespace Game.Achievements
|
||||
case CriteriaType.PlayerTriggerGameEvent:
|
||||
case CriteriaType.Login:
|
||||
case CriteriaType.AnyoneTriggerGameEventScenario:
|
||||
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||
case CriteriaType.BattlePetReachLevel:
|
||||
case CriteriaType.ActivelyEarnPetLevel:
|
||||
case CriteriaType.DefeatDungeonEncounter:
|
||||
case CriteriaType.PlaceGarrisonBuilding:
|
||||
case CriteriaType.ActivateAnyGarrisonBuilding:
|
||||
case CriteriaType.HonorLevelIncrease:
|
||||
@@ -385,7 +387,6 @@ namespace Game.Achievements
|
||||
case CriteriaType.AccountObtainPetThroughBattle:
|
||||
case CriteriaType.WinPetBattle:
|
||||
case CriteriaType.PlayerObtainPetThroughBattle:
|
||||
case CriteriaType.DefeatDungeonEncounter:
|
||||
case CriteriaType.ActivateGarrisonBuilding:
|
||||
case CriteriaType.UpgradeGarrison:
|
||||
case CriteriaType.StartAnyGarrisonMissionWithFollowerType:
|
||||
@@ -409,7 +410,6 @@ namespace Game.Achievements
|
||||
case CriteriaType.BattlePetAchievementPointsEarned:
|
||||
case CriteriaType.ReleasedSpirit:
|
||||
case CriteriaType.AccountKnownPet:
|
||||
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||
case CriteriaType.CompletedLFGDungeon:
|
||||
case CriteriaType.KickInitiatorInLFGDungeon:
|
||||
case CriteriaType.KickVoterInLFGDungeon:
|
||||
@@ -781,6 +781,7 @@ namespace Game.Achievements
|
||||
case CriteriaType.CatchFishInFishingHole:
|
||||
case CriteriaType.LearnSpellFromSkillLine:
|
||||
case CriteriaType.WinDuel:
|
||||
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||
case CriteriaType.GetLootByType:
|
||||
case CriteriaType.LearnTradeskillSkillLine:
|
||||
case CriteriaType.CompletedLFGDungeonWithStrangers:
|
||||
@@ -790,6 +791,7 @@ namespace Game.Achievements
|
||||
case CriteriaType.UniquePetsOwned:
|
||||
case CriteriaType.BattlePetReachLevel:
|
||||
case CriteriaType.ActivelyEarnPetLevel:
|
||||
case CriteriaType.DefeatDungeonEncounter:
|
||||
case CriteriaType.LearnAnyTransmogInSlot:
|
||||
case CriteriaType.ParagonLevelIncreaseWithFaction:
|
||||
case CriteriaType.PlayerHasEarnedHonor:
|
||||
@@ -1174,6 +1176,11 @@ namespace Game.Achievements
|
||||
break;
|
||||
case CriteriaType.EarnTeamArenaRating:
|
||||
return false;
|
||||
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||
case CriteriaType.DefeatDungeonEncounter:
|
||||
if (miscValue1 == 0 || miscValue1 != criteria.Entry.Asset)
|
||||
return false;
|
||||
break;
|
||||
case CriteriaType.PlaceGarrisonBuilding:
|
||||
case CriteriaType.ActivateGarrisonBuilding:
|
||||
if (miscValue1 != criteria.Entry.Asset)
|
||||
@@ -4068,9 +4075,11 @@ namespace Game.Achievements
|
||||
case CriteriaType.GainAura:
|
||||
case CriteriaType.CatchFishInFishingHole:
|
||||
case CriteriaType.LearnSpellFromSkillLine:
|
||||
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||
case CriteriaType.GetLootByType:
|
||||
case CriteriaType.LandTargetedSpellOnTarget:
|
||||
case CriteriaType.LearnTradeskillSkillLine:
|
||||
case CriteriaType.DefeatDungeonEncounter:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
|
||||
@@ -384,6 +384,12 @@ namespace Game.Maps
|
||||
dungeonEncounter = bossInfo.GetDungeonEncounterForDifficulty(instance.GetDifficultyID());
|
||||
if (dungeonEncounter != null)
|
||||
{
|
||||
instance.DoOnPlayers(player =>
|
||||
{
|
||||
if (!player.IsLockedToDungeonEncounter(dungeonEncounter.Id))
|
||||
player.UpdateCriteria(CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot, dungeonEncounter.Id);
|
||||
});
|
||||
|
||||
DoUpdateCriteria(CriteriaType.DefeatDungeonEncounter, dungeonEncounter.Id);
|
||||
SendBossKillCredit(dungeonEncounter.Id);
|
||||
if (dungeonEncounter.CompleteWorldStateID != 0)
|
||||
|
||||
Reference in New Issue
Block a user