/// <summary> /// A method that will try to update the progress of all the related criterias. /// </summary> /// <param name="type">The Criteria Type.</param> /// <param name="value1"></param> /// <param name="value2"></param> /// <param name="involved"></param> internal void CheckPossibleAchievementUpdates(AchievementCriteriaType type, uint value1 = 0u, uint value2 = 0u, Unit involved = null) { // Get all the related criterions. var list = AchievementMgr.GetCriteriaEntriesByType(type); if (list != null) { foreach (var entry in list) { if (IsAchieveable(entry)) { if (entry.RequirementSet == null || entry.RequirementSet.Meets(Owner, involved, value1)) { entry.OnUpdate(this, value1, value2, involved); } } } } }
/// <summary> /// A method that will try to update the progress of all the related criterias. /// </summary> /// <param name="type">The Criteria Type.</param> /// <param name="value1"></param> /// <param name="value2"></param> /// <param name="involved"></param> internal void CheckPossibleAchievementUpdates(AchievementCriteriaType type, uint value1 = 0, uint value2 = 0, Unit involved = null) { List <AchievementCriteriaEntry> criteriaEntriesByType = AchievementMgr.GetCriteriaEntriesByType(type); if (criteriaEntriesByType == null) { return; } foreach (AchievementCriteriaEntry achievementCriteriaEntry in criteriaEntriesByType) { if (this.IsAchieveable(achievementCriteriaEntry) && (achievementCriteriaEntry.RequirementSet == null || achievementCriteriaEntry.RequirementSet.Meets(this.Owner, involved, value1))) { achievementCriteriaEntry.OnUpdate(this, value1, value2, (ObjectBase)involved); } } }
public override void Convert(byte[] rawData) { AchievementCriteriaType uint32 = (AchievementCriteriaType)DBCRecordConverter.GetUInt32(rawData, 2); AchievementCriteriaEntryCreator criteriaEntryCreator = AchievementMgr.GetCriteriaEntryCreator(uint32); if (criteriaEntryCreator == null) { return; } AchievementCriteriaEntry achievementCriteriaEntry = criteriaEntryCreator(); achievementCriteriaEntry.AchievementCriteriaId = DBCRecordConverter.GetUInt32(rawData, 0); achievementCriteriaEntry.AchievementEntryId = DBCRecordConverter.GetUInt32(rawData, 1); AchievementEntry achievementEntry = achievementCriteriaEntry.AchievementEntry; if (achievementEntry == null) { return; } achievementEntry.Criteria.Add(achievementCriteriaEntry); DBCRecordConverter.CopyTo(rawData, (object)achievementCriteriaEntry, 3); achievementCriteriaEntry.CompletionFlag = DBCRecordConverter.GetUInt32(rawData, 26); achievementCriteriaEntry.GroupFlag = (AchievementCriteriaGroupFlags)DBCRecordConverter.GetUInt32(rawData, 27); achievementCriteriaEntry.TimeLimit = DBCRecordConverter.GetUInt32(rawData, 29); List <AchievementCriteriaEntry> criteriaEntriesByType = AchievementMgr.GetCriteriaEntriesByType(uint32); if (criteriaEntriesByType != null) { criteriaEntriesByType.Add(achievementCriteriaEntry); } achievementCriteriaEntry.RequirementSet = new AchievementCriteriaRequirementSet(achievementCriteriaEntry.AchievementCriteriaId); AchievementMgr.CriteriaEntriesById[achievementCriteriaEntry.AchievementCriteriaId] = achievementCriteriaEntry; }
/// <summary> /// A method that will try to update the progress of all the related criterias. /// </summary> /// <param name="type">The Criteria Type.</param> /// <param name="value1"></param> /// <param name="value2"></param> /// <param name="involved"></param> internal void CheckPossibleAchievementUpdates(AchievementCriteriaType type, uint value1 = 0u, uint value2 = 0u, Unit involved = null) { // Get all the related criterions. var list = AchievementMgr.GetCriteriaEntriesByType(type); if (list != null) { foreach (var entry in list) { if (IsAchieveable(entry)) { if (entry.RequirementSet == null || entry.RequirementSet.Meets(Owner, involved, value1)) entry.OnUpdate(this, value1, value2, involved); } } } }
public static void SetEntryCreator(AchievementCriteriaType criteria, AchievementCriteriaEntryCreator creator) { AchievementEntryCreators[(int)criteria] = creator; }
public static AchievementCriteriaEntryCreator GetCriteriaEntryCreator(AchievementCriteriaType criteria) { return AchievementEntryCreators[(int)criteria]; }
public static List<AchievementCriteriaEntry> GetCriteriaEntriesByType(AchievementCriteriaType type) { return CriteriaEntriesByType[(int)type]; }
public static void SetEntryCreator(AchievementCriteriaType criteria, AchievementCriteriaEntryCreator creator) { AchievementMgr.AchievementEntryCreators[(int)criteria] = creator; }
public static AchievementCriteriaEntryCreator GetCriteriaEntryCreator(AchievementCriteriaType criteria) { return(AchievementMgr.AchievementEntryCreators[(int)criteria]); }
public static List <AchievementCriteriaEntry> GetCriteriaEntriesByType(AchievementCriteriaType type) { return(AchievementMgr.CriteriaEntriesByType[(int)type]); }
/// <summary> /// A method that will try to update the progress of all the related criterias. /// </summary> /// <param name="type">The Criteria Type.</param> /// <param name="value1"></param> /// <param name="value2"></param> /// <param name="involved"></param> internal void CheckPossibleAchievementUpdates(AchievementCriteriaType type, uint value1 = 0u, uint value2 = 0u, ObjectBase involved = null) { // Get all the related criterions. var list = AchievementMgr.GetEntriesByCriterion(type); if (list != null) { foreach (var entry in list) { if (IsAchieveable(entry)) { entry.OnUpdate(this, value1, value2, involved); } } } }
public static List<AchievementCriteriaEntry> GetEntriesByCriterion(AchievementCriteriaType criterion) { return EntriesByCriterion[(int)criterion]; }