Beispiel #1
0
        public TF2Value ReadRefs()
        {
            XDocument doc = XDocument.Load(fileName);
            XElement  name1, name2, name3;

            ReturnNextXElement(1, out name1);
            ReturnNextXElement(2, out name2);
            ReturnNextXElement(3, out name3);
            var    refelement1 = name1.Element("refs");
            var    refelement2 = name2.Element("refs");
            var    refelement3 = name3.Element("refs");
            string refs = "refs";
            string a, b, c = String.Empty;

            Indexer(refelement1, refs, out a);
            Indexer(refelement2, refs, out b);
            Indexer(refelement3, refs, out c);
            double x, y, z, d;

            x = Convert.ToDouble(a);
            y = Convert.ToDouble(b);
            z = Convert.ToDouble(c);
            d = (x + y + z);
            return(TF2Value.FromRef(d));
        }
Beispiel #2
0
 public void FromRefStringTest()
 {
     Assert.AreEqual(1, TF2Value.FromRef("0.11").ScrapTotal);
     Assert.AreEqual(2, TF2Value.FromRef("0.22").ScrapTotal);
     Assert.AreEqual(3, TF2Value.FromRef("0.33").ScrapTotal);
     Assert.AreEqual(4, TF2Value.FromRef("0.44").ScrapTotal);
     Assert.AreEqual(5, TF2Value.FromRef("0.55").ScrapTotal);
     Assert.AreEqual(6, TF2Value.FromRef("0.66").ScrapTotal);
     Assert.AreEqual(7, TF2Value.FromRef("0.77").ScrapTotal);
     Assert.AreEqual(8, TF2Value.FromRef("0.88").ScrapTotal);
     Assert.AreEqual(9, TF2Value.FromRef("1").ScrapTotal);
     Assert.AreEqual(10, TF2Value.FromRef("1.11").ScrapTotal);
     Assert.AreEqual(11, TF2Value.FromRef("1.22").ScrapTotal);
     Assert.AreEqual(12, TF2Value.FromRef("1.33").ScrapTotal);
     Assert.AreEqual(20, TF2Value.FromRef("2.22").ScrapTotal);
 }
Beispiel #3
0
        public void FromRefTest()
        {
            Assert.AreEqual(1, TF2Value.FromRef(0.11).ScrapTotal);
            Assert.AreEqual(2, TF2Value.FromRef(0.22).ScrapTotal);
            Assert.AreEqual(3, TF2Value.FromRef(0.33).ScrapTotal);
            Assert.AreEqual(4, TF2Value.FromRef(0.44).ScrapTotal);
            Assert.AreEqual(5, TF2Value.FromRef(0.55).ScrapTotal);
            Assert.AreEqual(6, TF2Value.FromRef(0.66).ScrapTotal);
            Assert.AreEqual(7, TF2Value.FromRef(0.77).ScrapTotal);
            Assert.AreEqual(8, TF2Value.FromRef(0.88).ScrapTotal);
            Assert.AreEqual(9, TF2Value.FromRef(1).ScrapTotal);
            Assert.AreEqual(10, TF2Value.FromRef(1.11).ScrapTotal);
            Assert.AreEqual(11, TF2Value.FromRef(1.22).ScrapTotal);
            Assert.AreEqual(12, TF2Value.FromRef(1.33).ScrapTotal);
            Assert.AreEqual(20, TF2Value.FromRef(2.22).ScrapTotal);

            Assert.AreEqual(9000, TF2Value.FromRef(1000).ScrapTotal);
            Assert.AreEqual(9001, TF2Value.FromRef(1000.11).ScrapTotal);
        }
Beispiel #4
0
        private bool _ordersAdd(List <string> args, UserHandler handler, Action <string> sendChatMessage)
        {
            if (args.Count < 4)
            {
                sendChatMessage("Syntax: orders add {sell | buy} {defindex} {quality} {price}");
                return(false);
            }
            bool sell = args[0].ToLower() == "sell";

            string strDefindex = args[1];
            int    defindex;

            if (!int.TryParse(strDefindex, out defindex))
            {
                sendChatMessage("Invalid defindex: " + strDefindex);
                return(false);
            }
            Schema.Item item = Trade.CurrentSchema.GetItem(defindex);

            string strQuality = args[2];
            int    quality;

            if (!int.TryParse(strQuality, out quality))
            {
                sendChatMessage("Invalid quality id: " + strQuality);
                return(false);
            }

            string strPrice = args[3];
            double priceRef;

            if (!double.TryParse(strPrice, out priceRef))
            {
                sendChatMessage("Invalid price value: " + strPrice);
                return(false);
            }
            TF2Value price = TF2Value.FromRef(priceRef);

            if (sell)
            {
                Order so = handler.Bot.Orders.SellOrders.FirstOrDefault((o) => o.Defindex == defindex && o.Quality == quality);
                if (so != null)
                {
                    sendChatMessage("Order already exists selling for " + so.Price.ToRefString());
                    return(false);
                }

                Order added = new Order(price, item, quality, 3, true, false, false, false);
                handler.Bot.Orders.SellOrders.Add(added);
                sendChatMessage("Sell order added: " + added.ToString(Trade.CurrentSchema));
            }
            else
            {
                Order bo = handler.Bot.Orders.BuyOrders.FirstOrDefault((o) => o.Defindex == defindex && o.Quality == quality);
                if (bo != null)
                {
                    sendChatMessage("Order already exists buying for " + bo.Price.ToRefString());
                    return(false);
                }

                Order added = new Order(price, item, quality, 3, true, false, false, true);
                handler.Bot.Orders.BuyOrders.Add(added);
                sendChatMessage("Buy order added: " + added.ToString(Trade.CurrentSchema));
            }

            handler.Bot.Orders.SaveAll();
            return(true);
        }
        public bool Validate()
        {
            List <string> errors = new List <string>();
            TF2Value?     diff   = null;

            if (ActiveOrder == null)
            {
                if (Trade.OtherOfferedItems.Count() == 0)
                {
                    errors.Add("There is nothing you are offering.");
                }
                else
                {
                    errors.Add("I am currently not buying any of those items.");
                }
            }
            else
            {
                // in buy orders, assume the bot calculates the pricing correctly.
                if (!ActiveOrder.IsBuyOrder)
                {
                    if (HasNonPureInTrade())
                    {
                        errors.Add("You have non-pure items in payment.");
                    }

                    if (AmountAdded < ActiveOrder.Price)
                    {
                        errors.Add(string.Format("You have only paid {0}. You still have {2} to go to reach the price of {1}.",
                                                 AmountAdded.ToRefString(), ActiveOrder.Price.ToRefString(),
                                                 (ActiveOrder.Price - AmountAdded).ToRefString()));
                    }
                    else if (AmountAdded > ActiveOrder.Price)
                    {
                        diff = AmountAdded - ActiveOrder.Price;
                    }
                    else if (AmountAdded > ActiveOrder.Price + TF2Value.FromRef(1))
                    {
                        errors.Add(string.Format("You are paying too much. The price is {0}, but you have paid {1}.",
                                                 ActiveOrder.Price.ToRefString(), AmountAdded.ToRefString()));
                    }
                }
                else if (Trade.OtherOfferedItems.Count() > 1)
                {
                    errors.Add("You have other items in your trade besides the one I am buying.");
                }
            }

            if (errors.Count > 0)
            {
                SendTradeMessage("There were problems with your trade:");
                foreach (string e in errors)
                {
                    SendTradeMessage("> " + e);
                }
            }

            if (errors.Count == 0 && diff != null)
            {
                SendTradeMessage("Adding change...");
                AddPure(diff.Value);
            }

            return(errors.Count == 0);
        }
Beispiel #6
0
 public void FromRefStringThrowsTest()
 {
     Assert.Throws <ArgumentNullException>(() => TF2Value.FromRef(null));
     Assert.Throws <FormatException>(() => TF2Value.FromRef("eleven"));
 }