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