@yipe/dice 0.6.0 → 0.8.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 +1 -0
- package/dist/builder/ac.d.ts.map +1 -1
- package/dist/builder/attack.d.ts +9 -0
- package/dist/builder/attack.d.ts.map +1 -1
- package/dist/builder/index.cjs +257 -287
- package/dist/builder/index.cjs.map +1 -1
- package/dist/builder/index.js +257 -288
- package/dist/builder/index.js.map +1 -1
- package/dist/builder/roll.d.ts +16 -0
- package/dist/builder/roll.d.ts.map +1 -1
- package/dist/index.cjs +152 -285
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +152 -285
- package/dist/index.js.map +1 -1
- package/dist/pmf/pmf.d.ts +69 -0
- package/dist/pmf/pmf.d.ts.map +1 -1
- package/dist/pmf/query.d.ts +12 -84
- package/dist/pmf/query.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/pmf/pmf.d.ts
CHANGED
|
@@ -2,6 +2,41 @@ import { LRUCache } from "../common/lru-cache.js";
|
|
|
2
2
|
import type { Bin, Rounding } from "../common/types.js";
|
|
3
3
|
import { DiceQuery } from "./query.js";
|
|
4
4
|
export declare const pmfCache: LRUCache<string, PMF>;
|
|
5
|
+
/**
|
|
6
|
+
* Complete numeric model for the stacked damage-attribution chart, produced by
|
|
7
|
+
* {@link PMF.damageAttributionChartModel}. Carries every dice-and-probability
|
|
8
|
+
* value the chart needs; a renderer only maps these numbers into its own format
|
|
9
|
+
* (colors, human labels, axis units, dataset objects).
|
|
10
|
+
*/
|
|
11
|
+
export interface DamageAttributionChartModel {
|
|
12
|
+
/** Bucket-start value for each column. Numeric; the caller stringifies for labels. */
|
|
13
|
+
labels: number[];
|
|
14
|
+
/** Present only when the distribution was coarsened; [start,end] inclusive, per bucket. */
|
|
15
|
+
binRanges?: {
|
|
16
|
+
start: number;
|
|
17
|
+
end: number;
|
|
18
|
+
}[];
|
|
19
|
+
/** Discovered outcome labels in stack order. Empty for pure (unattributed) distributions. */
|
|
20
|
+
outcomes: string[];
|
|
21
|
+
/** outcome → per-bucket probability mass (fraction 0..1). Bar heights. Σ over outcomes ≈ totals[i]. */
|
|
22
|
+
series: Map<string, number[]>;
|
|
23
|
+
/**
|
|
24
|
+
* outcome → per-bucket conditional share (fraction 0..1) of that bucket's total.
|
|
25
|
+
* Tooltip signal. 0 where the bucket total is below `epsilon`; otherwise Σ over
|
|
26
|
+
* outcomes ≈ 1.
|
|
27
|
+
*/
|
|
28
|
+
shares: Map<string, number[]>;
|
|
29
|
+
/** Per-bucket total probability mass (fraction 0..1). The only signal for pure distributions. */
|
|
30
|
+
totals: number[];
|
|
31
|
+
/** Reversed-convention CCDF markers: damage at which P(X ≥ x) crosses 80/50/20%. */
|
|
32
|
+
percentiles: {
|
|
33
|
+
p80: number;
|
|
34
|
+
p50: number;
|
|
35
|
+
p20: number;
|
|
36
|
+
};
|
|
37
|
+
/** Distribution mean, `this.mean()`. */
|
|
38
|
+
mean: number;
|
|
39
|
+
}
|
|
5
40
|
/**
|
|
6
41
|
* Probability Mass Function for discrete damage distributions.
|
|
7
42
|
*/
|
|
@@ -341,6 +376,40 @@ export declare class PMF {
|
|
|
341
376
|
* axis labels).
|
|
342
377
|
*/
|
|
343
378
|
attributionByValue(): Map<string, Map<number, number>>;
|
|
379
|
+
/**
|
|
380
|
+
* Reversed-convention CCDF percentile markers used by the attribution chart:
|
|
381
|
+
* for each target probability t, the largest damage x still reached with
|
|
382
|
+
* P(X ≥ x) > t%, falling back to the smallest/largest support value at the
|
|
383
|
+
* edges. Ported verbatim from the app so `p80/p50/p20` keep their intentional
|
|
384
|
+
* reversed meaning (p80 is the low-damage end). Computed on the full, un-binned
|
|
385
|
+
* support. Assumes a non-empty map.
|
|
386
|
+
*/
|
|
387
|
+
private attributionPercentiles;
|
|
388
|
+
/**
|
|
389
|
+
* Full numeric model for the stacked damage-attribution chart — bar-height
|
|
390
|
+
* masses, tooltip shares, bucket labels/ranges, percentile markers, and the
|
|
391
|
+
* mean. The caller only maps these into a rendering format (colors, labels,
|
|
392
|
+
* axis units); all of the dice-and-probability logic lives here.
|
|
393
|
+
*
|
|
394
|
+
* Built split-first-then-bin: the attribution split ({@link attributionByValue})
|
|
395
|
+
* runs on the un-binned distribution, then the resulting series are coarsened.
|
|
396
|
+
* {@link rebin} is deliberately *not* used — rebinning first would fold any
|
|
397
|
+
* sub-`binSize` damage into the damage-0 bucket, which the split then mistakes
|
|
398
|
+
* for a clean miss and drops.
|
|
399
|
+
*
|
|
400
|
+
* @param options.maxBuckets Coarsen to at most this many equal-width buckets
|
|
401
|
+
* when the integer support is wider (`range > maxBuckets`); omit for a dense,
|
|
402
|
+
* per-integer model.
|
|
403
|
+
* @param options.stackOrder Preferred outcome order (defaults to
|
|
404
|
+
* {@link ALL_OUTCOME_TYPES}); labels outside it sort alphabetically after.
|
|
405
|
+
* @param options.epsilon Bucket-total floor below which a `shares` entry is 0
|
|
406
|
+
* (divide-by-~0 guard). Defaults to 1e-9.
|
|
407
|
+
*/
|
|
408
|
+
damageAttributionChartModel(options?: {
|
|
409
|
+
maxBuckets?: number;
|
|
410
|
+
stackOrder?: readonly string[];
|
|
411
|
+
epsilon?: number;
|
|
412
|
+
}): DamageAttributionChartModel;
|
|
344
413
|
tailProbGE(t: number): number;
|
|
345
414
|
tailProbGT(t: number): number;
|
|
346
415
|
/**
|
package/dist/pmf/pmf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pmf.d.ts","sourceRoot":"","sources":["../../src/pmf/pmf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAmB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"pmf.d.ts","sourceRoot":"","sources":["../../src/pmf/pmf.ts"],"names":[],"mappings":"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"}
|
package/dist/pmf/query.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { OutcomeType } from "../common/types.js";
|
|
2
2
|
import { PMF } from "./pmf.js";
|
|
3
|
+
import type { DamageAttributionChartModel } from "./pmf.js";
|
|
3
4
|
/**
|
|
4
5
|
* Query interface for analyzing dice roll probability distributions.
|
|
5
6
|
*
|
|
@@ -44,7 +45,7 @@ export declare class DiceQuery {
|
|
|
44
45
|
* const attack = d20.plus(5).ac(15).onHit(d(2,6).plus(3)).onCrit(d(2,6))
|
|
45
46
|
* const query = attack.toQuery()
|
|
46
47
|
* const pmf = query.combinedWithAttribution()
|
|
47
|
-
* // Now pmf can be used with
|
|
48
|
+
* // Now pmf can be used with attributionByValue() / damageAttributionChartModel()
|
|
48
49
|
*/
|
|
49
50
|
combinedWithAttribution(): PMF;
|
|
50
51
|
/**
|
|
@@ -55,6 +56,16 @@ export declare class DiceQuery {
|
|
|
55
56
|
* {@link PMF.attributionByValue}.
|
|
56
57
|
*/
|
|
57
58
|
attributionByValue(): Map<string, Map<number, number>>;
|
|
59
|
+
/**
|
|
60
|
+
* Full numeric model for the stacked damage-attribution chart. Convenience for
|
|
61
|
+
* `combinedWithAttribution().damageAttributionChartModel(options)`; see
|
|
62
|
+
* {@link PMF.damageAttributionChartModel}.
|
|
63
|
+
*/
|
|
64
|
+
damageAttributionChartModel(options?: {
|
|
65
|
+
maxBuckets?: number;
|
|
66
|
+
stackOrder?: readonly string[];
|
|
67
|
+
epsilon?: number;
|
|
68
|
+
}): DamageAttributionChartModel;
|
|
58
69
|
/**
|
|
59
70
|
* How many of the independent single PMFs can produce the given outcome
|
|
60
71
|
* label. Useful for "all of them succeeded" style probabilities where the
|
|
@@ -404,89 +415,6 @@ export declare class DiceQuery {
|
|
|
404
415
|
data: number[];
|
|
405
416
|
}>;
|
|
406
417
|
};
|
|
407
|
-
/**
|
|
408
|
-
* Returns pure mathematical data for attribution charts showing outcome contributions.
|
|
409
|
-
*
|
|
410
|
-
* Automatically discovers all outcome types present in the PMF, applies filtering rules,
|
|
411
|
-
* and returns proportional data suitable for stacked visualization.
|
|
412
|
-
*
|
|
413
|
-
* @param options Configuration options
|
|
414
|
-
* @param options.stackOrder Preferred order for outcome types (unknowns placed at end)
|
|
415
|
-
* @param options.filterRules Function to determine if outcome should be included for a given damage value
|
|
416
|
-
* @param options.asPercentages Whether to return percentages (0-100) or probabilities (0-1)
|
|
417
|
-
* @returns Pure data structure with support, outcomes, and proportional data
|
|
418
|
-
*
|
|
419
|
-
* @example
|
|
420
|
-
* query.toAttributionChartSeries()
|
|
421
|
-
* // → {support: [0, 6, 12], outcomes: ['hit', 'crit'], data: {hit: [5.2, 8.1, ...], crit: [0, 2.3, ...]}}
|
|
422
|
-
*/
|
|
423
|
-
toAttributionChartSeries(options?: {
|
|
424
|
-
stackOrder?: string[];
|
|
425
|
-
filterRules?: (outcome: string, damage: number) => boolean;
|
|
426
|
-
asPercentages?: boolean;
|
|
427
|
-
}): {
|
|
428
|
-
support: number[];
|
|
429
|
-
outcomes: string[];
|
|
430
|
-
data: {
|
|
431
|
-
[outcome: string]: number[];
|
|
432
|
-
};
|
|
433
|
-
};
|
|
434
|
-
/**
|
|
435
|
-
* Returns pure mathematical data for damage attribution charts showing damage contribution
|
|
436
|
-
* from each outcome type at each damage value.
|
|
437
|
-
*
|
|
438
|
-
* Similar to toAttributionChartSeries() but uses bin.attr (damage attribution) instead of
|
|
439
|
-
* bin.count (probability attribution).
|
|
440
|
-
*
|
|
441
|
-
* @param options Configuration options
|
|
442
|
-
* @param options.stackOrder Preferred order for outcome types (unknowns placed at end)
|
|
443
|
-
* @param options.filterRules Function to determine if outcome should be included for a given damage value
|
|
444
|
-
* @param options.asPercentages Whether to return percentages (0-100) or raw damage values (0+)
|
|
445
|
-
* @returns Pure data structure with support, outcomes, and damage attribution data
|
|
446
|
-
*
|
|
447
|
-
* @example
|
|
448
|
-
* query.toDamageAttributionChartSeries()
|
|
449
|
-
* // → {support: [0, 6, 12], outcomes: ['hit', 'crit'], data: {hit: [3.2, 5.1, ...], crit: [0, 1.8, ...]}}
|
|
450
|
-
*/
|
|
451
|
-
toDamageAttributionChartSeries(options?: {
|
|
452
|
-
stackOrder?: string[];
|
|
453
|
-
filterRules?: (outcome: string, damage: number) => boolean;
|
|
454
|
-
asPercentages?: boolean;
|
|
455
|
-
}): {
|
|
456
|
-
support: number[];
|
|
457
|
-
outcomes: string[];
|
|
458
|
-
data: {
|
|
459
|
-
[outcome: string]: number[];
|
|
460
|
-
};
|
|
461
|
-
};
|
|
462
|
-
/**
|
|
463
|
-
* Returns pure mathematical data for outcome attribution charts showing which
|
|
464
|
-
* attack outcome combinations can produce each damage value.
|
|
465
|
-
*
|
|
466
|
-
* Unlike toDamageAttributionChartSeries() which tracks damage sources, this tracks
|
|
467
|
-
* outcome combinations - answering "what attack outcomes produced this damage?"
|
|
468
|
-
*
|
|
469
|
-
* @param options Configuration options
|
|
470
|
-
* @param options.stackOrder Preferred order for outcome types (unknowns placed at end)
|
|
471
|
-
* @param options.filterRules Function to determine if outcome should be included for a given damage value
|
|
472
|
-
* @param options.asPercentages Whether to return percentages (0-100) or probabilities (0-1)
|
|
473
|
-
* @returns Pure data structure with support, outcomes, and outcome combination probabilities
|
|
474
|
-
*
|
|
475
|
-
* @example
|
|
476
|
-
* query.toOutcomeAttributionChartSeries()
|
|
477
|
-
* // → {support: [0, 6, 12], outcomes: ['all_miss', 'mixed', 'all_hit'], data: {all_miss: [15, 0, 0], mixed: [60, 80, 20], all_hit: [25, 20, 80]}}
|
|
478
|
-
*/
|
|
479
|
-
toOutcomeAttributionChartSeries(options?: {
|
|
480
|
-
stackOrder?: string[];
|
|
481
|
-
filterRules?: (outcome: string, damage: number) => boolean;
|
|
482
|
-
asPercentages?: boolean;
|
|
483
|
-
}): {
|
|
484
|
-
support: number[];
|
|
485
|
-
outcomes: string[];
|
|
486
|
-
data: {
|
|
487
|
-
[outcome: string]: number[];
|
|
488
|
-
};
|
|
489
|
-
};
|
|
490
418
|
/**
|
|
491
419
|
* Returns pure mathematical data for cumulative distribution function (CDF).
|
|
492
420
|
* Shows P(X ≤ x) - the probability of getting at most x damage.
|
package/dist/pmf/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/pmf/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/pmf/query.ts"],"names":[],"mappings":"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"}
|