@yipe/dice 0.2.16 → 0.2.19

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.
@@ -1,4 +1,4 @@
1
- import { P as PMF, C as CritConfig, i as DiceQuery, L as LRUCache } from '../pmf-CYaEbY7m.cjs';
1
+ import { P as PMF, C as CritConfig, i as DiceQuery, L as LRUCache } from '../pmf-BC1poIqF.cjs';
2
2
 
3
3
  type ExpressionNode = DieNode | ConstantNode | SumNode | AddNode | KeepNode | D20RollNode | HalfNode | MaxOfNode;
4
4
  type DieNode = {
@@ -192,6 +192,7 @@ declare class AlwaysHitBuilder extends RollBuilder {
192
192
  readonly attackConfig: CritConfig;
193
193
  constructor(baseRoll: RollBuilder, attackConfig?: CritConfig);
194
194
  onHit(val: number): AttackBuilder;
195
+ onHit(val: string): AttackBuilder;
195
196
  onHit(val: RollBuilder): AttackBuilder;
196
197
  onHit(count: number, die: RollBuilder): AttackBuilder;
197
198
  onHit(count: number, sides: number): AttackBuilder;
@@ -213,6 +214,7 @@ declare class AlwaysCritBuilder extends RollBuilder {
213
214
  ac?: number;
214
215
  }, fromAlwaysHit?: boolean);
215
216
  onHit(val: number): AttackBuilder;
217
+ onHit(val: string): AttackBuilder;
216
218
  onHit(val: RollBuilder): AttackBuilder;
217
219
  onHit(count: number, die: RollBuilder): AttackBuilder;
218
220
  onHit(count: number, sides: number): AttackBuilder;
@@ -224,6 +226,22 @@ declare class AlwaysCritBuilder extends RollBuilder {
224
226
  toPMF(): PMF;
225
227
  copy(): AlwaysCritBuilder;
226
228
  }
229
+ /**
230
+ * A RollBuilder that wraps a pre-computed PMF from a parsed string expression.
231
+ * This is used to support string-based damage expressions in onHit/onCrit/onMiss.
232
+ * The builder is not fully composable (e.g., you can't call .plus() on it),
233
+ * but it can be used anywhere a RollBuilder is expected for terminal damage.
234
+ */
235
+ declare class ParsedRollBuilder extends RollBuilder {
236
+ private readonly cachedPMF;
237
+ private readonly originalExpression;
238
+ constructor(expression: string);
239
+ toPMF(eps?: number): PMF;
240
+ toExpression(): string;
241
+ toAST(): ExpressionNode;
242
+ copy(): ParsedRollBuilder;
243
+ doubleDice(): ParsedRollBuilder;
244
+ }
227
245
 
228
246
  type ActionEffect = RollBuilder;
229
247
  declare class AttackBuilder implements CheckBuilder {
@@ -233,12 +251,14 @@ declare class AttackBuilder implements CheckBuilder {
233
251
  private readonly missEffect?;
234
252
  constructor(check: ACBuilder | AlwaysHitBuilder | AlwaysCritBuilder, hitEffect?: ActionEffect, critEffect?: ActionEffect | null, missEffect?: ActionEffect);
235
253
  onCrit(val: number): AttackBuilder;
254
+ onCrit(val: string): AttackBuilder;
236
255
  onCrit(val: RollBuilder): AttackBuilder;
237
256
  onCrit(count: number, die: RollBuilder): AttackBuilder;
238
257
  onCrit(count: number, sides: number): AttackBuilder;
239
258
  onCrit(count: number, die: RollBuilder, modifier: number): AttackBuilder;
240
259
  onCrit(count: number, sides: number, modifier: number): AttackBuilder;
241
260
  onMiss(val: number): AttackBuilder;
261
+ onMiss(val: string): AttackBuilder;
242
262
  onMiss(val: RollBuilder): AttackBuilder;
243
263
  onMiss(count: number, die: RollBuilder): AttackBuilder;
244
264
  onMiss(count: number, sides: number): AttackBuilder;
@@ -266,6 +286,7 @@ declare class ACBuilder extends RollBuilder {
266
286
  readonly attackConfig: AttackConfig;
267
287
  constructor(baseRoll: RollBuilder, ac: number, attackConfig?: AttackConfig);
268
288
  onHit(val: number): AttackBuilder;
289
+ onHit(val: string): AttackBuilder;
269
290
  onHit(val: RollBuilder): AttackBuilder;
270
291
  onHit(count: number, die: RollBuilder): AttackBuilder;
271
292
  onHit(count: number, sides: number): AttackBuilder;
@@ -337,4 +358,4 @@ declare const flat: (n: number) => RollBuilder;
337
358
  declare const roll: RollFactory;
338
359
  declare const builderPMFCache: LRUCache<string, PMF>;
339
360
 
340
- export { ACBuilder, AlwaysCritBuilder, AlwaysHitBuilder, type AttackConfig, type AttackResolution, type CheckBuilder, DCBuilder, HalfRollBuilder, type KeepMode, MaxOfRollBuilder, type Resolution, RollBuilder, type RollConfig, type RollFactory, type RollType, SaveBuilder, type SaveOutcome, type SaveResolution, builderPMFCache, d, d10, d100, d12, d20, d4, d6, d8, defaultConfig, flat, hd20, roll };
361
+ export { ACBuilder, AlwaysCritBuilder, AlwaysHitBuilder, type AttackConfig, type AttackResolution, type CheckBuilder, DCBuilder, HalfRollBuilder, type KeepMode, MaxOfRollBuilder, ParsedRollBuilder, type Resolution, RollBuilder, type RollConfig, type RollFactory, type RollType, SaveBuilder, type SaveOutcome, type SaveResolution, builderPMFCache, d, d10, d100, d12, d20, d4, d6, d8, defaultConfig, flat, hd20, roll };
@@ -1,4 +1,4 @@
1
- import { P as PMF, C as CritConfig, i as DiceQuery, L as LRUCache } from '../pmf-CYaEbY7m.js';
1
+ import { P as PMF, C as CritConfig, i as DiceQuery, L as LRUCache } from '../pmf-BC1poIqF.js';
2
2
 
3
3
  type ExpressionNode = DieNode | ConstantNode | SumNode | AddNode | KeepNode | D20RollNode | HalfNode | MaxOfNode;
4
4
  type DieNode = {
@@ -192,6 +192,7 @@ declare class AlwaysHitBuilder extends RollBuilder {
192
192
  readonly attackConfig: CritConfig;
193
193
  constructor(baseRoll: RollBuilder, attackConfig?: CritConfig);
194
194
  onHit(val: number): AttackBuilder;
195
+ onHit(val: string): AttackBuilder;
195
196
  onHit(val: RollBuilder): AttackBuilder;
196
197
  onHit(count: number, die: RollBuilder): AttackBuilder;
197
198
  onHit(count: number, sides: number): AttackBuilder;
@@ -213,6 +214,7 @@ declare class AlwaysCritBuilder extends RollBuilder {
213
214
  ac?: number;
214
215
  }, fromAlwaysHit?: boolean);
215
216
  onHit(val: number): AttackBuilder;
217
+ onHit(val: string): AttackBuilder;
216
218
  onHit(val: RollBuilder): AttackBuilder;
217
219
  onHit(count: number, die: RollBuilder): AttackBuilder;
218
220
  onHit(count: number, sides: number): AttackBuilder;
@@ -224,6 +226,22 @@ declare class AlwaysCritBuilder extends RollBuilder {
224
226
  toPMF(): PMF;
225
227
  copy(): AlwaysCritBuilder;
226
228
  }
229
+ /**
230
+ * A RollBuilder that wraps a pre-computed PMF from a parsed string expression.
231
+ * This is used to support string-based damage expressions in onHit/onCrit/onMiss.
232
+ * The builder is not fully composable (e.g., you can't call .plus() on it),
233
+ * but it can be used anywhere a RollBuilder is expected for terminal damage.
234
+ */
235
+ declare class ParsedRollBuilder extends RollBuilder {
236
+ private readonly cachedPMF;
237
+ private readonly originalExpression;
238
+ constructor(expression: string);
239
+ toPMF(eps?: number): PMF;
240
+ toExpression(): string;
241
+ toAST(): ExpressionNode;
242
+ copy(): ParsedRollBuilder;
243
+ doubleDice(): ParsedRollBuilder;
244
+ }
227
245
 
228
246
  type ActionEffect = RollBuilder;
229
247
  declare class AttackBuilder implements CheckBuilder {
@@ -233,12 +251,14 @@ declare class AttackBuilder implements CheckBuilder {
233
251
  private readonly missEffect?;
234
252
  constructor(check: ACBuilder | AlwaysHitBuilder | AlwaysCritBuilder, hitEffect?: ActionEffect, critEffect?: ActionEffect | null, missEffect?: ActionEffect);
235
253
  onCrit(val: number): AttackBuilder;
254
+ onCrit(val: string): AttackBuilder;
236
255
  onCrit(val: RollBuilder): AttackBuilder;
237
256
  onCrit(count: number, die: RollBuilder): AttackBuilder;
238
257
  onCrit(count: number, sides: number): AttackBuilder;
239
258
  onCrit(count: number, die: RollBuilder, modifier: number): AttackBuilder;
240
259
  onCrit(count: number, sides: number, modifier: number): AttackBuilder;
241
260
  onMiss(val: number): AttackBuilder;
261
+ onMiss(val: string): AttackBuilder;
242
262
  onMiss(val: RollBuilder): AttackBuilder;
243
263
  onMiss(count: number, die: RollBuilder): AttackBuilder;
244
264
  onMiss(count: number, sides: number): AttackBuilder;
@@ -266,6 +286,7 @@ declare class ACBuilder extends RollBuilder {
266
286
  readonly attackConfig: AttackConfig;
267
287
  constructor(baseRoll: RollBuilder, ac: number, attackConfig?: AttackConfig);
268
288
  onHit(val: number): AttackBuilder;
289
+ onHit(val: string): AttackBuilder;
269
290
  onHit(val: RollBuilder): AttackBuilder;
270
291
  onHit(count: number, die: RollBuilder): AttackBuilder;
271
292
  onHit(count: number, sides: number): AttackBuilder;
@@ -337,4 +358,4 @@ declare const flat: (n: number) => RollBuilder;
337
358
  declare const roll: RollFactory;
338
359
  declare const builderPMFCache: LRUCache<string, PMF>;
339
360
 
340
- export { ACBuilder, AlwaysCritBuilder, AlwaysHitBuilder, type AttackConfig, type AttackResolution, type CheckBuilder, DCBuilder, HalfRollBuilder, type KeepMode, MaxOfRollBuilder, type Resolution, RollBuilder, type RollConfig, type RollFactory, type RollType, SaveBuilder, type SaveOutcome, type SaveResolution, builderPMFCache, d, d10, d100, d12, d20, d4, d6, d8, defaultConfig, flat, hd20, roll };
361
+ export { ACBuilder, AlwaysCritBuilder, AlwaysHitBuilder, type AttackConfig, type AttackResolution, type CheckBuilder, DCBuilder, HalfRollBuilder, type KeepMode, MaxOfRollBuilder, ParsedRollBuilder, type Resolution, RollBuilder, type RollConfig, type RollFactory, type RollType, SaveBuilder, type SaveOutcome, type SaveResolution, builderPMFCache, d, d10, d100, d12, d20, d4, d6, d8, defaultConfig, flat, hd20, roll };