public void Collect() { do { if (totalVials > maxVials) { throw new Exception("MAX VIAL LIMIT REACHED, HOW IS TEST NOT DONE"); } Collection curCollection = cardSets.Values.First(col => !col.IsFull()); BoosterPack newBooster = Shop.buyPack(curCollection.curSet, numPacks[curCollection.curSet.NAME]++); curCollection.AddBooster(newBooster); int newVials = 0; newVials += compStrat.GetVials(curCollection); curVials += newVials; totalVials += newVials; setNeededVials(); if (curVials >= neededVials) { break; //craftStrat.CraftCards(curCollection, ref curVials); } } while (!CollectionComplete()); }