@yipe/dice 0.5.0 → 0.6.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.
- package/dist/builder/ac.d.ts +25 -0
- package/dist/builder/ac.d.ts.map +1 -0
- package/dist/builder/ast.d.ts +9 -0
- package/dist/builder/ast.d.ts.map +1 -0
- package/dist/builder/attack.d.ts +41 -0
- package/dist/builder/attack.d.ts.map +1 -0
- package/dist/builder/d20.d.ts +6 -0
- package/dist/builder/d20.d.ts.map +1 -0
- package/dist/builder/dc.d.ts +26 -0
- package/dist/builder/dc.d.ts.map +1 -0
- package/dist/builder/example.d.ts +356 -0
- package/dist/builder/example.d.ts.map +1 -0
- package/dist/builder/factory.d.ts +17 -0
- package/dist/builder/factory.d.ts.map +1 -0
- package/dist/builder/index.d.ts +8 -429
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/nodes.d.ts +61 -0
- package/dist/builder/nodes.d.ts.map +1 -0
- package/dist/builder/prob.d.ts +3 -0
- package/dist/builder/prob.d.ts.map +1 -0
- package/dist/builder/roll.d.ts +205 -0
- package/dist/builder/roll.d.ts.map +1 -0
- package/dist/builder/save.d.ts +19 -0
- package/dist/builder/save.d.ts.map +1 -0
- package/dist/builder/types.d.ts +66 -0
- package/dist/builder/types.d.ts.map +1 -0
- package/dist/common/bounce.d.ts +32 -0
- package/dist/common/bounce.d.ts.map +1 -0
- package/dist/common/errors.d.ts +26 -0
- package/dist/common/errors.d.ts.map +1 -0
- package/dist/common/lru-cache.d.ts +17 -0
- package/dist/common/lru-cache.d.ts.map +1 -0
- package/dist/common/types.d.ts +65 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/index.d.ts +9 -111
- package/dist/index.d.ts.map +1 -0
- package/dist/parser/dice.d.ts +70 -0
- package/dist/parser/dice.d.ts.map +1 -0
- package/dist/parser/parser.d.ts +14 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/pmf/mixture.d.ts +37 -0
- package/dist/pmf/mixture.d.ts.map +1 -0
- package/dist/pmf/pmf.d.ts +380 -0
- package/dist/pmf/pmf.d.ts.map +1 -0
- package/dist/{pmf-D5VRghZI.d.cts → pmf/query.d.ts} +6 -464
- package/dist/pmf/query.d.ts.map +1 -0
- package/package.json +16 -15
- package/.claude/worktrees/amazing-matsumoto-27220c/LICENSE +0 -21
- package/.claude/worktrees/amazing-matsumoto-27220c/README.md +0 -518
- package/.claude/worktrees/vibrant-lovelace-0cc9e7/LICENSE +0 -21
- package/.claude/worktrees/vibrant-lovelace-0cc9e7/README.md +0 -518
- package/.claude/worktrees/wizardly-mclean-e375de/LICENSE +0 -21
- package/.claude/worktrees/wizardly-mclean-e375de/README.md +0 -518
- package/CHANGELOG.md +0 -239
- package/dist/builder/index.d.cts +0 -429
- package/dist/index.d.cts +0 -111
- package/dist/pmf-D5VRghZI.d.ts +0 -1129
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PMF } from "../pmf/pmf.js";
|
|
2
|
+
import { AttackBuilder } from "./attack.js";
|
|
3
|
+
import { AlwaysCritBuilder, RollBuilder } from "./roll.js";
|
|
4
|
+
export interface AttackConfig {
|
|
5
|
+
ac: number;
|
|
6
|
+
critThreshold: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class ACBuilder extends RollBuilder {
|
|
9
|
+
readonly attackConfig: AttackConfig;
|
|
10
|
+
constructor(baseRoll: RollBuilder, ac: number, attackConfig?: AttackConfig);
|
|
11
|
+
onHit(val: number): AttackBuilder;
|
|
12
|
+
onHit(val: string): AttackBuilder;
|
|
13
|
+
onHit(val: RollBuilder): AttackBuilder;
|
|
14
|
+
onHit(count: number, die: RollBuilder): AttackBuilder;
|
|
15
|
+
onHit(count: number, sides: number): AttackBuilder;
|
|
16
|
+
onHit(count: number, die: RollBuilder, modifier: number): AttackBuilder;
|
|
17
|
+
onHit(count: number, sides: number, modifier: number): AttackBuilder;
|
|
18
|
+
get critThreshold(): number;
|
|
19
|
+
critOn(threshold: number): ACBuilder;
|
|
20
|
+
alwaysCrits(): AlwaysCritBuilder;
|
|
21
|
+
toExpression(): string;
|
|
22
|
+
toPMF(eps?: number): PMF;
|
|
23
|
+
copy(): ACBuilder;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ac.d.ts.map
|
|
@@ -0,0 +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;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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PMF } from "../.js";
|
|
2
|
+
import type { ExpressionNode } from "./nodes.js";
|
|
3
|
+
import type { RollBuilder } from "./roll.js";
|
|
4
|
+
import type { RollConfig } from "./types.js";
|
|
5
|
+
export declare function astFromRollConfigs(configs: readonly RollConfig[]): ExpressionNode | undefined;
|
|
6
|
+
export declare function resolve(node: ExpressionNode, eps?: number): PMF;
|
|
7
|
+
export declare function pmfFromRollBuilder(rb: RollBuilder, eps?: number): PMF;
|
|
8
|
+
export declare function getASTSignature(node: ExpressionNode): string;
|
|
9
|
+
//# sourceMappingURL=ast.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { PMF } from "../pmf/pmf.js";
|
|
2
|
+
import type { DiceQuery } from "../pmf/query.js";
|
|
3
|
+
import type { ACBuilder } from "./ac.js";
|
|
4
|
+
import { AlwaysCritBuilder, AlwaysHitBuilder, RollBuilder } from "./roll.js";
|
|
5
|
+
import type { AttackResolution, CheckBuilder } from "./types.js";
|
|
6
|
+
type ActionEffect = RollBuilder;
|
|
7
|
+
export declare class AttackBuilder implements CheckBuilder {
|
|
8
|
+
readonly check: ACBuilder | AlwaysHitBuilder | AlwaysCritBuilder;
|
|
9
|
+
private readonly hitEffect?;
|
|
10
|
+
private readonly critEffect?;
|
|
11
|
+
private readonly missEffect?;
|
|
12
|
+
constructor(check: ACBuilder | AlwaysHitBuilder | AlwaysCritBuilder, hitEffect?: ActionEffect | undefined, critEffect?: ActionEffect | null | undefined, missEffect?: ActionEffect | undefined);
|
|
13
|
+
onCrit(val: number): AttackBuilder;
|
|
14
|
+
onCrit(val: string): AttackBuilder;
|
|
15
|
+
onCrit(val: RollBuilder): AttackBuilder;
|
|
16
|
+
onCrit(count: number, die: RollBuilder): AttackBuilder;
|
|
17
|
+
onCrit(count: number, sides: number): AttackBuilder;
|
|
18
|
+
onCrit(count: number, die: RollBuilder, modifier: number): AttackBuilder;
|
|
19
|
+
onCrit(count: number, sides: number, modifier: number): AttackBuilder;
|
|
20
|
+
onMiss(val: number): AttackBuilder;
|
|
21
|
+
onMiss(val: string): AttackBuilder;
|
|
22
|
+
onMiss(val: RollBuilder): AttackBuilder;
|
|
23
|
+
onMiss(count: number, die: RollBuilder): AttackBuilder;
|
|
24
|
+
onMiss(count: number, sides: number): AttackBuilder;
|
|
25
|
+
onMiss(count: number, die: RollBuilder, modifier: number): AttackBuilder;
|
|
26
|
+
onMiss(count: number, sides: number, modifier: number): AttackBuilder;
|
|
27
|
+
noCrit(): AttackBuilder;
|
|
28
|
+
toExpression(): string;
|
|
29
|
+
resolveProbabilities(check: ACBuilder | AlwaysHitBuilder | AlwaysCritBuilder, eps?: number): {
|
|
30
|
+
pSuccess: number;
|
|
31
|
+
pHit: number;
|
|
32
|
+
pCrit: number;
|
|
33
|
+
pMiss: number;
|
|
34
|
+
};
|
|
35
|
+
resolve(eps?: number): AttackResolution;
|
|
36
|
+
toPMF(eps?: number): PMF;
|
|
37
|
+
get pmf(): PMF;
|
|
38
|
+
toQuery(eps?: number): DiceQuery;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=attack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attack.d.ts","sourceRoot":"","sources":["../../src/builder/attack.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGtC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAEhB,WAAW,EACZ,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,KAAK,YAAY,GAAG,WAAW,CAAC;AAEhC,qBAAa,aAAc,YAAW,YAAY;IAE9C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,GAAG,iBAAiB;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAJ9B,YACW,KAAK,EAAE,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,EAC/C,SAAS,CAAC,EAAE,YAAY,YAAA,EACxB,UAAU,CAAC,EAAE,YAAY,GAAG,IAAI,YAAA,EAChC,UAAU,CAAC,EAAE,YAAY,YAAA,EACxC;IAEJ,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IACnC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IACnC,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IACzE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IAWtE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IACnC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IACnC,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IACzE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IAWtE,MAAM,IAAI,aAAa,CAEtB;IAGD,YAAY,IAAI,MAAM,CA+CrB;IAED,oBAAoB,CAClB,KAAK,EAAE,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,EACvD,GAAG,GAAE,MAAU,GACd;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAmGlE;IAED,OAAO,CAAC,GAAG,GAAE,MAAY,GAAG,gBAAgB,CA+D3C;IAGD,KAAK,CAAC,GAAG,GAAE,MAAU,GAAG,GAAG,CAE1B;IAED,IAAI,GAAG,QAEN;IAGD,OAAO,CAAC,GAAG,GAAE,MAAU,GAAG,SAAS,CAElC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PMF } from "../.js";
|
|
2
|
+
import type { RollType } from "./types.js";
|
|
3
|
+
/** Lift a single d20 PMF into advantage, disadvantage, or elven (triple-advantage). */
|
|
4
|
+
export declare function d20RollPMF(rollType: RollType | undefined, rerollOne?: boolean): PMF;
|
|
5
|
+
export declare function d20PMF(rerollOne: boolean): PMF;
|
|
6
|
+
//# sourceMappingURL=d20.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d20.d.ts","sourceRoot":"","sources":["../../src/builder/d20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAY,MAAM,KAAK,CAAC;AAEzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAaxC,uFAAuF;AACvF,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,SAAS,GAAE,OAAe,GACzB,GAAG,CAqCL;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,GAAG,CAoB9C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { PMF } from "../pmf/pmf.js";
|
|
2
|
+
import { RollBuilder } from "./roll.js";
|
|
3
|
+
import { SaveBuilder } from "./save.js";
|
|
4
|
+
interface SaveConfig {
|
|
5
|
+
dc: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class DCBuilder extends RollBuilder {
|
|
8
|
+
private readonly saveConfig;
|
|
9
|
+
constructor(baseRoll: RollBuilder, saveConfig?: SaveConfig);
|
|
10
|
+
dc(saveDC: number): DCBuilder;
|
|
11
|
+
get saveDC(): number;
|
|
12
|
+
add(anotherRoll: RollBuilder): DCBuilder;
|
|
13
|
+
addRoll(count?: number): DCBuilder;
|
|
14
|
+
onSaveFailure(val: number): SaveBuilder;
|
|
15
|
+
onSaveFailure(val: string): SaveBuilder;
|
|
16
|
+
onSaveFailure(val: RollBuilder): SaveBuilder;
|
|
17
|
+
onSaveFailure(count: number, die: RollBuilder): SaveBuilder;
|
|
18
|
+
onSaveFailure(count: number, sides: number): SaveBuilder;
|
|
19
|
+
onSaveFailure(count: number, die: RollBuilder, modifier: number): SaveBuilder;
|
|
20
|
+
onSaveFailure(count: number, sides: number, modifier: number): SaveBuilder;
|
|
21
|
+
withElvenAccuracy(): never;
|
|
22
|
+
toExpression(): string;
|
|
23
|
+
toPMF(eps?: number): PMF;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=dc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dc.d.ts","sourceRoot":"","sources":["../../src/builder/dc.ts"],"names":[],"mappings":"AAAA,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;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;IAEQ,KAAK,CAAC,GAAG,GAAE,MAAU,GAAG,GAAG,CA2BnC;CACF"}
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import "./ac.js";
|
|
2
|
+
import type { ACBuilder } from "./ac.js";
|
|
3
|
+
import "./dc.js";
|
|
4
|
+
import type { DCBuilder } from "./dc.js";
|
|
5
|
+
import type { RollBuilder } from "./roll.js";
|
|
6
|
+
import type { SaveBuilder } from "./save.js";
|
|
7
|
+
export declare const fullAttack: import("./attack.js").AttackBuilder;
|
|
8
|
+
export declare const fullAttackExprExpected = "(d20 + 5 AC 10) * (2d6) crit (4d6)";
|
|
9
|
+
export declare const fullAttackWithCrit: import("./attack.js").AttackBuilder;
|
|
10
|
+
export declare const fullAttackWithCritExprExpected = "(d20 + 5 AC 10) * (2d6) crit (5d6)";
|
|
11
|
+
export declare const fullAttackWithCritAndMiss: import("./attack.js").AttackBuilder;
|
|
12
|
+
export declare const fullAttackWithCritAndMissExprExpected = "(d20 + 5 AC 10) * (2d6) crit (4d6) miss (5)";
|
|
13
|
+
export declare const basicDamageRoll: RollBuilder;
|
|
14
|
+
export declare const basicDamageRollExprExpected = "1d6 + 3";
|
|
15
|
+
/** Basic 2d6 + 3 damage roll
|
|
16
|
+
* For multiple dice, you need to use roll().
|
|
17
|
+
*/
|
|
18
|
+
export declare const basic2d6Plus3: RollBuilder;
|
|
19
|
+
export declare const basic2d6Plus3ExprExpected = "2d6 + 3";
|
|
20
|
+
/** Rollling 2 x (1d6+3) */
|
|
21
|
+
export declare const basicShorthandD6Plus3Roll: RollBuilder;
|
|
22
|
+
export declare const basicShorthandD6Plus3RollExprExpected = "2d6 + 6";
|
|
23
|
+
/** Same as above using no shorthand */
|
|
24
|
+
export declare const another2d6Plus3: RollBuilder;
|
|
25
|
+
export declare const another2d6Plus3ExprExpected = "2d6 + 3";
|
|
26
|
+
/** Same as above using the shorthand factory signature */
|
|
27
|
+
export declare const basicShorthandRoll: RollBuilder;
|
|
28
|
+
export declare const basicShorthandRollExprExpected = "2d6 + 3";
|
|
29
|
+
/** Same as above using the shorthand factory signature */
|
|
30
|
+
export declare const basicShorthandD6Roll: RollBuilder;
|
|
31
|
+
export declare const basicShorthandD6RollExprExpected = "2d6 + 3";
|
|
32
|
+
/** Using die shortcuts without roll() */
|
|
33
|
+
export declare const shortcutDie: RollBuilder;
|
|
34
|
+
export declare const shortcutDieExprExpected = "1d8 + 2";
|
|
35
|
+
/** Flat modifier only (no dice)
|
|
36
|
+
* You can also use roll.flat(n) if you prefer.
|
|
37
|
+
* Many methods take pure numbers, so this may not even be needed in many cases.
|
|
38
|
+
* */
|
|
39
|
+
export declare const flatFive: RollBuilder;
|
|
40
|
+
export declare const flatFiveExprExpected = "5";
|
|
41
|
+
/** Negative base dice */
|
|
42
|
+
export declare const negativeBaseDieInline: RollBuilder;
|
|
43
|
+
export declare const negativeBaseDieInlineExprExpected = "-1d8";
|
|
44
|
+
/** Negative base dice explicit */
|
|
45
|
+
export declare const negativeBaseDie: RollBuilder;
|
|
46
|
+
export declare const negativeBaseDieExprExpected = "-1d8";
|
|
47
|
+
/** Subtracting a bonus die via negative roll part.
|
|
48
|
+
* Useful for effects like Bane
|
|
49
|
+
*/
|
|
50
|
+
export declare const subtractBonusDie: RollBuilder;
|
|
51
|
+
export declare const subtractBonusDieExprExpected = "d20 - 1d4";
|
|
52
|
+
/** A single d20 roll */
|
|
53
|
+
export declare const singleD20: RollBuilder;
|
|
54
|
+
export declare const singleD20ExprExpected = "d20";
|
|
55
|
+
/** Adding a bunch */
|
|
56
|
+
export declare const addAWholeBunch: RollBuilder;
|
|
57
|
+
export declare const addAWholeBunchExprExpected = "1d20 + 1d12 + 1d10 + 1d8 + 1d6";
|
|
58
|
+
/** Subtracting a bunch */
|
|
59
|
+
export declare const subtractAWholeBunch: RollBuilder;
|
|
60
|
+
export declare const subtractAWholeBunchExprExpected = "-1d20 - 1d12 - 1d10 - 1d8 + 1d6";
|
|
61
|
+
export declare const addingMultipleConstants: RollBuilder;
|
|
62
|
+
export declare const addingMultipleConstantsExprExpected = "1d6 + 6";
|
|
63
|
+
export declare const realisticChaining: RollBuilder;
|
|
64
|
+
export declare const realisticChainingExprExpected = "2d8 + 3d6 + 4";
|
|
65
|
+
/** Halfling die using the `roll.hd20()` shorthand */
|
|
66
|
+
export declare const halflingD20Shorthand: RollBuilder;
|
|
67
|
+
export declare const halflingD20ShorthandExprExpected = "hd20";
|
|
68
|
+
/** Halfling die shorthand: d20 reroll 1. */
|
|
69
|
+
export declare const halflingD20: RollBuilder;
|
|
70
|
+
export declare const halflingD20ExprExpected = "hd20";
|
|
71
|
+
/** Halfling die with advantage. */
|
|
72
|
+
export declare const halflingAdv: RollBuilder;
|
|
73
|
+
export declare const halflingAdvExprExpected = "hd20 > hd20";
|
|
74
|
+
/** Reroll 1s and 2s on 2d6. */
|
|
75
|
+
export declare const twoD6Reroll12: RollBuilder;
|
|
76
|
+
export declare const twoD6Reroll12ExprExpected = "2(d6 reroll 1 reroll 2)";
|
|
77
|
+
/** Minimum 2 on a d6. */
|
|
78
|
+
export declare const min2OnD6: RollBuilder;
|
|
79
|
+
export declare const min2OnD6ExprExpected = "2>d6";
|
|
80
|
+
/** Keep highest 3 of 4d6. */
|
|
81
|
+
export declare const kh3Of4d6: RollBuilder;
|
|
82
|
+
export declare const kh3Of4d6ExprExpected = "4kh3(4d6)";
|
|
83
|
+
/** Keep lowest 2 of 4d8. */
|
|
84
|
+
export declare const kl2Of4d8: RollBuilder;
|
|
85
|
+
export declare const kl2Of4d8ExprExpected = "4kl2(4d8)";
|
|
86
|
+
/** Advantage on d20. */
|
|
87
|
+
export declare const advD20: RollBuilder;
|
|
88
|
+
export declare const advD20ExprExpected = "d20 > d20";
|
|
89
|
+
/** Disadvantage on d20. */
|
|
90
|
+
export declare const disD20: RollBuilder;
|
|
91
|
+
export declare const disD20ExprExpected = "d20 < d20";
|
|
92
|
+
/** Advantage on hd20. */
|
|
93
|
+
export declare const advHd20: RollBuilder;
|
|
94
|
+
export declare const advHd20ExprExpected = "hd20 > hd20";
|
|
95
|
+
/** Complex chain: 2d6 + 1d8 + 4(d4 reroll 1) + 5
|
|
96
|
+
* Note that reroll(1) applies to the immediate roll before it.
|
|
97
|
+
*/
|
|
98
|
+
export declare const complexDamage: RollBuilder;
|
|
99
|
+
export declare const complexDamageExprExpected = "4(d4 reroll 1) + 1d8 + 2d6 + 5";
|
|
100
|
+
/** Double dice (useful for crit damage duplication) */
|
|
101
|
+
export declare const doubledD8: RollBuilder;
|
|
102
|
+
export declare const doubledD8ExprExpected = "2d8 + 5";
|
|
103
|
+
/**
|
|
104
|
+
* Best-of example.
|
|
105
|
+
* Roll a set of dice and take the highest N dice rolls.
|
|
106
|
+
*/
|
|
107
|
+
export declare const bestOfExample: RollBuilder;
|
|
108
|
+
export declare const bestOfExampleExprExpected = "4d6kh3";
|
|
109
|
+
/** Double a d6 roll, resulting in 2d6. */
|
|
110
|
+
export declare const doubleD6: RollBuilder;
|
|
111
|
+
export declare const doubleD6ExprExpected = "2d6";
|
|
112
|
+
/** Double a d6+1 roll, resulting in 2d6+2. Note that modifiers are also doubled. */
|
|
113
|
+
export declare const doubleD6Plus1: RollBuilder;
|
|
114
|
+
export declare const doubleD6Plus1ExprExpected = "2d6 + 2";
|
|
115
|
+
/** Double a 2d6 roll, resulting in 4d6. */
|
|
116
|
+
export declare const double2d6: RollBuilder;
|
|
117
|
+
export declare const double2d6ExprExpected = "4d6";
|
|
118
|
+
/** Double a 2d6+3 roll, resulting in 4d6+6. */
|
|
119
|
+
export declare const double2d6plus3: RollBuilder;
|
|
120
|
+
export declare const double2d6plus3ExprExpected = "4d6 + 6";
|
|
121
|
+
/** Triple a complex roll of 1d8+1d4+2, resulting in 3d8+3d4+6. */
|
|
122
|
+
export declare const tripleComplexRoll: RollBuilder;
|
|
123
|
+
export declare const tripleComplexRollExprExpected = "3d8 + 3d4 + 6";
|
|
124
|
+
/**
|
|
125
|
+
* Basic attack check: d20 + 7 vs AC 15.
|
|
126
|
+
* Returns an ACBuilder; use `onHit()` to attach damage.
|
|
127
|
+
*/
|
|
128
|
+
export declare const basicAttackCheck: ACBuilder;
|
|
129
|
+
export declare const basicAttackCheckExprExpected = "(d20 + 7 AC 15)";
|
|
130
|
+
/** Attack with bless (bonus-to-hit via 1d4). */
|
|
131
|
+
export declare const blessedAttack: ACBuilder;
|
|
132
|
+
export declare const blessedAttackExprExpected = "(d20 + 7 + 1d4 AC 15)";
|
|
133
|
+
/** Elven Accuracy (3d20 keep highest) attack to-hit. */
|
|
134
|
+
export declare const elvenAccuracyAttack: ACBuilder;
|
|
135
|
+
export declare const elvenAccuracyAttackExprExpected = "(d20 > d20 > d20 + 8 AC 18)";
|
|
136
|
+
/**
|
|
137
|
+
* Full attack: to-hit check multiplied by effects.
|
|
138
|
+
* - Hit: 2d6 + 4
|
|
139
|
+
* - Crit: default doubling of hit dice if not explicitly provided
|
|
140
|
+
*/
|
|
141
|
+
export declare const basicAttack: ReturnType<ACBuilder["onHit"]>;
|
|
142
|
+
export declare const basicAttackExprExpected = "(d20 + 6 AC 16) * (2d6 + 4) crit (4d6 + 4)";
|
|
143
|
+
/** Attack with explicit crit and miss effects; crits on 19–20. */
|
|
144
|
+
export declare const detailedAttack: ReturnType<ACBuilder["onHit"]>;
|
|
145
|
+
export declare const detailedAttackExprExpected = "(d20 + 9 AC 17) * (1d12 + 5) xcrit2 (2d12 + 5) miss (0)";
|
|
146
|
+
/** Attack where all hits become crits (natural 1s still miss). */
|
|
147
|
+
export declare const alwaysCritsAttack: ReturnType<ACBuilder["onHit"]>;
|
|
148
|
+
export declare const alwaysCritsAttackExprExpected = "d20 + 5 * (1d8) crit (2d8)";
|
|
149
|
+
/** Attack that always hits and always crits (no misses at all). */
|
|
150
|
+
export declare const alwaysHitsAlwaysCrits: ReturnType<ACBuilder["onHit"]>;
|
|
151
|
+
export declare const alwaysHitsAlwaysCritsExprExpected = "d20 * (1d8) crit (2d8)";
|
|
152
|
+
/**
|
|
153
|
+
* Basic save: d20 + 5 vs DC 15; on failure, take 3d6.
|
|
154
|
+
* Use `saveHalf()` to apply half damage on success.
|
|
155
|
+
*/
|
|
156
|
+
export declare const basicSaveCheck: DCBuilder;
|
|
157
|
+
export declare const basicSaveCheckExprExpected = "(d20 + 5 DC 15)";
|
|
158
|
+
/** Save with failure effect (no half on success). */
|
|
159
|
+
export declare const saveFailOnly: SaveBuilder;
|
|
160
|
+
export declare const saveFailOnlyExprExpected = "(d20 + 5 DC 15) * (3d6)";
|
|
161
|
+
/** Save that deals half damage on success. */
|
|
162
|
+
export declare const saveHalf: SaveBuilder;
|
|
163
|
+
export declare const saveHalfExprExpected = "(d20 + 5 DC 15) * (3d6) save half";
|
|
164
|
+
/** Save at disadvantage (apply before turning into DC builder). */
|
|
165
|
+
export declare const disadvantagedSave: DCBuilder;
|
|
166
|
+
export declare const disadvantagedSaveExprExpected = "(d20 < d20 DC 14)";
|
|
167
|
+
/** Example of resolving save PMFs and weights from structured computation. */
|
|
168
|
+
export declare function resolveSaveExample(): {
|
|
169
|
+
pmfMean: number;
|
|
170
|
+
weights: {
|
|
171
|
+
[key: string]: number;
|
|
172
|
+
} & {
|
|
173
|
+
success: number;
|
|
174
|
+
fail: number;
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
export declare const factoryOverload: RollBuilder;
|
|
178
|
+
export declare const factoryOverloadExprExpected = "4d4 + 1";
|
|
179
|
+
export declare function analyzeRoll(builder: RollBuilder, threshold?: number): {
|
|
180
|
+
expr: string;
|
|
181
|
+
min: number;
|
|
182
|
+
max: number;
|
|
183
|
+
mean: number;
|
|
184
|
+
pAtLeastThreshold: number;
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* Summarizes a single attack using DiceQuery utilities.
|
|
188
|
+
* Returns DPR, hit/crit odds, and per-outcome damage stats.
|
|
189
|
+
*/
|
|
190
|
+
export declare function analyzeAttack(attack: ReturnType<ACBuilder["onHit"]>): {
|
|
191
|
+
expr: string;
|
|
192
|
+
dpr: number;
|
|
193
|
+
pNonCritHit: number;
|
|
194
|
+
pCrit: number;
|
|
195
|
+
pHitOrCrit: number;
|
|
196
|
+
hitDamage: {
|
|
197
|
+
min: number;
|
|
198
|
+
max: number;
|
|
199
|
+
avg: number;
|
|
200
|
+
count: number;
|
|
201
|
+
};
|
|
202
|
+
critDamage: {
|
|
203
|
+
min: number;
|
|
204
|
+
max: number;
|
|
205
|
+
avg: number;
|
|
206
|
+
count: number;
|
|
207
|
+
};
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* Compares three variants of the same attack: disadvantage, normal, advantage.
|
|
211
|
+
*/
|
|
212
|
+
export declare function compareAdvantageStates(baseToHit: number, ac: number, damage: RollBuilder): {
|
|
213
|
+
normal: {
|
|
214
|
+
dpr: number;
|
|
215
|
+
pHitOrCrit: number;
|
|
216
|
+
pCrit: number;
|
|
217
|
+
};
|
|
218
|
+
advantage: {
|
|
219
|
+
dpr: number;
|
|
220
|
+
pHitOrCrit: number;
|
|
221
|
+
pCrit: number;
|
|
222
|
+
};
|
|
223
|
+
disadvantage: {
|
|
224
|
+
dpr: number;
|
|
225
|
+
pHitOrCrit: number;
|
|
226
|
+
pCrit: number;
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Demonstrates multi-attack aggregation (e.g., two swings) with combined DPR and crit odds.
|
|
231
|
+
*/
|
|
232
|
+
export declare function analyzeTwoAttacks(attack: ReturnType<ACBuilder["onHit"]>): {
|
|
233
|
+
expr: string;
|
|
234
|
+
attacks: number;
|
|
235
|
+
dpr: number;
|
|
236
|
+
pAtLeastOneCrit: number;
|
|
237
|
+
pAtLeastOneHitOrCrit: number;
|
|
238
|
+
};
|
|
239
|
+
/**
|
|
240
|
+
* Compares a blessed attack (bonus-to-hit d4) to the same attack without bless.
|
|
241
|
+
*/
|
|
242
|
+
export declare function blessWhatIf(baseToHit: number, ac: number, damage: RollBuilder): {
|
|
243
|
+
normal: {
|
|
244
|
+
dpr: number;
|
|
245
|
+
pHitOrCrit: number;
|
|
246
|
+
};
|
|
247
|
+
blessed: {
|
|
248
|
+
dpr: number;
|
|
249
|
+
pHitOrCrit: number;
|
|
250
|
+
};
|
|
251
|
+
lift: {
|
|
252
|
+
dpr: number;
|
|
253
|
+
pHitOrCrit: number;
|
|
254
|
+
};
|
|
255
|
+
};
|
|
256
|
+
export declare function analyzeSave(save: SaveBuilder): {
|
|
257
|
+
expr: string;
|
|
258
|
+
resolved: {
|
|
259
|
+
mean: number;
|
|
260
|
+
weights: {
|
|
261
|
+
[key: string]: number;
|
|
262
|
+
} & {
|
|
263
|
+
success: number;
|
|
264
|
+
fail: number;
|
|
265
|
+
};
|
|
266
|
+
};
|
|
267
|
+
query: {
|
|
268
|
+
mean: number;
|
|
269
|
+
pFail: number;
|
|
270
|
+
pHalf: number;
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
export declare function demoAnalyses(): {
|
|
274
|
+
advCompare: {
|
|
275
|
+
normal: {
|
|
276
|
+
dpr: number;
|
|
277
|
+
pHitOrCrit: number;
|
|
278
|
+
pCrit: number;
|
|
279
|
+
};
|
|
280
|
+
advantage: {
|
|
281
|
+
dpr: number;
|
|
282
|
+
pHitOrCrit: number;
|
|
283
|
+
pCrit: number;
|
|
284
|
+
};
|
|
285
|
+
disadvantage: {
|
|
286
|
+
dpr: number;
|
|
287
|
+
pHitOrCrit: number;
|
|
288
|
+
pCrit: number;
|
|
289
|
+
};
|
|
290
|
+
};
|
|
291
|
+
basicAtk: {
|
|
292
|
+
expr: string;
|
|
293
|
+
dpr: number;
|
|
294
|
+
pNonCritHit: number;
|
|
295
|
+
pCrit: number;
|
|
296
|
+
pHitOrCrit: number;
|
|
297
|
+
hitDamage: {
|
|
298
|
+
min: number;
|
|
299
|
+
max: number;
|
|
300
|
+
avg: number;
|
|
301
|
+
count: number;
|
|
302
|
+
};
|
|
303
|
+
critDamage: {
|
|
304
|
+
min: number;
|
|
305
|
+
max: number;
|
|
306
|
+
avg: number;
|
|
307
|
+
count: number;
|
|
308
|
+
};
|
|
309
|
+
};
|
|
310
|
+
twoSwings: {
|
|
311
|
+
expr: string;
|
|
312
|
+
attacks: number;
|
|
313
|
+
dpr: number;
|
|
314
|
+
pAtLeastOneCrit: number;
|
|
315
|
+
pAtLeastOneHitOrCrit: number;
|
|
316
|
+
};
|
|
317
|
+
blessCompare: {
|
|
318
|
+
normal: {
|
|
319
|
+
dpr: number;
|
|
320
|
+
pHitOrCrit: number;
|
|
321
|
+
};
|
|
322
|
+
blessed: {
|
|
323
|
+
dpr: number;
|
|
324
|
+
pHitOrCrit: number;
|
|
325
|
+
};
|
|
326
|
+
lift: {
|
|
327
|
+
dpr: number;
|
|
328
|
+
pHitOrCrit: number;
|
|
329
|
+
};
|
|
330
|
+
};
|
|
331
|
+
complexRoll: {
|
|
332
|
+
expr: string;
|
|
333
|
+
min: number;
|
|
334
|
+
max: number;
|
|
335
|
+
mean: number;
|
|
336
|
+
pAtLeastThreshold: number;
|
|
337
|
+
};
|
|
338
|
+
saveInfo: {
|
|
339
|
+
expr: string;
|
|
340
|
+
resolved: {
|
|
341
|
+
mean: number;
|
|
342
|
+
weights: {
|
|
343
|
+
[key: string]: number;
|
|
344
|
+
} & {
|
|
345
|
+
success: number;
|
|
346
|
+
fail: number;
|
|
347
|
+
};
|
|
348
|
+
};
|
|
349
|
+
query: {
|
|
350
|
+
mean: number;
|
|
351
|
+
pFail: number;
|
|
352
|
+
pHalf: number;
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
};
|
|
356
|
+
//# sourceMappingURL=example.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../src/builder/example.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LRUCache } from "../common/lru-cache.js";
|
|
2
|
+
import type { PMF } from "../pmf/pmf.js";
|
|
3
|
+
import { RollBuilder } from "./roll.js";
|
|
4
|
+
import type { RollFactory } from "./types.js";
|
|
5
|
+
export declare function d(sides: number | string): RollBuilder;
|
|
6
|
+
export declare const d4: RollBuilder;
|
|
7
|
+
export declare const d6: RollBuilder;
|
|
8
|
+
export declare const d8: RollBuilder;
|
|
9
|
+
export declare const d10: RollBuilder;
|
|
10
|
+
export declare const d12: RollBuilder;
|
|
11
|
+
export declare const d20: RollBuilder;
|
|
12
|
+
export declare const hd20: RollBuilder;
|
|
13
|
+
export declare const d100: RollBuilder;
|
|
14
|
+
export declare const flat: (n: number) => RollBuilder;
|
|
15
|
+
export declare const roll: RollFactory;
|
|
16
|
+
export declare const builderPMFCache: LRUCache<string, PMF>;
|
|
17
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/builder/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA8D3C,wBAAgB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAKrD;AAED,eAAO,MAAM,EAAE,aAA0B,CAAC;AAC1C,eAAO,MAAM,EAAE,aAA0B,CAAC;AAC1C,eAAO,MAAM,EAAE,aAA0B,CAAC;AAC1C,eAAO,MAAM,GAAG,aAA2B,CAAC;AAC5C,eAAO,MAAM,GAAG,aAA2B,CAAC;AAC5C,eAAO,MAAM,GAAG,aAA2B,CAAC;AAC5C,eAAO,MAAM,IAAI,aAAqC,CAAC;AACvD,eAAO,MAAM,IAAI,aAA4B,CAAC;AAC9C,eAAO,MAAM,IAAI,MAAO,MAAM,gBAA+B,CAAC;AAE9D,eAAO,MAAM,IAAI,EAAE,WAAmC,CAAC;AAEvD,eAAO,MAAM,eAAe,uBAAkC,CAAC"}
|