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
|
RollAnyGreed = 94, // Roll any number on greed
|
||||||
ReleasedSpirit = 95, /*NYI*/ // Released Spirit
|
ReleasedSpirit = 95, /*NYI*/ // Released Spirit
|
||||||
AccountKnownPet = 96, /*NYI*/ // Account knows pet "{Creature}" (Backtracked)
|
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 18{} = 98, // Unused
|
||||||
// UNUSED 19{} = 99, // Unused
|
// UNUSED 19{} = 99, // Unused
|
||||||
// UNUSED 20{} = 100, // 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
|
ActivelyEarnPetLevel = 162, // (Player) Actively earn level {#Level} with a pet by a player
|
||||||
EnterArea = 163, // Enter Map Area "{AreaTable}"
|
EnterArea = 163, // Enter Map Area "{AreaTable}"
|
||||||
LeaveArea = 164, // Leave 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
|
PlaceAnyGarrisonBuilding = 166, /*NYI*/ // Garrison Building: Place any
|
||||||
PlaceGarrisonBuilding = 167, // Garrison Building: Place "{GarrBuilding}"
|
PlaceGarrisonBuilding = 167, // Garrison Building: Place "{GarrBuilding}"
|
||||||
ActivateAnyGarrisonBuilding = 168, // Garrison Building: Activate any
|
ActivateAnyGarrisonBuilding = 168, // Garrison Building: Activate any
|
||||||
|
|||||||
@@ -126,8 +126,10 @@ namespace Game.Achievements
|
|||||||
case CriteriaType.PlayerTriggerGameEvent:
|
case CriteriaType.PlayerTriggerGameEvent:
|
||||||
case CriteriaType.Login:
|
case CriteriaType.Login:
|
||||||
case CriteriaType.AnyoneTriggerGameEventScenario:
|
case CriteriaType.AnyoneTriggerGameEventScenario:
|
||||||
|
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||||
case CriteriaType.BattlePetReachLevel:
|
case CriteriaType.BattlePetReachLevel:
|
||||||
case CriteriaType.ActivelyEarnPetLevel:
|
case CriteriaType.ActivelyEarnPetLevel:
|
||||||
|
case CriteriaType.DefeatDungeonEncounter:
|
||||||
case CriteriaType.PlaceGarrisonBuilding:
|
case CriteriaType.PlaceGarrisonBuilding:
|
||||||
case CriteriaType.ActivateAnyGarrisonBuilding:
|
case CriteriaType.ActivateAnyGarrisonBuilding:
|
||||||
case CriteriaType.HonorLevelIncrease:
|
case CriteriaType.HonorLevelIncrease:
|
||||||
@@ -385,7 +387,6 @@ namespace Game.Achievements
|
|||||||
case CriteriaType.AccountObtainPetThroughBattle:
|
case CriteriaType.AccountObtainPetThroughBattle:
|
||||||
case CriteriaType.WinPetBattle:
|
case CriteriaType.WinPetBattle:
|
||||||
case CriteriaType.PlayerObtainPetThroughBattle:
|
case CriteriaType.PlayerObtainPetThroughBattle:
|
||||||
case CriteriaType.DefeatDungeonEncounter:
|
|
||||||
case CriteriaType.ActivateGarrisonBuilding:
|
case CriteriaType.ActivateGarrisonBuilding:
|
||||||
case CriteriaType.UpgradeGarrison:
|
case CriteriaType.UpgradeGarrison:
|
||||||
case CriteriaType.StartAnyGarrisonMissionWithFollowerType:
|
case CriteriaType.StartAnyGarrisonMissionWithFollowerType:
|
||||||
@@ -409,7 +410,6 @@ namespace Game.Achievements
|
|||||||
case CriteriaType.BattlePetAchievementPointsEarned:
|
case CriteriaType.BattlePetAchievementPointsEarned:
|
||||||
case CriteriaType.ReleasedSpirit:
|
case CriteriaType.ReleasedSpirit:
|
||||||
case CriteriaType.AccountKnownPet:
|
case CriteriaType.AccountKnownPet:
|
||||||
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
|
||||||
case CriteriaType.CompletedLFGDungeon:
|
case CriteriaType.CompletedLFGDungeon:
|
||||||
case CriteriaType.KickInitiatorInLFGDungeon:
|
case CriteriaType.KickInitiatorInLFGDungeon:
|
||||||
case CriteriaType.KickVoterInLFGDungeon:
|
case CriteriaType.KickVoterInLFGDungeon:
|
||||||
@@ -781,6 +781,7 @@ namespace Game.Achievements
|
|||||||
case CriteriaType.CatchFishInFishingHole:
|
case CriteriaType.CatchFishInFishingHole:
|
||||||
case CriteriaType.LearnSpellFromSkillLine:
|
case CriteriaType.LearnSpellFromSkillLine:
|
||||||
case CriteriaType.WinDuel:
|
case CriteriaType.WinDuel:
|
||||||
|
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||||
case CriteriaType.GetLootByType:
|
case CriteriaType.GetLootByType:
|
||||||
case CriteriaType.LearnTradeskillSkillLine:
|
case CriteriaType.LearnTradeskillSkillLine:
|
||||||
case CriteriaType.CompletedLFGDungeonWithStrangers:
|
case CriteriaType.CompletedLFGDungeonWithStrangers:
|
||||||
@@ -790,6 +791,7 @@ namespace Game.Achievements
|
|||||||
case CriteriaType.UniquePetsOwned:
|
case CriteriaType.UniquePetsOwned:
|
||||||
case CriteriaType.BattlePetReachLevel:
|
case CriteriaType.BattlePetReachLevel:
|
||||||
case CriteriaType.ActivelyEarnPetLevel:
|
case CriteriaType.ActivelyEarnPetLevel:
|
||||||
|
case CriteriaType.DefeatDungeonEncounter:
|
||||||
case CriteriaType.LearnAnyTransmogInSlot:
|
case CriteriaType.LearnAnyTransmogInSlot:
|
||||||
case CriteriaType.ParagonLevelIncreaseWithFaction:
|
case CriteriaType.ParagonLevelIncreaseWithFaction:
|
||||||
case CriteriaType.PlayerHasEarnedHonor:
|
case CriteriaType.PlayerHasEarnedHonor:
|
||||||
@@ -1174,6 +1176,11 @@ namespace Game.Achievements
|
|||||||
break;
|
break;
|
||||||
case CriteriaType.EarnTeamArenaRating:
|
case CriteriaType.EarnTeamArenaRating:
|
||||||
return false;
|
return false;
|
||||||
|
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||||
|
case CriteriaType.DefeatDungeonEncounter:
|
||||||
|
if (miscValue1 == 0 || miscValue1 != criteria.Entry.Asset)
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
case CriteriaType.PlaceGarrisonBuilding:
|
case CriteriaType.PlaceGarrisonBuilding:
|
||||||
case CriteriaType.ActivateGarrisonBuilding:
|
case CriteriaType.ActivateGarrisonBuilding:
|
||||||
if (miscValue1 != criteria.Entry.Asset)
|
if (miscValue1 != criteria.Entry.Asset)
|
||||||
@@ -4068,9 +4075,11 @@ namespace Game.Achievements
|
|||||||
case CriteriaType.GainAura:
|
case CriteriaType.GainAura:
|
||||||
case CriteriaType.CatchFishInFishingHole:
|
case CriteriaType.CatchFishInFishingHole:
|
||||||
case CriteriaType.LearnSpellFromSkillLine:
|
case CriteriaType.LearnSpellFromSkillLine:
|
||||||
|
case CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot:
|
||||||
case CriteriaType.GetLootByType:
|
case CriteriaType.GetLootByType:
|
||||||
case CriteriaType.LandTargetedSpellOnTarget:
|
case CriteriaType.LandTargetedSpellOnTarget:
|
||||||
case CriteriaType.LearnTradeskillSkillLine:
|
case CriteriaType.LearnTradeskillSkillLine:
|
||||||
|
case CriteriaType.DefeatDungeonEncounter:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -384,6 +384,12 @@ namespace Game.Maps
|
|||||||
dungeonEncounter = bossInfo.GetDungeonEncounterForDifficulty(instance.GetDifficultyID());
|
dungeonEncounter = bossInfo.GetDungeonEncounterForDifficulty(instance.GetDifficultyID());
|
||||||
if (dungeonEncounter != null)
|
if (dungeonEncounter != null)
|
||||||
{
|
{
|
||||||
|
instance.DoOnPlayers(player =>
|
||||||
|
{
|
||||||
|
if (!player.IsLockedToDungeonEncounter(dungeonEncounter.Id))
|
||||||
|
player.UpdateCriteria(CriteriaType.DefeatDungeonEncounterWhileElegibleForLoot, dungeonEncounter.Id);
|
||||||
|
});
|
||||||
|
|
||||||
DoUpdateCriteria(CriteriaType.DefeatDungeonEncounter, dungeonEncounter.Id);
|
DoUpdateCriteria(CriteriaType.DefeatDungeonEncounter, dungeonEncounter.Id);
|
||||||
SendBossKillCredit(dungeonEncounter.Id);
|
SendBossKillCredit(dungeonEncounter.Id);
|
||||||
if (dungeonEncounter.CompleteWorldStateID != 0)
|
if (dungeonEncounter.CompleteWorldStateID != 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user