private static DescribeOrder ReadDescribeOrder(string s) { DescribeOrder ord = new DescribeOrder(); string t1 = MyStrings.GetToken(ref s).ToLower(); if (t1 == "person") { ord.What = DescribeOrder.Target.Person; } else if (t1 == "object") { ord.What = DescribeOrder.Target.Object; } else { throw new Exception("Bad target"); } string t2 = MyStrings.GetValidString(MyStrings.GetQuotedToken(ref s)); if (t2.Trim() == "") { throw new Exception("Bad description"); } ord.Description = t2; 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); }