#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.Connections.Players; using Arthea.Continents.Areas.Rooms.Exits; using Arthea.Environment; namespace Arthea.Commands { /// <summary> /// Implements a movement command. /// </summary> public class MoveCommand : Command { #region [rgn] Constructors (1) /// <summary> /// Initializes a new instance of the <see cref="MoveCommand"/> class. /// </summary> /// <param name="name">The name.</param> public MoveCommand(string name) : base(name, "moves your character " + name) { } #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) { Exit exit = player.Room.Exits.FindExit(argument); int move = 1; if (exit == null) { player.WriteLine("You can't go in that direction."); return; } if (exit.ToRoom.Value == null) exit.ToRoom.Value = Lists.Rooms[exit.ToRoom.Id]; if (player.Move < move) { player.WriteLine("You don't have the energy."); return; } player.Room = exit.ToRoom.Value; player.Move -= move; LookCommand.Instance.Process(player, ""); } #endregion [rgn] } }