コード例 #1
0
ファイル: AchievementCollection.cs プロジェクト: NVN/WCell
		/// <summary>
		/// Adds a new achievement to the list, when achievement is earned.
		/// </summary>
		/// <param name="achievementEntry"></param>
		public void EarnAchievement(AchievementEntry achievement)
		{
			AddAchievement(AchievementRecord.CreateNewAchievementRecord(m_owner, achievement.ID));
			CheckPossibleAchievementUpdates(AchievementCriteriaType.CompleteAchievement, (uint)achievement.ID, 1);
			RemoveAchievementProgress(achievement);

            foreach (var achievementReward in achievement.Rewards)
                achievementReward.GiveReward(Owner);

            if (m_owner.IsInGuild)
                m_owner.Guild.Broadcast(AchievementHandler.CreateAchievementEarnedToGuild(achievement.ID, m_owner));

            if (achievement.IsRealmFirstType())
                AchievementHandler.SendServerFirstAchievement(achievement.ID, m_owner);

		    AchievementHandler.SendAchievementEarned(achievement.ID, m_owner);
		}