public void Perform(PossibleMatch Match, Actor Actor) { var direction = Match.Arguments["DIRECTION"] as Direction?; var location = Actor.Location as Room; var link = location.Links.FirstOrDefault(l => l.Direction == direction.Value); if (link == null) { Mud.SendEventMessage(Actor, EventMessageScope.Single, "You can't go that way.\r\n"); } else { if (link.Door != null) { if (!link.Door.Open) { Mud.SendEventMessage(Actor, EventMessageScope.Single, "The door is closed."); return; } } Mud.SendEventMessage(Actor, EventMessageScope.Single, "You went " + direction.Value.ToString().ToLower() + ".\r\n"); Mud.SendEventMessage(Actor, EventMessageScope.External, Actor.Short + " went " + direction.Value.ToString().ToLower() + "\r\n"); var destination = Mud.GetObject(link.Destination) as Room; if (destination == null) { throw new InvalidOperationException("Link does not lead to room."); } Thing.Move(Actor, destination); Mud.EnqueuClientCommand(Actor.ConnectedClient, "look"); } }
public void Perform(PossibleMatch Match, Actor Actor) { var target = Match.Arguments["TARGET"] as Thing; var destination = Match.Arguments["DESTINATION"].ToString(); var room = Mud.GetObject(destination); if (room != null) { Thing.Move(target, room); } }