@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.
- package/README.md +256 -35
- package/dist/builder/index.cjs +947 -12
- package/dist/builder/index.cjs.map +1 -1
- package/dist/builder/index.d.cts +23 -2
- package/dist/builder/index.d.ts +23 -2
- package/dist/builder/index.js +947 -13
- package/dist/builder/index.js.map +1 -1
- package/dist/index.cjs +70 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +70 -2
- package/dist/index.js.map +1 -1
- package/dist/{pmf-CYaEbY7m.d.cts → pmf-BC1poIqF.d.cts} +31 -0
- package/dist/{pmf-CYaEbY7m.d.ts → pmf-BC1poIqF.d.ts} +31 -0
- package/package.json +1 -1
package/dist/builder/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as PMF, C as CritConfig, i as DiceQuery, L as LRUCache } from '../pmf-
|
|
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 };
|
package/dist/builder/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as PMF, C as CritConfig, i as DiceQuery, L as LRUCache } from '../pmf-
|
|
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 };
|