private PileOfCards[] GetPiles(int numberOfPlayers, Random random, bool isSupply)
{
var startingLocation = isSupply ? StartingLocation.Supply : StartingLocation.NonSupply;
var result = new List<PileOfCards>();
CardGainAvailablility[] availabilities = this.GetCardAvailability(numberOfPlayers, CardAvailabilityType.TypesForBuyingOrGaining);
foreach (var availability in availabilities)
{
if (availability.startingLocation == startingLocation)
{
if (availability.card == Cards.Ruins)
{
result.Add(CreateRuins(this.cardGameSubset, availability.count, random));
}
else
{
result.Add(new PileOfCards(this.cardGameSubset, availability.card, availability.count));
}
}
}
return result.ToArray();
}