private void Consume(PlayerActionResponse data) { if (data.merchantItems != null) { if (MerchantItems == null) { MerchantItems = data.merchantItems; } else { foreach (var merchantItem in data.merchantItems) { Update(merchantItem); } } } if (data.boughtMerchantItem != null) { var item = MerchantItems.Find(m => m.id == data.boughtMerchantItem.id); if (item != null) { item.amountAvailable = data.boughtMerchantItem.amountAvailable; item.sold = data.boughtMerchantItem.sold; } } if (data.blackMarketItems != null) { BlackMarketItems = data.blackMarketItems; } }
private static void MerchantFrameOpened() { GarrisonBase.Debug("Updating Merchant Frame Info.."); IsOpen = true; MerchantItems.Clear(); NumMerchantItems.Reset(); }
public static bool BuyItem(uint itemId, int amount, bool forced = false) { var items = MerchantItems.Where(i => i.ItemId == itemId).ToList(); if (items.Count == 0) { return(false); } return(buyitem(items[0], amount, forced)); }
/// <summary> /// Attempts to buy merchant item using item name /// </summary> /// <param name="name"></param> /// <param name="amount"></param> /// <param name="forced">Forced will send lua to buy the item instead of MerchantFrame</param> /// <returns>False if item could not be found or Merchant Frame returned false</returns> public static bool BuyItem(string name, int amount, bool forced = false) { name = name.ToLower(); var items = MerchantItems.Where(i => i.Name.Contains(name)).ToList(); if (items.Count == 0) { return(false); } return(buyitem(items[0], amount, forced)); }
private void Update(MerchantPlayerItem merchantItem) { var idx = MerchantItems.FindIndex(m => m.id == merchantItem.id); if (idx >= 0) { MerchantItems[idx] = merchantItem; } else { MerchantItems.Add(merchantItem); } }