@yipe/dice 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +169 -19
  2. package/dist/builder/ac.d.ts.map +1 -1
  3. package/dist/builder/ast.d.ts +32 -2
  4. package/dist/builder/ast.d.ts.map +1 -1
  5. package/dist/builder/attack.d.ts.map +1 -1
  6. package/dist/builder/dc.d.ts.map +1 -1
  7. package/dist/builder/example.d.ts +4 -4
  8. package/dist/builder/example.d.ts.map +1 -1
  9. package/dist/builder/index.cjs +889 -90
  10. package/dist/builder/index.cjs.map +1 -1
  11. package/dist/builder/index.d.ts +1 -0
  12. package/dist/builder/index.d.ts.map +1 -1
  13. package/dist/builder/index.js +886 -91
  14. package/dist/builder/index.js.map +1 -1
  15. package/dist/builder/roll.d.ts +5 -1
  16. package/dist/builder/roll.d.ts.map +1 -1
  17. package/dist/builder/save.d.ts.map +1 -1
  18. package/dist/index.cjs +178 -15
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +177 -16
  23. package/dist/index.js.map +1 -1
  24. package/dist/parser/dice.d.ts +14 -0
  25. package/dist/parser/dice.d.ts.map +1 -1
  26. package/dist/parser/rollType.d.ts +58 -0
  27. package/dist/parser/rollType.d.ts.map +1 -0
  28. package/dist/pmf/pmf.d.ts +10 -4
  29. package/dist/pmf/pmf.d.ts.map +1 -1
  30. package/dist/pmf/query.d.ts +26 -0
  31. package/dist/pmf/query.d.ts.map +1 -1
  32. package/dist/turn/index.d.ts +3 -0
  33. package/dist/turn/index.d.ts.map +1 -0
  34. package/dist/turn/plan.d.ts +55 -0
  35. package/dist/turn/plan.d.ts.map +1 -0
  36. package/dist/turn/state.d.ts +23 -0
  37. package/dist/turn/state.d.ts.map +1 -0
  38. package/dist/turn/turn.d.ts +149 -0
  39. package/dist/turn/turn.d.ts.map +1 -0
  40. package/dist/turn/types.d.ts +99 -0
  41. package/dist/turn/types.d.ts.map +1 -0
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -121,6 +121,11 @@ src/
121
121
  ├── parser/ # String-based dice expression parser
122
122
  │ ├── parser.ts # Main parser implementation
123
123
  │ └── dice.ts # Dice class (legacy parser representation)
124
+ ├── turn/ # Turns: attacks + conditional damage riders
125
+ │ ├── types.ts # Trigger, Rider, TurnSpec, TurnSpecError
126
+ │ ├── plan.ts # Spec validation and step/group resolution
127
+ │ ├── state.ts # Packed per-group trigger state
128
+ │ └── turn.ts # Turn class - exact joint distribution
124
129
  ├── pmf/ # Probability Mass Function core
125
130
  │ ├── pmf.ts # PMF class - core data structure
126
131
  │ ├── query.ts # DiceQuery - analysis interface
@@ -329,27 +334,172 @@ try {
329
334
  }
330
335
  ```
331
336
 
332
- ### Sneak Attack (Conditional Damage)
337
+ For UI code that parses on every keystroke, `tryParse()` returns an empty PMF
338
+ instead of throwing, and accepts a bare integer — which the grammar rejects, but
339
+ a half-typed damage field is one for a keystroke or two:
333
340
 
334
- Conditional damage ("once-per-turn damage riders") like Sneak Attack can be modeled easily:
341
+ ```ts
342
+ import { tryParse } from "@yipe/dice";
343
+
344
+ tryParse("1d6 + 2").mean(); // 5.5
345
+ tryParse("-3").mean(); // -3 — signed integers, which the grammar rejects
346
+ tryParse("0x10").mass(); // 0 — decimal only
347
+ tryParse("1d").mass(); // 0 — empty PMF
348
+ ```
349
+
350
+ The failure value has **mass 0**, not a distribution, and convolving it collapses
351
+ the whole result to mass 0 — check `mass()` or skip empties when combining
352
+ several expressions. Where a bad expression should surface rather than be
353
+ absorbed, use `parse()` and handle `DiceParseError`.
354
+
355
+ ### Roll Types
356
+
357
+ `withRollType()` rewrites an expression's attack roll, leaving the damage, crit
358
+ and miss clauses alone — the usual way to chart one attack across advantage
359
+ states:
335
360
 
336
361
  ```ts
337
- import { DiceQuery, PMF, roll } from "@yipe/dice";
338
-
339
- function sneakAttack() {
340
- const attackPMF = d20.plus(8).ac(16).onHit(d4.plus(4)).pmf;
341
- const sneakAttack = roll(3, d6);
342
- const attacks = new DiceQuery([attackPMF, attackPMF]);
343
- const [pHit, pCrit] = attacks.firstSuccessSplit(onAnyHit, onCritOnly);
344
- const sneakPMF = PMF.exclusive([
345
- [sneakAttack.pmf, pHit],
346
- [sneakAttack.doubleDice().pmf, pCrit],
347
- ]);
348
-
349
- return new DiceQuery([attackPMF, attackPMF, sneakPMF]);
350
- }
362
+ import { withRollType } from "@yipe/dice";
363
+
364
+ const attack = "(d20 + 8 AC 16) * (1d4 + 4) crit (2d4 + 4)";
365
+
366
+ withRollType(attack, "advantage"); // "(d20 > d20 + 8 AC 16) * (1d4 + 4) crit (2d4 + 4)"
367
+ withRollType(attack, "elven accuracy"); // "(d20 > d20 > d20 + 8 AC 16) * ..."
368
+ ```
369
+
370
+ Every attack roll is rewritten, so an expression holding several attacks is fully
371
+ converted, nesting and all. Each `d20` is resolved against the nearest enclosing
372
+ check: `AC` is an attack roll, while `DC` is the *target's* saving throw, which
373
+ the attacker's advantage does not affect. Saves therefore come back unchanged, as
374
+ does anything with no check at all, which makes this safe to map over a mixed
375
+ list. A halfling-luck `h` prefix is preserved.
376
+
377
+ ### Damage Riders (Sneak Attack, Smite, Hunter's Mark)
378
+
379
+ Most of what makes 5e damage interesting is conditional: Sneak Attack needs *a* dagger to land,
380
+ Divine Smite wants a crit, a flurry of blows only happens if you didn't smite. A **`turn()`** is
381
+ attacks plus riders that fire based on what those attacks did.
382
+
383
+ ```ts
384
+ import { turn, d20, d4, d6, roll } from "@yipe/dice/builder";
385
+
386
+ const dagger = d20.plus(8).ac(16).onHit(d4.plus(4));
387
+
388
+ const rogue = turn([dagger, dagger]).onFirstHit(roll(3, d6));
389
+
390
+ rogue.mean(); // 18.6225
391
+ rogue.pmf.pAt(0); // 0.1225 — chance the whole turn whiffs
392
+ ```
393
+
394
+ That is the whole API for the common case. A `Turn` resolves the **exact joint distribution**: a
395
+ rider is correlated with the attacks that trigger it, so building one as a separate PMF and
396
+ convolving it in gets the right mean but the wrong shape — the example above would report a whiff
397
+ chance of 0.015 instead of 0.1225.
398
+
399
+ | method | fires | example |
400
+ |---|---|---|
401
+ | `onFirstHit` | once, on the first attack that lands — doubled if it crit | Sneak Attack |
402
+ | `onAnyCrit` | once, if any attack crit | Divine Smite |
403
+ | `onAnyMiss` | once, if any attack missed | Unerring Accuracy, Lucky |
404
+ | `onEveryHit` | once per attack that lands | Hunter's Mark, Hex, Rage |
405
+ | `otherwise` | when the rider before it did *not* | flurry of blows if you didn't smite |
406
+
407
+ #### Extra Attack
408
+
409
+ `attacks(count, source)` mirrors `roll(count, die)`, so the Fighter's four — or eight, with Action
410
+ Surge — stays one line:
411
+
412
+ ```ts
413
+ const sword = d20.plus(9).ac(16).onHit(d6.plus(5));
414
+
415
+ turn().attacks(4, sword).onEveryHit(d6).mean(); // 35.0 — hunter's mark on each hit
416
+ turn().attacks(8, sword).onEveryHit(d6).mean(); // 70.0 — action surge
417
+ ```
418
+
419
+ #### A rider can be anything that makes damage
420
+
421
+ Riders take the same builders attacks do, so "extra damage" and "an extra attack" are the same call.
422
+ A whole attack, a list of attacks, a flat bonus, or a saving throw all work:
423
+
424
+ ```ts
425
+ const dagger = d20.plus(8).ac(16).onHit(d4.plus(4));
426
+ const sword = d20.plus(9).ac(16).onHit(d6.plus(5));
427
+ const greatsword = d20.plus(9).ac(16).onHit(roll(2, d6).plus(5));
428
+ const unarmed = d20.plus(8).ac(16).onHit(d6.plus(4));
429
+ const poison = d20.dc(13).onSaveFailure(roll(3, d6)).saveHalf();
430
+
431
+ turn([greatsword, greatsword]).onAnyCrit(greatsword); // Great Weapon Master's bonus attack
432
+ turn([dagger]).onFirstHit(poison); // hit, then the target saves
433
+ turn([sword, sword]).onEveryHit(flat(2)); // Rage
434
+ turn([dagger, dagger]).onAnyCrit(roll(4, d8)).otherwise([unarmed, unarmed]); // smite, or flurry
435
+ ```
436
+
437
+ #### The hard build
438
+
439
+ A goliath rogue/monk/paladin, every trigger at once:
440
+
441
+ ```ts
442
+ const goliath = turn([dagger, dagger])
443
+ .onFirstHit(roll(3, d6)) // sneak attack
444
+ .onFirstHit(d10) // fire's burn
445
+ .onAnyCrit(roll(2, d8)) // divine smite
446
+ .otherwise([unarmed, unarmed]) // flurry of blows, if the smite didn't happen
447
+ .onEveryHit(d6); // hunter's mark
448
+
449
+ goliath.mean(); // 39.5903
450
+ goliath.toQuery().damageAttributionChartModel();
451
+ ```
452
+
453
+ Two things that would be easy to get wrong are handled for you. Riders sharing a trigger resolve
454
+ **jointly** — sneak attack and fire's burn fire together or not at all, which shows up in the spread
455
+ even though it never moves the mean. And `otherwise()` binds to the rider immediately before it, so
456
+ the smite and the flurry are two branches of one decision and can never both land.
457
+
458
+ #### Asking questions
459
+
460
+ ```ts
461
+ const t = turn([dagger, dagger]).onFirstHit(roll(3, d6));
462
+
463
+ t.mean(); // 18.6225
464
+ t.pmf.pAt(0); // 0.1225 — P(whiff)
465
+ t.pmf.stdev(); // 8.8860
466
+ t.toQuery().probTotalAtLeast(20); // 0.5062 — P(20+ damage)
467
+ t.toQuery().percentiles([0.25, 0.5, 0.75]); // [15, 20, 24]
468
+ ```
469
+
470
+ #### Ids, errors, and plain data
471
+
472
+ Nothing above needs an `id`: attacks and riders get `attack 1`, `rider 2`, … in declaration order,
473
+ and `otherwise()` finds its own target. Name a rider when you want to ask about it afterwards:
474
+
475
+ ```ts
476
+ const paladin = turn([dagger, dagger]).onAnyCrit(roll(2, d8), { id: "smite" });
477
+
478
+ paladin.fireProbability("smite"); // 0.0975
479
+ paladin.attackIds; // ["attack 1", "attack 2"]
480
+ paladin.riderIds; // ["smite"]
481
+ ```
482
+
483
+ Every construction path validates immediately and throws a `TurnSpecError` whose `code` —
484
+ `unknown-id`, `cycle`, `not-an-attack`, `duplicate-id`, `self-reference`, `unused-crit-damage`,
485
+ `too-many-groups` — maps
486
+ straight onto a UI field state. A bad `of` fails at the call that introduced it, not later at
487
+ `.mean()`.
488
+
489
+ Each `onX` method takes an optional `{ id, of, critDamage }`, where `of` picks which attacks the
490
+ rider watches and defaults to all of them. All of them are sugar over `rider()`, which takes the
491
+ trigger as plain data — and `Trigger` is JSON-safe, so a UI can persist one and hand it straight
492
+ back:
493
+
494
+ ```ts
495
+ import { Turn, d20, d4, d6, roll } from "@yipe/dice/builder";
496
+
497
+ const dagger = d20.plus(8).ac(16).onHit(d4.plus(4));
351
498
 
352
- console.log("DPR with once-per-turn sneak attack: ", sneakAttack().mean());
499
+ const fromUI = Turn.from({
500
+ attacks: [{ id: "dagger 1", source: dagger }, { id: "dagger 2", source: dagger }],
501
+ riders: [{ id: "sneak", damage: roll(3, d6), on: "first-hit" }],
502
+ });
353
503
  ```
354
504
 
355
505
  ### Statistics and Charts
@@ -386,7 +536,7 @@ This repository includes example scripts:
386
536
  ```bash
387
537
  yarn example basic
388
538
  yarn example stats
389
- yarn example sneakattack
539
+ yarn example turn
390
540
  yarn example misc
391
541
  ```
392
542
 
@@ -467,7 +617,7 @@ This enables rich statistics like "how much damage comes from crits vs hits".
467
617
  ## 🧱 Roadmap
468
618
 
469
619
  - [ ] Create a **web playground** with live examples
470
- - [ ] Consider creating higher-level APIs: `Turn`, `Attack`, `DamageRider`
620
+ - [x] Higher-level `Turn` API for conditional damage riders (0.9.0)
471
621
  - [ ] Add more comprehensive 5e rule examples
472
622
  - [ ] Performance improvements for DPR-only calculations
473
623
  - [ ] Multi-round and sustained vs nova simulations
@@ -1 +1 @@
1
- {"version":3,"file":"ac.d.ts","sourceRoot":"","sources":["../../src/builder/ac.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;CACvB;AACD,qBAAa,SAAU,SAAQ,WAAW;IACxC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAEpC,YAAY,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,EAQzE;IAMD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC;IACvC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC;IACtD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IACnD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IACxE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IAMrE,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEQ,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGjC;IAGD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAMnC;IAED,WAAW,IAAI,iBAAiB,CAS/B;IAGQ,YAAY,IAAI,MAAM,CAM9B;IAEQ,KAAK,CAAC,GAAG,GAAE,MAAU,GAAG,GAAG,CA0BnC;IAEQ,IAAI,IAAI,SAAS,CAOzB;CACF"}
1
+ {"version":3,"file":"ac.d.ts","sourceRoot":"","sources":["../../src/builder/ac.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;CACvB;AACD,qBAAa,SAAU,SAAQ,WAAW;IACxC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAEpC,YAAY,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,EAQzE;IAMD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC;IACvC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC;IACtD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IACnD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IACxE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IAMrE,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEQ,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGjC;IAGD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAMnC;IAED,WAAW,IAAI,iBAAiB,CAS/B;IAGQ,YAAY,IAAI,MAAM,CAM9B;IAEQ,KAAK,CAAC,GAAG,GAAE,MAAU,GAAG,GAAG,CAsBnC;IAEQ,IAAI,IAAI,SAAS,CAOzB;CACF"}
@@ -1,9 +1,39 @@
1
1
  import { PMF } from "../.js";
2
- import type { ExpressionNode } from "./nodes.js";
2
+ import type { DieNode, ExpressionNode } from "./nodes.js";
3
3
  import type { RollBuilder } from "./roll.js";
4
- import type { RollConfig } from "./types.js";
4
+ import type { RollConfig, RollType } from "./types.js";
5
+ export declare function dieNodeFromConfig(cfg: RollConfig): DieNode;
5
6
  export declare function astFromRollConfigs(configs: readonly RollConfig[]): ExpressionNode | undefined;
6
7
  export declare function resolve(node: ExpressionNode, eps?: number): PMF;
7
8
  export declare function pmfFromRollBuilder(rb: RollBuilder, eps?: number): PMF;
9
+ /**
10
+ * Resolve a d20-shaped die (honoring reroll/minimum/explode via {@link resolveSingleDie}) then
11
+ * lift it into advantage/disadvantage/elven accuracy. Each of the 2 or 3 rolls compared is an
12
+ * independent draw from that SAME resolved marginal — so a Halfling Lucky reroll or a
13
+ * Trance-of-Order floor applies per-die, matching RAW (you reroll/floor each d20 you roll, not
14
+ * just a single "representative" one). This generalizes {@link d20RollPMF}, which only ever
15
+ * modeled the plain-uniform-plus-reroll-1 case; callers that resolve a die with no minimum/
16
+ * explode/deeper reroll get bit-identical results to `d20RollPMF` (verified: the reroll-only
17
+ * formula below reduces to the same closed form).
18
+ *
19
+ * Deliberately ignores any caller-facing output-precision `eps` (matching `d20RollPMF`'s own
20
+ * contract): this builds the FOUNDATIONAL check-die distribution, where every face carries real
21
+ * probability mass (e.g. 1/20 per face on a flat d20) — pruning it against an output-rounding
22
+ * epsilon (some callers request eps as coarse as 0.1 purely to round the FINAL hit/miss/crit
23
+ * mixture) would silently delete real faces instead of real noise. Always resolves at the
24
+ * library's near-zero {@link defaultEps} internally; only the mixture built on top of this
25
+ * result should be pruned against the caller's requested eps.
26
+ */
27
+ export declare function resolveD20Roll(die: DieNode, rollType: RollType | undefined): PMF;
28
+ /**
29
+ * Resolve a check builder's root die (the to-hit/save d20, or whatever die it wraps), honoring
30
+ * that die's reroll/minimum/explode, then lift by its `rollType`. The single entry point every
31
+ * attack/save check builder ({@link ACBuilder}, {@link AttackBuilder}, {@link AlwaysHitBuilder},
32
+ * {@link AlwaysCritBuilder}, `DCBuilder`, save `resolveProbabilities`) should use instead of
33
+ * reaching for `d20RollPMF(rollType, baseReroll > 0)` directly — that 2-argument summary silently
34
+ * drops `minimum`/`explode` on the root config.
35
+ */
36
+ export declare function resolveRootD20(check: RollBuilder): PMF;
37
+ export declare function resolveSingleDie(die: DieNode, eps?: number): PMF;
8
38
  export declare function getASTSignature(node: ExpressionNode): string;
9
39
  //# sourceMappingURL=ast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/builder/ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,GAAG,EAAE,MAAM,KAAK,CAAC;AAGpC,OAAO,KAAK,EAKV,cAAc,EAIf,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAO1C,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,UAAU,EAAE,GAC7B,cAAc,GAAG,SAAS,CAqH5B;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,GAAE,MAAmB,GAAG,GAAG,CAyF3E;AAED,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,WAAW,EACf,GAAG,GAAE,MAAmB,GACvB,GAAG,CAGL;AAsUD,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAsD5D"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/builder/ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,GAAG,EAAE,MAAM,KAAK,CAAC;AAGpC,OAAO,KAAK,EAIV,OAAO,EACP,cAAc,EAIf,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOpD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAW1D;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,UAAU,EAAE,GAC7B,cAAc,GAAG,SAAS,CAyH5B;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,GAAE,MAAmB,GAAG,GAAG,CAyF3E;AAED,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,WAAW,EACf,GAAG,GAAE,MAAmB,GACvB,GAAG,CAGL;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,GAAG,CA8BhF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAOtD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,GAAE,MAAmB,GAAG,GAAG,CAsE5E;AA6PD,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAsD5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"attack.d.ts","sourceRoot":"","sources":["../../src/builder/attack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attack.d.ts","sourceRoot":"","sources":["../../src/builder/attack.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dc.d.ts","sourceRoot":"","sources":["../../src/builder/dc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAQD,uDAAuD;AACvD,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,qBAAa,SAAU,SAAQ,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,YAAY,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,UAAU,EAGzD;IAEQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAOrC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEQ,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAGhD;IAEQ,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAG1C;IAED,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;IACxC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;IACxC,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAAC;IAC7C,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CAAC;IAC5D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;IACzD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9E,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;IAMlE,iBAAiB,IAAI,KAAK,CAIlC;IAGQ,YAAY,IAAI,MAAM,CAK9B;IAED;;;;OAIG;IACM,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGjC;IAEQ,KAAK,CAAC,GAAG,GAAE,MAAU,GAAG,GAAG,CAoCnC;CACF"}
1
+ {"version":3,"file":"dc.d.ts","sourceRoot":"","sources":["../../src/builder/dc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAQD,uDAAuD;AACvD,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,qBAAa,SAAU,SAAQ,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,YAAY,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,UAAU,EAGzD;IAEQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAOrC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEQ,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAGhD;IAEQ,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAG1C;IAED,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;IACxC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;IACxC,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAAC;IAC7C,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CAAC;IAC5D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;IACzD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9E,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;IAMlE,iBAAiB,IAAI,KAAK,CAIlC;IAGQ,YAAY,IAAI,MAAM,CAK9B;IAED;;;;OAIG;IACM,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGjC;IAEQ,KAAK,CAAC,GAAG,GAAE,MAAU,GAAG,GAAG,CAkCnC;CACF"}
@@ -73,16 +73,16 @@ export declare const halflingAdv: RollBuilder;
73
73
  export declare const halflingAdvExprExpected = "hd20 > hd20";
74
74
  /** Reroll 1s and 2s on 2d6. */
75
75
  export declare const twoD6Reroll12: RollBuilder;
76
- export declare const twoD6Reroll12ExprExpected = "2(d6 reroll 1 reroll 2)";
76
+ export declare const twoD6Reroll12ExprExpected = "2(d6 reroll d2)";
77
77
  /** Minimum 2 on a d6. */
78
78
  export declare const min2OnD6: RollBuilder;
79
79
  export declare const min2OnD6ExprExpected = "2>d6";
80
80
  /** Keep highest 3 of 4d6. */
81
81
  export declare const kh3Of4d6: RollBuilder;
82
- export declare const kh3Of4d6ExprExpected = "4kh3(4d6)";
82
+ export declare const kh3Of4d6ExprExpected = "4kh3(1d6)";
83
83
  /** Keep lowest 2 of 4d8. */
84
84
  export declare const kl2Of4d8: RollBuilder;
85
- export declare const kl2Of4d8ExprExpected = "4kl2(4d8)";
85
+ export declare const kl2Of4d8ExprExpected = "4kl2(1d8)";
86
86
  /** Advantage on d20. */
87
87
  export declare const advD20: RollBuilder;
88
88
  export declare const advD20ExprExpected = "d20 > d20";
@@ -105,7 +105,7 @@ export declare const doubledD8ExprExpected = "2d8 + 5";
105
105
  * Roll a set of dice and take the highest N dice rolls.
106
106
  */
107
107
  export declare const bestOfExample: RollBuilder;
108
- export declare const bestOfExampleExprExpected = "4d6kh3";
108
+ export declare const bestOfExampleExprExpected = "4kh3(1d6)";
109
109
  /** Double a d6 roll, resulting in 2d6. */
110
110
  export declare const doubleD6: RollBuilder;
111
111
  export declare const doubleD6ExprExpected = "2d6";
@@ -1 +1 @@
1
- {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../src/builder/example.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../src/builder/example.ts"],"names":[],"mappings":"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"}