コード例 #1
0
ファイル: OrdersReader.cs プロジェクト: pbem-games/wasteland
        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);
        }
コード例 #2
0
ファイル: OrdersReader.cs プロジェクト: pbem-games/wasteland
        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);
        }