Exemple #1
0
        /// <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);
                        }
                    }
                }
            }
        }
Exemple #2
0
        /// <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);
                }
            }
        }
Exemple #3
0
        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);
             }
         }
     }
 }
Exemple #5
0
		public static void SetEntryCreator(AchievementCriteriaType criteria, AchievementCriteriaEntryCreator creator)
		{
			AchievementEntryCreators[(int)criteria] = creator;
		}
Exemple #6
0
		public static AchievementCriteriaEntryCreator GetCriteriaEntryCreator(AchievementCriteriaType criteria)
		{
			return AchievementEntryCreators[(int)criteria];
		}
Exemple #7
0
	    public static List<AchievementCriteriaEntry> GetCriteriaEntriesByType(AchievementCriteriaType type)
		{
			return CriteriaEntriesByType[(int)type];
		}
Exemple #8
0
 public static void SetEntryCreator(AchievementCriteriaType criteria, AchievementCriteriaEntryCreator creator)
 {
     AchievementMgr.AchievementEntryCreators[(int)criteria] = creator;
 }
Exemple #9
0
 public static AchievementCriteriaEntryCreator GetCriteriaEntryCreator(AchievementCriteriaType criteria)
 {
     return(AchievementMgr.AchievementEntryCreators[(int)criteria]);
 }
Exemple #10
0
 public static List <AchievementCriteriaEntry> GetCriteriaEntriesByType(AchievementCriteriaType type)
 {
     return(AchievementMgr.CriteriaEntriesByType[(int)type]);
 }
Exemple #11
0
		/// <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);
					}
				}
			}
		}
Exemple #12
0
	    public static List<AchievementCriteriaEntry> GetEntriesByCriterion(AchievementCriteriaType criterion)
		{
			return EntriesByCriterion[(int)criterion];
		}