Ejemplo n.º 1
0
            private void OnProbUpdate()
            {
                if (Event.current.type == EventType.Repaint)
                {
                    Loot.Rarity[] probTypes = Enum.GetValues(typeof(Loot.Rarity)) as Loot.Rarity[];
                    if (probabilities.Count != probTypes.Length)
                    {
                        GenerateProbabilities(probTypes);
                    }
                }

                //sum all elements
                float sum       = 0;
                int   probCount = probabilities.Count;
                int   i         = 0;

                for (i = 0; i < probCount; i++)
                {
                    sum += probabilities[i].probability;
                }

                ProbabilityDef def = null;

                //divide elements by sum
                for (i = 0; i < probCount; i++)
                {
                    def             = probabilities[i];
                    def.probability = def.probability / sum;
                }
            }
Ejemplo n.º 2
0
            private void GenerateProbabilities(Loot.Rarity[] probTypes)
            {
                probabilities = new List <ProbabilityDef>();
                int index = 0;

                foreach (Loot.Rarity type in probTypes)
                {
                    float          prob = index == 0 ? 1 : 0;
                    ProbabilityDef def  = new ProbabilityDef(type, prob);
                    probabilities.Add(def);
                    index++;
                }
            }