private static MoveOrder ReadMoveOrder(string s) { MoveOrder ord = new MoveOrder(); string token = MyStrings.GetToken(ref s).ToLower(); if (token == "attack") { ord.Attack = true; token = MyStrings.GetToken(ref s).ToLower(); } while (token != "") { switch (token) { case "n": ord.Directions.Add(Direction.North); break; case "nw": ord.Directions.Add(Direction.Northwest); break; case "ne": ord.Directions.Add(Direction.Northeast); break; case "s": ord.Directions.Add(Direction.South); break; case "sw": ord.Directions.Add(Direction.Southwest); break; case "se": ord.Directions.Add(Direction.Southeast); break; case "out": ord.Directions.Add(0); break; default: // move in building { try { ord.Directions.Add(Convert.ToInt32(token)); } catch (FormatException) { throw new Exception("Bad direction"); } break; } } token = MyStrings.GetToken(ref s).ToLower(); } return(ord); }
public static Order ParseOrder(Person person, Faction faction, string command, string arguments) { Order order; switch (command) { case "address": order = new AddressOrder(arguments); break; case "attack": order = new AttackOrder(arguments); break; case "avoid": order = new AvoidOrder(arguments); break; case "build": order = new BuildOrder(arguments); break; case "burn": order = new BurnOrder(arguments); break; case "consume": order = new ConsumeOrder(person, arguments); break; case "cure": order = new CureOrder(arguments); break; case "declare": order = new DeclareOrder(faction, arguments); break; case "describe": order = new DescribeOrder(arguments); break; case "drive": order = new DriveOrder(arguments); break; case "enter": order = new EnterOrder(arguments); break; case "equipment": order = new EquipmentOrder(arguments); break; case "evict": order = new EvictOrder(arguments); break; case "give": order = new GiveOrder(arguments); break; case "greedy": order = new GreedyOrder(arguments); break; case "hide": order = new HideOrder(arguments); break; case "install": order = new InstallOrder(arguments); break; case "kick": order = new KickOrder(); break; case "leave": order = new LeaveOrder(); break; case "move": order = new MoveOrder(arguments); break; case "name": order = new NameOrder(arguments); break; case "option": order = new OptionOrder(arguments); break; case "password": order = new PasswordOrder(arguments); break; case "patrol": order = new PatrolOrder(); break; case "produce": order = new ProduceOrder(arguments); break; case "quit": order = new QuitOrder(faction, arguments); break; case "scavenge": order = new ScavengeOrder(arguments); break; case "show": order = new ShowOrder(arguments); break; case "spoils": order = new SpoilsOrder(arguments); break; case "team": order = new TeamOrder(arguments); break; case "trade": order = new TradeOrder(arguments); break; case "uninstall": order = new UninstallOrder(arguments); break; default: throw new Exception("Bad order " + command); } return(order); }