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); }
private static TradeOrder ReadTradeOrder(string s) { TradeOrder ord = new TradeOrder(); string t1 = MyStrings.GetToken(ref s).ToLower(); if (t1 == "with") { string num = MyStrings.GetToken(ref s); if (!MyStrings.IsNumber(num)) { throw new Exception("Bad target"); } ord.PersonNum = Convert.ToInt32(num); t1 = MyStrings.GetToken(ref s).ToLower(); } else { ord.PersonNum = 0; } if (t1 == "all") { ord.SellAmount = -1; } else { if (!MyStrings.IsNumber(t1)) { throw new Exception("Bad sell amount"); } ord.SellAmount = Convert.ToInt32(t1); } ord.SellWhat = ItemType.GetByAnyName(MyStrings.GetQuotedToken(ref s)); if (ord.SellWhat == null) { throw new Exception("Bad sell item"); } string t2 = MyStrings.GetToken(ref s).ToLower(); if (t2 == "all") { ord.BuyAmount = -1; } else { if (!MyStrings.IsNumber(t2)) { throw new Exception("Bad buy amount"); } ord.BuyAmount = Convert.ToInt32(t2); } ord.BuyWhat = ItemType.GetByAnyName(MyStrings.GetQuotedToken(ref s)); if (ord.BuyWhat == null) { throw new Exception("Bad buy item"); } return(ord); }