Esempio n. 1
0
		// SMSG_CRITERIA_UPDATE
		public static void SendAchievmentStatus(AchievementProgressRecord achievementProgressRecord, Character chr)
		{
			using (var packet = new RealmPacketOut(RealmServerOpCode.SMSG_CRITERIA_UPDATE, 4*5+8*2))
			{
				packet.WriteUInt((uint)achievementProgressRecord.AchievementCriteriaId);
				packet.WritePackedUInt64(achievementProgressRecord.Counter);					//	amount
				chr.EntityId.WritePacked(packet);
				packet.Write(0);
				packet.WriteDateTime(DateTime.Now);				// start time?
				packet.Write(0);								// Duration
				packet.Write(0);								// Duration left

				chr.Client.Send(packet);
			}
		}
		/// <summary>
		/// Creates a new AchievementProgressRecord row in the database with the given information.
		/// </summary>
		/// <param name="account">the account this character is on</param>
		/// <param name="name">the name of the new character</param>
		/// <returns>the <seealso cref="AchievementProgressRecord"/> object</returns>
		public static AchievementProgressRecord CreateAchievementProgressRecord(Character chr, uint achievementCriteriaId, uint counter)
		{
			AchievementProgressRecord record;

			try
			{
				record = new AchievementProgressRecord
				{
					CharacterGuid = (int)chr.EntityId.Low,
					AchievementCriteriaId = achievementCriteriaId,
					Counter = counter,
					StartOrUpdateTime = DateTime.Now,
				};//TODO: Should we not be adding this to the database here?
				RealmWorldDBMgr.DatabaseProvider.SaveOrUpdate(record);
			}
			catch (Exception ex)
			{
				s_log.Error("AchievementProgressRecord creation error (DBS: " + RealmServerConfiguration.DBType + "): ", ex);
				record = null;
			}

			return record;
		}
Esempio n. 3
0
		public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return achievementProgressRecord.Counter >= CreatureCount;
		}
Esempio n. 4
0
		public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return achievementProgressRecord.Counter >= countOfEmotes;
		}
Esempio n. 5
0
		public uint value; // gold in copper for 60, 62, 63, 65, 66, 67 and damage/heal received for 103, 105

		public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return achievementProgressRecord.Counter >= value;
		}
Esempio n. 6
0
		public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return achievementProgressRecord.Counter >= NumberOfExaltedReputations;
		}
Esempio n. 7
0
		public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return achievementProgressRecord.Counter >= NumberOfVisitsAtBarberShop;
		}
Esempio n. 8
0
		public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return achievementProgressRecord.Counter >= NumberOfBankSlots;
		}
Esempio n. 9
0
		public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return achievementProgressRecord.Counter >= ReputationAmount;
		}
Esempio n. 10
0
		public virtual bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return false;
		}
Esempio n. 11
0
		public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return achievementProgressRecord.Counter >= (uint)SkillTierId;
		}
Esempio n. 12
0
		public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord)
		{
			return achievementProgressRecord.Counter >= CompletedQuestCount;
		}
Esempio n. 13
0
		/// <summary>
		/// Removes criteria progress from the player.
		/// </summary>
		/// <param name="achievementProgressRecord"></param>
		public void RemoveProgress(AchievementProgressRecord achievementProgressRecord)
		{
			m_progressRecords.Remove((uint)achievementProgressRecord.AchievementCriteriaId); //TODO: Remove type cast
		}
Esempio n. 14
0
		/// <summary>
		/// Adds a new progress record to the list.
		/// </summary>
		/// <param name="achievementProgressRecord"></param>
		void AddProgressRecord(AchievementProgressRecord achievementProgressRecord)
		{
			m_progressRecords.Add((uint)achievementProgressRecord.AchievementCriteriaId, achievementProgressRecord); //TODO: Remove type cast
		}