#region Arthea License
/***********************************************************************
* Arthea MUD by R. Jennings (2007) http://arthea.googlecode.com/ *
* By using this code you comply with the Artistic and GPLv2 Licenses. *
***********************************************************************/
#endregion
using System.Collections.Generic;
using System.Text;
namespace Arthea.Races
{
/// <summary>
/// Implementation of a race list.
/// </summary>
public class RaceList : List<Race>
{
#region [rgn] Constructors (1)
/// <summary>
/// Initializes a new instance of the <see cref="RaceList"/> class.
/// </summary>
public RaceList()
{
Add(new HumanRace());
Add(new ElfRace());
Add(new DwarfRace());
}
#endregion [rgn]
#region [rgn] Methods (3)
// [rgn] Public Methods (3)
/// <summary>
/// Finds a race with given name.
/// </summary>
/// <param name="name">The name.</param>
/// <returns>a race</returns>
public Race FindName(String name)
{
return Find(delegate(Race race) { return name == race.Name; });
}
/// <summary>
/// Finds the name of the player race.
/// </summary>
/// <param name="name">The name.</param>
/// <returns></returns>
public Race FindPlayerRaceName(String name)
{
return Find(delegate(Race race) { return (race is PlayerRace) && name == race.Name; });
}
/// <summary>
/// Returns a <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
/// </summary>
/// <returns>
/// A <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
/// </returns>
public override string ToString()
{
StringBuilder buf = new StringBuilder();
foreach (Race race in this)
{
if (!(race is PlayerRace))
continue;
buf.Append(race.Name);
buf.Append(": ");
buf.Append(race.Description);
buf.AppendLine();
}
return buf.ToString();
}
#endregion [rgn]
}
}