Repository navigation
v2.2.0: Roll-and-keep with exploding dice
The roll-and-keep release.
Changed
- Some rolls that keep the best dice across parts now say "(too complex)" where they used to draw. The check that decides this was measuring the old way of working the odds out, and the app no longer works them out that way, so it had to be replaced rather than adjusted. The rolls affected all combine very large dice with keeping across parts, such as three d1000 keeping the best two, or three d20 exploding fifty deep. They drew in about a tenth of a second before, so if you were using one, it is a real loss rather than a slow roll being tidied away.
- A check whose critical rolls more dice than an ordinary hit is now measured on the dice the critical really rolls. That is more honest, and it means a few check rolls with large critical effects are refused where they used to draw, because they were only ever accepted on the size of the smaller roll.
Fixed
- Keeping some of a roll's dice while those dice can explode no longer freezes the page. Six dice keeping five took twenty-five seconds of a locked-up tab, and eight keeping seven would have taken about half an hour. Both are under a hundredth of a second now. Keep and Explode on the same group was reaching the maths through a route that grew with the number of faces a die could show, and an exploding d6 can show fifty-six of them rather than six. The check meant to catch that was reading the die as though it had never exploded; it reads the roll the app is actually going to make now.
- Rolls that kept dice are no longer turned away for work the app does not do. Keeping the best few of twenty d20s, of thirty d6s, or of a hundred d100s all said "(too complex)" and simply answer now, as does roll-and-keep at the size those systems actually use: twelve exploding d10s keeping six is nine milliseconds. A few of the largest take about a second rather than being instant, which is still a roll you can wait for rather than one that locks the tab.
- A roll that explodes on a low face is no longer refused for being wide. Exploding a d100 on a 1 was measured as though every extra die could land on 100, which made a roll reaching 150 look like one reaching 5,100.
- Dark mode no longer flashes light on every page load. The small script that sets the theme before the page paints was written straight into the page, and the site's own security policy does not allow that, so it never ran once in production: every visit painted light and then corrected itself when the app loaded. It is a file now, which the policy does allow.
- The warning about a roll that can never stop exploding now asks the right question. Picking the same face twice, or picking faces the die does not have, was read as exploding on everything and refused. Meanwhile a d6 that rerolls 1 to 3 and explodes on 4 to 6 really can never stop, and that passed, leaving a blank row and no reason for it.
Full detail in CHANGELOG.md.