fponticelli / diceroller

Dice parsing and rolling
https://dice.run
7 stars 0 forks source link

Feature Suggestion: Allow both Exploding Dice and Keep Highest/Lowest on the same roll #36

Open SonOfMyths73 opened 3 years ago

SonOfMyths73 commented 3 years ago

My friends and I are developing a game system that involves both exploding dice, and keeping a certain number of the result. There's not really anything I've found that's capable of doing both at once, and it would be nice to calculate the probabilities of certain rolls with both things in place. For instance, based on the syntax you use, a standard accuracy check from my character would currently be: 11d10e10k6. In that it rolls 11d10, explodes 10s, and keeps the 6 highest among the total result, after exploding.

The functionality could also be installed to work on the keep highest after the exploding; these would result in two possibilities. If the exploding occurs before the keeping of highest/lowest total, then if you explode and get a bunch of max dice, you'd still only keep the number specified. However, if the syntax is swapped and the keep highest/lowest happens before the explode, then exploded dice are not counted among the total dice kept and are added in addition to the original kept highest/lowest. So, 2d6e6k2, would roll 1d6, and if it lands on two 6es, it would explode and roll 2 additional dice, which get a 2 and a 4; but then still only keep the 2 highest, so the original two 6s, resulting in a roll of 12. Whereas 2d6k2e6, in the same scenario, would keep the original two 6es, but then they would explode, and the additional 2 and 4 that are rolled are added to the total for a total of 18.

fponticelli commented 3 years ago

I'll leave this issue open because I think it could make a valuable addition. In the meanwhile, while not fully practical, there is a way to simulate what you are requesting:

It creates a set of 11 exploding dice and keeps the highest 6 (or drops the lowest 6).

About the second half of the request I cannot think of any smart way to do that in the current system ;)

lancerusso commented 3 years ago

My friends and I are developing a game system that involves both exploding dice, and keeping a certain number of the result. There's not really anything I've found that's capable of doing both at once, and it would be nice to calculate the probabilities of certain rolls with both things in place. For instance, based on the syntax you use, a standard accuracy check from my character would currently be: 11d10e10k6. In that it rolls 11d10, explodes 10s, and keeps the 6 highest among the total result, after exploding.

The functionality could also be installed to work on the keep highest after the exploding; these would result in two possibilities. If the exploding occurs before the keeping of highest/lowest total, then if you explode and get a bunch of max dice, you'd still only keep the number specified. However, if the syntax is swapped and the keep highest/lowest happens before the explode, then exploded dice are not counted among the total dice kept and are added in addition to the original kept highest/lowest. So, 2d6e6k2, would roll 1d6, and if it lands on two 6es, it would explode and roll 2 additional dice, which get a 2 and a 4; but then still only keep the 2 highest, so the original two 6s, resulting in a roll of 12. Whereas 2d6k2e6, in the same scenario, would keep the original two 6es, but then they would explode, and the additional 2 and 4 that are rolled are added to the total for a total of 18.

Cool, interesting! I wonder if you have encountered L5R 4th edition, which has the first half of your specification- exploding dice and kept dice in the same system. There you are allowed intentionally keep non-highest dice for whatever reasons, e.g. holding back your damage so you don't kill an enemy.

The latter half is not really 'exploding' in the usual sense at all, but rather being allowed to roll bonus dice in your pool whenever you explode. The syntax you suggest makes sense in natural language but explodes in the sense of this engine is limited to expanding the statistics of a single dice to include higher values beyond its natural limit I guess.