@@ -107,6 +107,9 @@ void main() {
107107* cap/clamp:
108108 * ` 4d20 C<5 ` -- roll 4d20, change any value < 5 to 5
109109 * ` 4d20 C>15 ` -- roll 4d20, change any value > 15 to 15
110+ * sorting results
111+ * ` 4d20 s ` -- results sorted in ascending order
112+ * ` 4d20 sd ` -- results sorted in descending order
110113
111114* scoring dice rolls:
112115 * counting:
@@ -234,16 +237,100 @@ Sometimes it's nice to change the output type so you can see the graph of result
234237
235238``` console
236239# show the result graph:
237- ❯ dart run example/main.dart -o pretty ' 3d6 #cs #cf'
238- (((3d6) #cs ) #cf ) ===> RollSummary(total: 9, results: [1(d6)❌, 3(d6), 5(d6)], critFailureCount: 1)
239- (((3d6) #cs ) #cf ) =count=> RollResult(total: 9, results: [1(d6)❌, 3(d6), 5(d6)])
240- ((3d6) #cs ) =count=> RollResult(total: 9, results: [1(d6), 3(d6), 5(d6)])
241- (3d6) =rollDice=> RollResult(total: 9, results: [1(d6), 3(d6), 5(d6)])
242-
243- ❯ dart run example/main.dart -o json ' 3d6 #cs #cf'
244- {"expression":"(((3d6) #cs ) #cf )","total":9,"results":[2,3,4],"detailedResults":{"expression":"(((3d6) #cs ) #cf )","opType":"count","nsides":6,"ndice":3,"results":[2,3,4],"left":{"expression":"((3d6) #cs )","opType":"count","nsides":6,"ndice":3,"results":[2,3,4],"left":{"expression":"(3d6)","opType":"rollDice","nsides":6,"ndice":3,"results":[2,3,4],"metadata":{"rolled":[2,3,4]}}}},"metadata":{"rolled":[2,3,4]}}
245-
240+ ❯ dart run example/main.dart -o pretty ' 3d6 #cs #cf'
241+ (((3d6) #cs ) #cf ) ===> RollSummary(total: 13, results: [6(d6✅), 5(d6), 2(d6)], critSuccessCount: 1)
242+ (((3d6) #cs ) #cf ) =count=> RollResult(total: 13, results: [6(d6✅), 5(d6), 2(d6)])
243+ ((3d6) #cs ) =count=> RollResult(total: 13, results: [6(d6✅), 5(d6), 2(d6)])
244+ (3d6) =rollDice=> RollResult(total: 13, results: [6(d6), 5(d6), 2(d6)])
246245
246+ ❯ dart run example/main.dart -o json ' 3d6 #cs #cf' | jq
247+ {
248+ "expression": "(((3d6) #cs ) #cf )",
249+ "total": 12,
250+ "results": [
251+ {
252+ "result": 4,
253+ "nsides": 6,
254+ "dieType": "polyhedral"
255+ },
256+ {
257+ "result": 5,
258+ "nsides": 6,
259+ "dieType": "polyhedral"
260+ },
261+ {
262+ "result": 3,
263+ "nsides": 6,
264+ "dieType": "polyhedral"
265+ }
266+ ],
267+ "detailedResults": {
268+ "expression": "(((3d6) #cs ) #cf )",
269+ "opType": "count",
270+ "results": [
271+ {
272+ "result": 4,
273+ "nsides": 6,
274+ "dieType": "polyhedral"
275+ },
276+ {
277+ "result": 5,
278+ "nsides": 6,
279+ "dieType": "polyhedral"
280+ },
281+ {
282+ "result": 3,
283+ "nsides": 6,
284+ "dieType": "polyhedral"
285+ }
286+ ],
287+ "left": {
288+ "expression": "((3d6) #cs )",
289+ "opType": "count",
290+ "results": [
291+ {
292+ "result": 4,
293+ "nsides": 6,
294+ "dieType": "polyhedral"
295+ },
296+ {
297+ "result": 5,
298+ "nsides": 6,
299+ "dieType": "polyhedral"
300+ },
301+ {
302+ "result": 3,
303+ "nsides": 6,
304+ "dieType": "polyhedral"
305+ }
306+ ],
307+ "left": {
308+ "expression": "(3d6)",
309+ "opType": "rollDice",
310+ "results": [
311+ {
312+ "result": 4,
313+ "nsides": 6,
314+ "dieType": "polyhedral"
315+ },
316+ {
317+ "result": 5,
318+ "nsides": 6,
319+ "dieType": "polyhedral"
320+ },
321+ {
322+ "result": 3,
323+ "nsides": 6,
324+ "dieType": "polyhedral"
325+ }
326+ ],
327+ "total": 12
328+ },
329+ "total": 12
330+ },
331+ "total": 12
332+ }
333+ }
247334```
248335
249336## Statistics output
0 commit comments