public static long Roll(DiceRoll dice) { long total = 0; foreach (var _ in..dice.Count) { total += rng.Next(dice.Dice) + 1; } return(total + dice.Modifier); }
public static long Roll(DiceRoll dice, out string log) { StringBuilder sb = new("["); long total = 0; foreach (var i in..dice.Count) { var v = (rng.Next(dice.Dice) + 1); sb.Append($"{(i == 0 ? string.Empty : "+")}{v}"); total += v; } sb.Append("]"); if (dice.Modifier != 0) { sb.Append($" {dice.Sign} {Math.Abs(dice.Modifier)}"); } log = sb.ToString(); return(total + dice.Modifier); }