Dominion.GameConfigBuilder.RandomizeEvents C# (CSharp) Method

RandomizeEvents() public method

public RandomizeEvents ( Random random ) : void
random System.Random
return void
        public void RandomizeEvents(Random random)
        {
            int cEventsToInclude = 0;

            int cEventRemaining = 20;
            int totalKingdomCount = Dominion.Cards.AllKingdomCards().Count();
            for (int i = 0; i < 10; ++i)
            {
                int roll = random.Next(totalKingdomCount);
                if (roll <= cEventRemaining)
                {
                    cEventsToInclude++;
                    cEventRemaining--;
                    i--;
                    continue;
                }
                totalKingdomCount--;
            }

            var allEventsCards = Dominion.Cards.AllCards().Where(c => c.isEvent).ToArray<Dominion.Card>();

            var cardPicker = new Dominion.UniqueCardPicker(allEventsCards, random);
            this.events.Clear();
            PopulateCardListToCount(cEventsToInclude, this.events, cardPicker, c => true);
        }