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)); }
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); }
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); }
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); }
public void FromRefStringThrowsTest() { Assert.Throws <ArgumentNullException>(() => TF2Value.FromRef(null)); Assert.Throws <FormatException>(() => TF2Value.FromRef("eleven")); }