Esempio n. 1
0
    static public T GetRandomValue <T>(System.Random random, IHistogram model, IEnumerable <T> whitelist) where T : Enum
    {
        int result = random.Next(model.GetTotal <T>(whitelist));

        foreach (T t in whitelist)
        {
            result -= model.GetValue <T>(t);
            if (result < 0)
            {
                return(t);
            }
        }

        // Should never get here
        Debug.Log("Wasn't able to generate a random value for " + typeof(T).ToString() + ", returning first value");
        return((T)Enum.GetValues(typeof(T)).GetValue(0));
    }