/// <summary> /// Checks if the given achievement is completable. /// </summary> /// <param name="achievementEntry"></param> /// <returns></returns> public bool IsAchievementCompletable(AchievementEntry achievementEntry) { // Counter achievement were never meant to be completed. if (achievementEntry.Flags.HasFlag(AchievementFlags.Counter)) { return(false); } // The method will return false only if the achievement has RealmFirst flags // and already achieved by someone. if (!AchievementMgr.IsRealmFirst(achievementEntry.ID)) { return(false); } uint achievementForTestId = (achievementEntry.RefAchievement != 0) ? achievementEntry.RefAchievement : achievementEntry.ID; uint achievementForTestCount = achievementEntry.Count; List <AchievementCriteriaEntry> achievementCriteriaIds = achievementEntry.Criteria; if (achievementCriteriaIds.Count == 0) { return(false); } uint count = 0; // Default case bool completedAll = true; foreach (var achievementCriteriaEntry in achievementCriteriaIds) { if (IsCriteriaCompletable(achievementCriteriaEntry)) { ++count; } else { completedAll = false; } if (achievementForTestCount > 0 && achievementForTestCount <= count) { return(true); // TODO: Why return true here? } } // all criterias completed requirement return(completedAll && achievementForTestCount == 0); }
public void FinalizeDataHolder() { AchievementCriteriaEntry criteriaEntryById = AchievementMgr.GetCriteriaEntryById(this.CriteriaId); if (criteriaEntryById == null) { ContentMgr.OnInvalidDBData("{0} had an invalid criteria id.", (object)this); } else { criteriaEntryById.RequirementSet.Add(this); } }
/// <summary>Checks if the given achievement is completable.</summary> /// <param name="achievementEntry"></param> /// <returns></returns> public bool IsAchievementCompletable(AchievementEntry achievementEntry) { if (achievementEntry.Flags.HasFlag((Enum)AchievementFlags.Counter) || !AchievementMgr.IsRealmFirst(achievementEntry.ID)) { return(false); } if (achievementEntry.RefAchievement == 0U) { int id = (int)achievementEntry.ID; } else { int refAchievement = (int)achievementEntry.RefAchievement; } uint count = achievementEntry.Count; List <AchievementCriteriaEntry> criteria = achievementEntry.Criteria; if (criteria.Count == 0) { return(false); } uint num = 0; bool flag = true; foreach (AchievementCriteriaEntry achievementCriteriaEntry in criteria) { if (this.IsCriteriaCompletable(achievementCriteriaEntry)) { ++num; } else { flag = false; } if (count > 0U && count <= num) { return(true); } } if (flag) { return(count == 0U); } return(false); }
public override void Convert(byte[] rawData) { var criteriaType = (AchievementCriteriaType)GetUInt32(rawData, 2); var creator = AchievementMgr.GetCriteriaEntryCreator(criteriaType); if (creator == null) { // unknown type return; } var entry = creator(); entry.AchievementCriteriaId = GetUInt32(rawData, 0); entry.AchievementEntryId = GetUInt32(rawData, 1); var achievement = entry.AchievementEntry; if (achievement == null) { // invalid criteria does not belong to any entry return; } // add criterion to achievement achievement.Criteria.Add(entry); CopyTo(rawData, entry, 3); entry.CompletionFlag = GetUInt32(rawData, 26); entry.GroupFlag = (AchievementCriteriaGroupFlags)GetUInt32(rawData, 27); entry.TimeLimit = GetUInt32(rawData, 29); // add to critera map var list = AchievementMgr.GetCriteriaEntriesByType(criteriaType); if (list != null) { list.Add(entry); } // create requirement set entry.RequirementSet = new AchievementCriteriaRequirementSet(entry.AchievementCriteriaId); AchievementMgr.CriteriaEntriesById[entry.AchievementCriteriaId] = entry; }
public override void Convert(byte[] rawData) { AchievementEntry achievementEntry = new AchievementEntry(); achievementEntry.ID = DBCRecordConverter.GetUInt32(rawData, 0); achievementEntry.FactionFlag = DBCRecordConverter.GetInt32(rawData, 1); achievementEntry.MapID = (MapId)DBCRecordConverter.GetUInt32(rawData, 2); achievementEntry.Names = this.GetStrings(rawData, 4); AchievementCategoryEntryId uint32 = (AchievementCategoryEntryId)DBCRecordConverter.GetUInt32(rawData, 38); achievementEntry.Category = AchievementMgr.GetCategoryEntry(uint32); achievementEntry.Points = DBCRecordConverter.GetUInt32(rawData, 39); achievementEntry.Flags = (AchievementFlags)DBCRecordConverter.GetUInt32(rawData, 41); achievementEntry.Count = DBCRecordConverter.GetUInt32(rawData, 60); achievementEntry.RefAchievement = DBCRecordConverter.GetUInt32(rawData, 61); AchievementMgr.AchievementEntries[achievementEntry.ID] = achievementEntry; }
/// <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 void Load() { foreach (var mCompletedAchievement in AchievementRecord.Load((int)Owner.EntityId.Low)) { var achievement = AchievementMgr.GetAchievementEntry(mCompletedAchievement.AchievementEntryId); if (achievement != null) { if (m_completedAchievements.ContainsKey(achievement.ID)) { log.Warn("Character {0} had Achievement {1} more than once.", m_owner, achievement.ID); } else { AddAchievement(mCompletedAchievement); } } else { log.Warn("Character {0} has invalid Achievement: {1}", m_owner, mCompletedAchievement.AchievementEntryId); } } foreach (var achievementProgress in AchievementProgressRecord.Load((int)Owner.EntityId.Low)) { // how to check if there's no criteria //if (achievement != null) { if (m_progressRecords.ContainsKey(achievementProgress.AchievementCriteriaId)) { log.Warn("Character {0} had progress for Achievement Criteria {1} more than once.", m_owner, achievementProgress.AchievementCriteriaId); } else { AddProgressRecord(achievementProgress); } } //else //{ // log.Warn("Character {0} has invalid Achievement: {1}", m_owner, achivementProgress.AchievementCriteriaId); //} } }
public override void Convert(byte[] rawData) { var achievementEntry = new AchievementEntry(); achievementEntry.ID = GetUInt32(rawData, 0); achievementEntry.FactionFlag = GetInt32(rawData, 1); achievementEntry.MapID = (MapId)GetUInt32(rawData, 2); achievementEntry.Names = GetStrings(rawData, 4); var category = (AchievementCategoryEntryId)GetUInt32(rawData, 38); // set category achievementEntry.Category = AchievementMgr.GetCategoryEntry(category); achievementEntry.Points = GetUInt32(rawData, 39); achievementEntry.Flags = (AchievementFlags)GetUInt32(rawData, 41); achievementEntry.Count = GetUInt32(rawData, 60); achievementEntry.RefAchievement = (uint)GetUInt32(rawData, 61); AchievementMgr.AchievementEntries[achievementEntry.ID] = achievementEntry; }
public void Load() { foreach (AchievementRecord achievementRecord in AchievementRecord.Load((int)this.Owner.EntityId.Low)) { AchievementEntry achievementEntry = AchievementMgr.GetAchievementEntry(achievementRecord.AchievementEntryId); if (achievementEntry != null) { if (this.m_completedAchievements.ContainsKey(achievementEntry.ID)) { AchievementCollection.log.Warn("Character {0} had Achievement {1} more than once.", (object)this.m_owner, (object)achievementEntry.ID); } else { this.AddAchievement(achievementRecord); } } else { AchievementCollection.log.Warn("Character {0} has invalid Achievement: {1}", (object)this.m_owner, (object)achievementRecord.AchievementEntryId); } } foreach (AchievementProgressRecord achievementProgressRecord in AchievementProgressRecord.Load( (int)this.Owner.EntityId.Low)) { if (this.m_progressRecords.ContainsKey(achievementProgressRecord.AchievementCriteriaId)) { AchievementCollection.log.Warn( "Character {0} had progress for Achievement Criteria {1} more than once.", (object)this.m_owner, (object)achievementProgressRecord.AchievementCriteriaId); } else { this.AddProgressRecord(achievementProgressRecord); } } }
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; }
public void Add(AchievementCriteriaRequirement requirement) { this.Requirements.Add(AchievementMgr.GetCriteriaRequirementCreator(requirement.Type)); }
public static void InitCriteria() { for (int index = 0; index < AchievementMgr.CriteriaEntriesByType.Length; ++index) { AchievementMgr.CriteriaEntriesByType[index] = new List <AchievementCriteriaEntry>(); } AchievementMgr.SetEntryCreator(AchievementCriteriaType.KillCreature, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new KillCreatureAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.WinBg, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new WinBattleGroundAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.ReachLevel, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new ReachLevelAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.ReachSkillLevel, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new ReachSkillLevelAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.CompleteAchievement, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new CompleteAchievementAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.CompleteQuestCount, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new CompleteQuestCountAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.CompleteDailyQuestDaily, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new CompleteDailyQuestDailyAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.CompleteQuestsInZone, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new CompleteQuestsInZoneAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.CompleteDailyQuest, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new CompleteDailyQuestAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.CompleteBattleground, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new CompleteBattlegroundAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.DeathAtMap, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new DeathAtMapAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.DeathInDungeon, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new DeathInDungeonAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.CompleteRaid, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new CompleteRaidAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.KilledByCreature, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new KilledByCreatureAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.FallWithoutDying, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new FallWithoutDyingAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.DeathsFrom, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new DeathsFromAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.CompleteQuest, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new CompleteQuestAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.BeSpellTarget, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new BeSpellTargetAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.BeSpellTarget2, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new BeSpellTargetAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.CastSpell, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new CastSpellAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.HonorableKillAtArea, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new HonorableKillAtAreaAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.WinArena, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new WinArenaAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.PlayArena, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new PlayArenaAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.LearnSpell, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new LearnSpellAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.OwnItem, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new OwnItemAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.WinRatedArena, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new WinRatedArenaAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.HighestTeamRating, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new HighestTeamRatingAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.ReachTeamRating, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new ReachTeamRatingAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.LearnSkillLevel, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new LearnSkillLevelAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.LootItem, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new LootItemAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.ExploreArea, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new ExploreAreaAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.BuyBankSlot, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new BuyBankSlotAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.GainReputation, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new GainReputationAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.GainExaltedReputation, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new GainExaltedReputationAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.VisitBarberShop, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new VisitBarberShopAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.DoEmote, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new DoEmoteAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.MoneyFromVendors, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new IncrementAtValue1AchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.GoldSpentForTalents, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new IncrementAtValue1AchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.MoneyFromQuestReward, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new IncrementAtValue1AchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.GoldSpentForTravelling, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new IncrementAtValue1AchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.GoldSpentAtBarber, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new IncrementAtValue1AchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.GoldSpentForMail, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new IncrementAtValue1AchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.LootMoney, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new IncrementAtValue1AchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.WinDuel, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new WinDuelLevelAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.LoseDuel, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new LoseDuelLevelAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.GainReveredReputation, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new GainReveredReputationAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.GainHonoredReputation, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new GainHonoredReputationAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.KnownFactions, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new KnownFactionsAchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.TotalDamageReceived, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new IncrementAtValue1AchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.TotalHealingReceived, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new IncrementAtValue1AchievementCriteriaEntry())); AchievementMgr.SetEntryCreator(AchievementCriteriaType.FlightPathsTaken, (AchievementCriteriaEntryCreator)(() => (AchievementCriteriaEntry) new FlightPathsTakenAchievementCriteriaEntry())); }
public static void InitCriteriaRequirements() { AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.None, (AchievementCriteriaRequirementCreator)(() => new AchievementCriteriaRequirement())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Creature, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementCreature())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.PlayerClassRace, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementPlayerClassRace())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.PlayerLessHealth, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementPlayerLessHealth())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.PlayerDead, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementPlayerDead())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Aura1, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementAura1())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Area, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementArea())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Aura2, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementAura2())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Value, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementValue())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Gender, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementGender())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Disabled, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementDisabled())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.MapDifficulty, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementMapDifficulty())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.MapPlayerCount, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementMapPlayerCount())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Team, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementTeam())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Drunk, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementDrunk())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.Holiday, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementHoliday())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.BgLossTeamScore, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementBgLossTeamScore())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.InstanceScript, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementInstanceScript())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.EquippedItemLevel, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementEquippedItemLevel())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.NthBirthday, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementNthBirthday())); AchievementMgr.SetRequirementCreator(AchievementCriteriaRequirementType.KnownTitle, (AchievementCriteriaRequirementCreator)(() => (AchievementCriteriaRequirement) new AchievementCriteriaRequirementKnownTitle())); }
public void Add(AchievementCriteriaRequirement requirement) { AchievementCriteriaRequirementCreator creator = AchievementMgr.GetCriteriaRequirementCreator(requirement.Type); Requirements.Add(creator); }