#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 Arthea.Connections.Players; using Arthea.Environment; namespace Arthea.Collections { /// <summary> /// Implementation of a social list. /// </summary> public class SocialList : List<Social> { #region [rgn] Methods (4) // [rgn] Public Methods (4) /// <summary> /// Finds the name. /// </summary> /// <param name="name">The name.</param> /// <returns>a social</returns> public Social FindName(String name) { return Find(delegate(Social social) { return name == social.Name; }); } /// <summary> /// Loads this instance. /// </summary> /// <returns>a social list</returns> public static SocialList Load() { Log.Info("Loading socials..."); if (!Persistance.XmlFileExists(Paths.SocialFile)) { SocialList list = new SocialList(); Persistance.Save(Paths.SocialFile, list); return list; } else { return Persistance.Load<SocialList>(Paths.SocialFile); } } /// <summary> /// Parses a player argument for a social. /// </summary> /// <param name="player">The player.</param> /// <param name="arg">The arg.</param> /// <param name="argument">The argument.</param> /// <returns></returns> public bool Parse(Player player, String arg, String argument) { if (!arg || Count == 0) return false; Social social = FindName(arg); if (social == null) return false; social.Parse(player, argument); return true; } /// <summary> /// Saves this instance. /// </summary> public void Save() { Persistance.Save(Paths.SocialFile, this); } #endregion [rgn] } }