示例#1
0
        public TierName[] GetRollTiers(GamePlayer player, Random random)
        {
            var shopLength  = player.Shop.Length;
            var resultTiers = new TierName[shopLength];
            var tierChances = TierInfo.GetChances(player.Lvl);

            for (var i = 0; i < shopLength; i++)
            {
                var randomNum = random.Next(1, 101);
                var temp      = 0;
                for (var j = 0; j < tierChances.Length; j++)
                {
                    var tierChance = tierChances[j];
                    if (randomNum <= tierChance + temp)
                    {
                        while (
                            this[(TierName)j].Count -
                            resultTiers.Count(item => (int)item == j) == 0
                            )
                        {
                            j--;
                        }
                        resultTiers[i] = (TierName)j;
                        break;
                    }
                    temp += tierChance;
                }
            }
            return(resultTiers);
        }