Core/Achievements: Implemented DefeatDungeonEncounter and DefeatDungeonEncounterWhileElegibleForLoot criteria types
Port From (https://github.com/TrinityCore/TrinityCore/commit/765f86fdc001ce352a706d2950197b1007d9afce)
This commit is contained in:
@@ -605,7 +605,7 @@ namespace Framework.Constants
|
||||
RollAnyGreed = 94, // Roll any number on greed
|
||||
ReleasedSpirit = 95, /*NYI*/ // Released Spirit
|
||||
AccountKnownPet = 96, /*NYI*/ // Account knows pet "{Creature}" (Backtracked)
|
||||
DefeatDungeonEncounterWhileElegibleForLoot = 97, /*NYI*/ // Defeat Encounter "{DungeonEncounter}" While Eligible For Loot
|
||||
DefeatDungeonEncounterWhileElegibleForLoot = 97, // Defeat Encounter "{DungeonEncounter}" While Eligible For Loot
|
||||
// UNUSED 18{} = 98, // Unused
|
||||
// UNUSED 19{} = 99, // Unused
|
||||
// UNUSED 20{} = 100, // Unused
|
||||
@@ -673,7 +673,7 @@ namespace Framework.Constants
|
||||
ActivelyEarnPetLevel = 162, // (Player) Actively earn level {#Level} with a pet by a player
|
||||
EnterArea = 163, // Enter Map Area "{AreaTable}"
|
||||
LeaveArea = 164, // Leave Map Area "{AreaTable}"
|
||||
DefeatDungeonEncounter = 165, /*NYI*/ // Defeat Encounter "{DungeonEncounter}"
|
||||
DefeatDungeonEncounter = 165, // Defeat Encounter "{DungeonEncounter}"
|
||||
PlaceAnyGarrisonBuilding = 166, /*NYI*/ // Garrison Building: Place any
|
||||
PlaceGarrisonBuilding = 167, // Garrison Building: Place "{GarrBuilding}"
|
||||
ActivateAnyGarrisonBuilding = 168, // Garrison Building: Activate any
|
||||
|
||||
@@ -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