#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 Arthea.Collections; using Arthea.Connections.Players; using Arthea.Environment; namespace Arthea { /// <summary> /// Implements a help "file". /// </summary> public class Help { #region [rgn] Fields (4) private StringList keywords = new StringList(); private byte level; private HelpList seeAlso = new HelpList(); private string text; #endregion [rgn] #region [rgn] Constructors (2) /// <summary> /// Initializes a new instance of the <see cref="Help"/> class. /// </summary> /// <param name="keyword">The keyword.</param> public Help(string keyword) { keywords.Add(keyword); } /// <summary> /// Initializes a new instance of the <see cref="Help"/> class. /// </summary> public Help() { } #endregion [rgn] #region [rgn] Properties (4) /// <summary> /// Gets or sets the keywords. /// </summary> /// <value>The keywords.</value> public StringList Keywords { get { return keywords; } set { keywords = value; } } /// <summary> /// Gets or sets the level. /// </summary> /// <value>The level.</value> public byte Level { get { return level; } set { level = value; } } /// <summary> /// Gets or sets the see also. /// </summary> /// <value>The see also.</value> public HelpList SeeAlso { get { return seeAlso; } set { seeAlso = value; } } /// <summary> /// Gets or sets the text. /// </summary> /// <value>The text.</value> public string Text { get { return text; } set { text = value; } } #endregion [rgn] #region [rgn] Methods (4) // [rgn] Public Methods (4) /// <summary> /// Attaches this instance to the help list. /// </summary> public void Attach() { Lists.Helps.Add(this); } /// <summary> /// Creates an instance for editing by a player. /// </summary> /// <param name="player">The player.</param> /// <param name="argument">The argument.</param> public static void Create(Player player, String argument) { Help help = new Help(argument); help.Attach(); player.WriteLine("Help created."); player.Connection.Edit(help); } /// <summary> /// Releases this instance from the help list. /// </summary> public void Release() { Lists.Helps.Remove(this); } /// <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() { if (keywords.Count > 0) return keywords[0].ToString(); else return "<unknown>"; } #endregion [rgn] } }