public static List <GemItem> ChangeGemItems(List <GemItem> gems, string item, long quantity) { if (gems.Any(x => x.Name == item)) { int index = gems.FindIndex(x => x.Name == item); gems[index].Quantity += quantity; } else { GemItem currentGem = new GemItem(item); currentGem.Quantity = quantity; gems.Add(currentGem); } return(gems); }
public void AddGemItem(GemItem item) { if (capacity >= current + item.Value && GoldItemsValue >= GemItemsValue + item.Value) { var gemItems = GetGemItems(); if (gemItems.Any(gi => gi.Key == item.Key)) { gemItems.Single(gi => gi.Key == item.Key).IncreaseValue(item.Value); } else { bag.Add(item); } current += item.Value; } }
private static void InsertItem(string key, long value, Bag bag) { if (key.Length == 3) { CashItem cash = new CashItem(key, value); bag.AddCashItem(cash); } else if (key.Length >= 4 && key.ToLower().EndsWith("gem")) { GemItem gem = new GemItem(key, value); bag.AddGemItem(gem); } else if (key.ToLower().Equals("gold")) { GoldItem gold = new GoldItem(key, value); bag.AddGoldItem(gold); } }
public void FillBag(Bag bag, string type, string nameOfItem, long quantity) { switch (type) { case "Gem": GemItem.ChangeGemItems(Gems, nameOfItem, quantity); break; case "Cash": CashItem.ChangeCashItems(Cash, nameOfItem, quantity); break; case "Gold": GoldItem.ChangeGoldItems(Gold, nameOfItem, quantity); break; default: break; } }