#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; using Arthea.Connections.Players; using Arthea.Continents.Areas.Items; using Arthea.Continents.Areas.Items.Enums; namespace Arthea.Commands.ItemCommands { /// <summary> /// Implementation of a wear command. /// </summary> public class WearCommand : Command { #region [rgn] Constructors (1) /// <summary> /// Initializes a new instance of the <see cref="WearCommand"/> class. /// </summary> public WearCommand() : base("wear", "equips an item you are holding") { } #endregion [rgn] #region [rgn] Methods (1) // [rgn] Public Methods (1) /// <summary> /// Processes the command for a player. /// </summary> /// <param name="player">The player.</param> /// <param name="argument">The argument.</param> public override void Process(Player player, String argument) { if (!argument) { player.WriteLine("Wear what?"); return; } Item item = player.Carrying.FindName(argument); if (item == null) { player.WriteLine("You aren't carrying that."); return; } if (item.WearLoc != WearLocation.None) { player.WriteLine("You are already wearing {0}.", item); return; } if (item.Index.WearLoc == WearLocation.None) { player.WriteLine("You can't wear that."); return; } Item wearing = player.Carrying.FindWearLoc(item.Index.WearLoc); if (wearing != null) { wearing.WearLoc = WearLocation.None; player.WriteLine("You remove {0}.", wearing); } player.Equip(item); if (item.WearLoc == WearLocation.Hold) { player.WriteLine("You hold {0}.", item); } else { player.WriteLine("You wear {0} on your {1}.", item, Enum.GetName(typeof (WearLocation), item.WearLoc)); } } #endregion [rgn] } }