Example #1
0
    private float Roll(Type type, float scale = 1f)
    {
        StatRoll roller = statRolls[(int)type];

        Debug.Assert(roller != null);
        return(roller.Roll(GetRaw(type), MaxStatValue, scale));
    }
Example #2
0
        public void Test1()
        {
            var iters          = 1000000;
            var raw            = new List <StatRoll>();
            var attributeRolls = new List <(StatRoll[] rolls, int sum)>();

            for (int i = 0; i < iters; i++)
            {
                var attr = new StatRoll[6];

                for (int a = 0; a < 6; a++)
                {
                    var r = new StatRoll(FourD6Drop1());

                    raw.Add(r);
                    attr[a] = r;
                }

                attributeRolls.Add((attr, attr.Sum(a => a.Sum)));
            }

            var msg = $"Overall: {raw.Average(r => r.Sum)} Stat Set: {attributeRolls.Average(a => a.sum)}";

            Console.WriteLine(msg);

            Assert.Pass(msg);
        }