public void AddProduct(int barcode) { if (!ProductService.ProductExist(barcode)) { return; } if (DiscountDictionary.ContainsKey(barcode)) { CheckDiscount(barcode); } else { if (BuyProductList.ContainsKey(barcode)) { BuyProductList[barcode].Amount += 1; BuyProductList[barcode].Price += ProductService.GetProduct(barcode).Price; DiscountDictionary.Add(barcode, 1); } else { BuyProductList.Add(barcode, ProductService.GetProduct(barcode)); DiscountDictionary.Add(barcode, 1); } } }
protected override List <IGenericValueOption <string> > GetAllOptions() { List <IGenericValueOption <string> > results = new List <IGenericValueOption <string> >(); BuyProductList list = null; try { list = new BuyProductList(Manager, BuildBuyProduct.eBuyCategory.kBuyCategoryVehicles, BuildBuyProduct.eBuySubCategory.kBuySubCategoryCars | BuildBuyProduct.eBuySubCategory.kBuySubCategoryMiscellaneousVehicles, 0, int.MaxValue); } catch (Exception e) { Common.DebugException(ToString(), e); } foreach (BuildBuyProduct product in list.GetProducts()) { if (product.IsWallObject || !product.IsStealable) { continue; } results.Add(new ListItem(this, product.CatalogName, product.ProductResourceKey.ToString())); } return(results); }
protected override bool PrivateUpdate(ScenarioFrame frame) { int availableFunds = Funds; int minimum = Minimum; if (minimum > availableFunds) { AddStat("High Min", availableFunds); return(false); } AddStat("Minimum", minimum); int maximum = Maximum; if (maximum > availableFunds) { maximum = availableFunds; } AddStat("Maximum", maximum); if (minimum > maximum) { IncStat("Min Bigger"); return(false); } BuyProductList list = null; try { list = new BuyProductList(this, Category, SubCategory, minimum, maximum); } catch (Exception e) { Common.DebugException(ToString(), e); } if ((list == null) || (list.Count == 0)) { IncStat("No Choices"); return(false); } int price = 0; mObject = list.Get <T>(this, UnlocalizedName, Test, out price); if (mObject == null) { IncStat("No Object"); return(false); } if (!Inventories.TryToMove(mObject, Sim.CreatedSim)) { IncStat("Inventory Fail"); mObject.Destroy(); mObject = null; return(false); } Money.AdjustFunds(Sim, "BuyItem", -price); AddStat("Purchased", price); return(true); }