Core/Achievements: Greatly optimize achievement system by splitting large types by miscvalue

Port From (https://github.com/TrinityCore/TrinityCore/commit/38d3c5ed16dd502471d810638fe21d90f8e0c7a6)
This commit is contained in:
hondacrx
2020-05-19 15:07:49 -04:00
parent 2fc4e3e71f
commit 6b67079dd1
7 changed files with 68 additions and 20 deletions
@@ -500,7 +500,7 @@ namespace Game.Achievements
if (!achievement.Flags.HasAnyFlag(AchievementFlags.TrackingFlag))
_achievementPoints += achievement.Points;
UpdateCriteria(CriteriaTypes.CompleteAchievement, 0, 0, 0, null, referencePlayer);
UpdateCriteria(CriteriaTypes.CompleteAchievement, achievement.Id, 0, 0, null, referencePlayer);
UpdateCriteria(CriteriaTypes.EarnAchievementPoints, achievement.Points, 0, 0, null, referencePlayer);
// reward items and titles if any
@@ -654,9 +654,9 @@ namespace Game.Achievements
_owner.SendPacket(data);
}
public override List<Criteria> GetCriteriaByType(CriteriaTypes type)
public override List<Criteria> GetCriteriaByType(CriteriaTypes type, uint asset)
{
return Global.CriteriaMgr.GetPlayerCriteriaByType(type);
return Global.CriteriaMgr.GetPlayerCriteriaByType(type, asset);
}
public override string GetOwnerInfo()
@@ -963,7 +963,7 @@ namespace Game.Achievements
if (!achievement.Flags.HasAnyFlag(AchievementFlags.TrackingFlag))
_achievementPoints += achievement.Points;
UpdateCriteria(CriteriaTypes.CompleteAchievement, 0, 0, 0, null, referencePlayer);
UpdateCriteria(CriteriaTypes.CompleteAchievement, achievement.Id, 0, 0, null, referencePlayer);
UpdateCriteria(CriteriaTypes.EarnAchievementPoints, achievement.Points, 0, 0, null, referencePlayer);
}
@@ -1018,7 +1018,7 @@ namespace Game.Achievements
_owner.BroadcastPacket(data);
}
public override List<Criteria> GetCriteriaByType(CriteriaTypes type)
public override List<Criteria> GetCriteriaByType(CriteriaTypes type, uint asset)
{
return Global.CriteriaMgr.GetGuildCriteriaByType(type);
}