using System.Text.RegularExpressions; namespace Dungeoneer { public sealed class Command { public static void Roll(IList args) { if(args.Count == 0) return; var expression = ""; foreach(string arg in args) { string part; if(arg.Contains('d')) { var parts = arg.Split('d'); var first = parts[0]; var second = parts[1]; int count; int sides; try { count = int.Parse(first); sides = int.Parse(second); } catch { Console.WriteLine("'{arg}' is not a valid dice expression"); return; } var result = 0; for(int i = 0; i < count; i++) result += Util.Roll(sides); part = result.ToString(); } else part = arg; expression += $"{part} "; } dynamic output = Scripting.Expr($"eval('{expression}')"); Console.WriteLine($"{expression}\n=> {output}"); } } }