#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
}
}