/// <summary> /// Initialize the ItemStock, doing error checking on the quality, and setting the price to the store price /// if none is given specifically for this stock. /// Creates the builder /// </summary> /// <param name="shopName"></param> /// <param name="price"></param> /// <param name="defaultSellPriceMultiplier"></param> /// <param name="priceMultiplierWhen"></param> internal void Initialize(string shopName, int price, double defaultSellPriceMultiplier, Dictionary <double, string[]> priceMultiplierWhen) { ShopName = shopName; DefaultSellPriceMultiplier = defaultSellPriceMultiplier; PriceMultiplierWhen = priceMultiplierWhen; if (Quality < 0 || Quality == 3 || Quality > 4) { Quality = 0; ModEntry.monitor.Log("Item quality can only be 0,1,2, or 4. Defaulting to 0", LogLevel.Warn); } CurrencyObjectId = ItemsUtil.GetIndexByName(StockItemCurrency); //sets price to the store price if no stock price is given if (StockPrice == -1) { StockPrice = price; } this._priceMultiplierWhen = priceMultiplierWhen; if (IsRecipe) { Stock = 1; } _builder = new ItemBuilder(this); }
internal void CheckItems() { MarketDay.Log("Checking progression data", LogLevel.Debug); if (Levels.Count == 0) { MarketDay.Log($" No levels loaded", LogLevel.Error); } foreach (var level in Levels) { foreach (var prizeLevel in level.Prizes) { var name = prizeLevel.Object; var item = ItemsUtil.GetIndexByName(name); if (item == -1) { MarketDay.Log($" Could not get index for object: {name}", LogLevel.Warn); } if (name is "Wine" or "Jelly" or "Juice" or "Pickle" or "Roe" or "Aged Roe") { var preservedGoods = prizeLevel.Flavor; var item1 = ItemsUtil.GetIndexByName(preservedGoods); if (item1 == -1) { MarketDay.Log($" Could not get index for flavor: {preservedGoods}", LogLevel.Warn); } } } } }
/// <summary> /// Takes an item name, and adds that item to the stock /// </summary> /// <param name="itemName">name of the item</param> /// <param name="priceMultiplier"></param> /// <returns></returns> public bool AddItemToStock(string itemName, double priceMultiplier = 1) { int id = ItemsUtil.GetIndexByName(itemName, _itemStock.ItemType); if (id < 0) { ModEntry.monitor.Log($"{_itemStock.ItemType} named \"{itemName}\" could not be added to the Shop {_itemStock.ShopName}", LogLevel.Trace); return(false); } return(AddItemToStock(id, priceMultiplier)); }