示例#1
0
 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);
 }
示例#2
0
 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;
     }
 }
示例#3
0
 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);
     }
 }
示例#4
0
        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;
            }
        }