@yipe/dice 0.2.8 → 0.2.10
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/index.d.cts
CHANGED
|
@@ -127,6 +127,7 @@ declare class RollBuilder {
|
|
|
127
127
|
add(anotherRoll: RollBuilder | undefined): RollBuilder;
|
|
128
128
|
withBonus(anotherRoll: RollBuilder): RollBuilder;
|
|
129
129
|
addRoll(count?: number): RollBuilder;
|
|
130
|
+
scaleDice(scale: number): RollBuilder;
|
|
130
131
|
doubleDice(): RollBuilder;
|
|
131
132
|
copy(): RollBuilder;
|
|
132
133
|
d4: () => RollBuilder;
|
package/dist/builder/index.d.ts
CHANGED
|
@@ -127,6 +127,7 @@ declare class RollBuilder {
|
|
|
127
127
|
add(anotherRoll: RollBuilder | undefined): RollBuilder;
|
|
128
128
|
withBonus(anotherRoll: RollBuilder): RollBuilder;
|
|
129
129
|
addRoll(count?: number): RollBuilder;
|
|
130
|
+
scaleDice(scale: number): RollBuilder;
|
|
130
131
|
doubleDice(): RollBuilder;
|
|
131
132
|
copy(): RollBuilder;
|
|
132
133
|
d4: () => RollBuilder;
|
package/dist/builder/index.js
CHANGED
|
@@ -2653,13 +2653,19 @@ var RollBuilder = class _RollBuilder {
|
|
|
2653
2653
|
];
|
|
2654
2654
|
return new this.constructor(configs);
|
|
2655
2655
|
}
|
|
2656
|
-
|
|
2656
|
+
scaleDice(scale) {
|
|
2657
|
+
const scaleInt = Math.floor(scale);
|
|
2658
|
+
if (scaleInt !== scale) throw new Error("Scale must be an integer");
|
|
2659
|
+
if (scaleInt <= 0) throw new Error("Scale must be > 0");
|
|
2657
2660
|
const newConfigs = this.getSubRollConfigs().map((config) => {
|
|
2658
2661
|
if (!config.sides || config.sides <= 0) return config;
|
|
2659
|
-
return { ...config, count: config.count *
|
|
2662
|
+
return { ...config, count: config.count * scaleInt };
|
|
2660
2663
|
});
|
|
2661
2664
|
return new this.constructor(newConfigs);
|
|
2662
2665
|
}
|
|
2666
|
+
doubleDice() {
|
|
2667
|
+
return this.scaleDice(2);
|
|
2668
|
+
}
|
|
2663
2669
|
copy() {
|
|
2664
2670
|
return new this.constructor(this.getSubRollConfigs());
|
|
2665
2671
|
}
|
|
@@ -2690,7 +2696,7 @@ var RollBuilder = class _RollBuilder {
|
|
|
2690
2696
|
let rootD20Group;
|
|
2691
2697
|
if (rootConfig && rootConfig.sides === 20) {
|
|
2692
2698
|
const rootIndex = groupedConfigs.findIndex(
|
|
2693
|
-
({ config }) => config
|
|
2699
|
+
({ config }) => rollConfigsEqual(config, rootConfig) && JSON.stringify(config.keep) === JSON.stringify(rootConfig.keep)
|
|
2694
2700
|
);
|
|
2695
2701
|
if (rootIndex !== -1) {
|
|
2696
2702
|
rootD20Group = groupedConfigs.splice(rootIndex, 1)[0];
|
|
@@ -2729,13 +2735,19 @@ var RollBuilder = class _RollBuilder {
|
|
|
2729
2735
|
const expression = diceExpressions[i];
|
|
2730
2736
|
if (i === 0) {
|
|
2731
2737
|
result = (config.isSubtraction ? "-" : "") + expression;
|
|
2738
|
+
if (config.sides === 20 && totalModifier !== 0) {
|
|
2739
|
+
if (totalModifier > 0) result += ` + ${totalModifier}`;
|
|
2740
|
+
else result += ` - ${Math.abs(totalModifier)}`;
|
|
2741
|
+
}
|
|
2732
2742
|
} else {
|
|
2733
2743
|
const operator = config.isSubtraction ? " - " : " + ";
|
|
2734
2744
|
result += operator + expression;
|
|
2735
2745
|
}
|
|
2736
2746
|
}
|
|
2737
|
-
if (
|
|
2738
|
-
|
|
2747
|
+
if (diceConfigs.length === 0 || diceConfigs[0].sides !== 20) {
|
|
2748
|
+
if (totalModifier > 0) result += ` + ${totalModifier}`;
|
|
2749
|
+
else if (totalModifier < 0) result += ` - ${Math.abs(totalModifier)}`;
|
|
2750
|
+
}
|
|
2739
2751
|
return result.replace(/\+ -/g, "-");
|
|
2740
2752
|
}
|
|
2741
2753
|
toPMF(eps = 0) {
|