#region File Description //----------------------------------------------------------------------------- // QuestRequirement.cs // // Microsoft XNA Community Game Platform // Copyright (C) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- #endregion #region Using Statements using System; using Microsoft.Xna.Framework.Content; #endregion namespace RolePlayingGameData { /// /// A requirement for a particular number of a piece of content. /// /// Used to track gear acquired and monsters killed. public class QuestRequirement : ContentEntry where T : ContentObject { /// /// The quantity of the content entry that has been acquired. /// private int completedCount; /// /// The quantity of the content entry that has been acquired. /// [ContentSerializerIgnore] public int CompletedCount { get { return completedCount; } set { completedCount = value; } } #region Content Type Reader /// /// Reads a QuestRequirement object from the content pipeline. /// public class QuestRequirementReader : ContentTypeReader> { /// /// Reads a QuestRequirement object from the content pipeline. /// protected override QuestRequirement Read(ContentReader input, QuestRequirement existingInstance) { QuestRequirement requirement = existingInstance; if (requirement == null) { requirement = new QuestRequirement(); } input.ReadRawObject>(requirement as ContentEntry); if (typeof(T) == typeof(Gear)) { requirement.Content = input.ContentManager.Load( System.IO.Path.Combine("Gear", requirement.ContentName)); } else if (typeof(T) == typeof(Monster)) { requirement.Content = input.ContentManager.Load( System.IO.Path.Combine(@"Characters\Monsters", requirement.ContentName)); } return requirement; } } #endregion } }