private float Roll(Type type, float scale = 1f) { StatRoll roller = statRolls[(int)type]; Debug.Assert(roller != null); return(roller.Roll(GetRaw(type), MaxStatValue, scale)); }
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); }