m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src/dice.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/dice.js')
-rw-r--r--src/dice.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/dice.js b/src/dice.js
index 9bc53d7..e96aca9 100644
--- a/src/dice.js
+++ b/src/dice.js
@@ -73,6 +73,21 @@ const explode = (die1, die2) => {
}
}
+const explodeUnder = (die1, die2) => {
+ return () => {
+ const explodeOn = roll(die1)
+ return die2().map(die => () => {
+ let lastRoll = die()
+ let total = lastRoll
+ while (lastRoll <= explodeOn) {
+ lastRoll = die()
+ total += lastRoll
+ }
+ return total
+ })
+ }
+}
+
const keepHigh = (die1, die2) => {
return () => {
const numberToKeep = roll(die1)
@@ -174,6 +189,7 @@ exports.bonusAdd = bonusAdd
exports.bonusSubtract = bonusSubtract
exports.negative = negative
exports.explode = explode
+exports.explodeUnder = explodeUnder
exports.keepHigh = keepHigh
exports.keepLow = keepLow
exports.again = again