public void AlignChances()
        {
            if (PosibleBonuses.Count == 0)
            {
                return;
            }
            int num1 = 1000000000 /
                       PosibleBonuses.Sum(pb => pb.Chance);

            foreach (ItemStatBonus posibleBonuse in PosibleBonuses)
            {
                posibleBonuse.Chance *= num1;
            }
            int num2 = PosibleBonuses.Sum(pb => pb.Chance);

            if (num2 != 1000000000)
            {
                int           num3          = 1000000000 - num2;
                ItemStatBonus itemStatBonus = PosibleBonuses[0];
                foreach (ItemStatBonus posibleBonuse in PosibleBonuses)
                {
                    if (itemStatBonus.Chance < posibleBonuse.Chance)
                    {
                        itemStatBonus = posibleBonuse;
                    }
                }

                itemStatBonus.Chance += num3;
            }

            if (PosibleBonuses.Sum(pb => pb.Chance) == 1000000000)
            {
                return;
            }
            LogUtil.ErrorException("FAILED TO ALIGN CHANCES!!!!!!!!!!!!!!!!!!!");
        }
Beispiel #2
0
        public void AlignChances()
        {
            if (this.PosibleBonuses.Count == 0)
            {
                return;
            }
            int num1 = 1000000000 /
                       this.PosibleBonuses.Sum <ItemStatBonus>((Func <ItemStatBonus, int>)(pb => pb.Chance));

            foreach (ItemStatBonus posibleBonuse in this.PosibleBonuses)
            {
                posibleBonuse.Chance *= num1;
            }
            int num2 = this.PosibleBonuses.Sum <ItemStatBonus>((Func <ItemStatBonus, int>)(pb => pb.Chance));

            if (num2 != 1000000000)
            {
                int           num3          = 1000000000 - num2;
                ItemStatBonus itemStatBonus = this.PosibleBonuses[0];
                foreach (ItemStatBonus posibleBonuse in this.PosibleBonuses)
                {
                    if (itemStatBonus.Chance < posibleBonuse.Chance)
                    {
                        itemStatBonus = posibleBonuse;
                    }
                }

                itemStatBonus.Chance += num3;
            }

            if (this.PosibleBonuses.Sum <ItemStatBonus>((Func <ItemStatBonus, int>)(pb => pb.Chance)) == 1000000000)
            {
                return;
            }
            LogUtil.ErrorException("FAILED TO ALIGN CHANCES!!!!!!!!!!!!!!!!!!!", new object[0]);
        }