dice-roller / rpg-dice-roller

An advanced JS based dice roller that can roll various types of dice and modifiers, along with mathematical equations.
https://dice-roller.github.io/documentation
MIT License
242 stars 57 forks source link

Cyberpunk RED rolls (explosion variants) #207

Open Tillerz opened 3 years ago

Tillerz commented 3 years ago

Cyberpunk RED uses for skill rolls: stat + skill + 1d10

Suggestion 1: add a limiter to the existing exploding dice, example: 1d10!1=10 to explode once on rolls of 10. Suggestion 2: add imploding dice: 1d10!1i=1 to implode once on rolls of 1.

Example 1:     3+4+1d10!1=10:     7+[10!, 10] = 27
Example 2:     3+4+1d10!2=10:     7+[10!, 10!, 3] = 30

Example 3:     3+4+1d10!i1=1:     7+[1!i, 1] = 7
Example 4:     3+4+1d10!i2=1:     7+[1!i, 1!, 3] = 4

Note in example 3 that the imploding 1 is not being subtracted but added as usual (so 7+1-1 = 7)

▶ Critical Success ◀

When you roll a natural 10 on your d10, you've scored a Critical Success. Roll another 1d10 and add the result to your first roll. If you roll another 10, you do not score another Critical Success.

▶ Critical Failure ◀

When you roll a natural roll of 1 on your d10, you've scored a Critical Failure. Roll another 1d10 and sub-tract the result from your STAT + Skill + the first roll. If you roll another 1, you do not score another Critical Failure.

GreenImp commented 3 years ago

Critical Success

The d10 explodes only once on a rolled 10, adding the additional value to the result.

Okay, this makes sense. You can currently do this with the re-roll modifier, but this obviously also drops the initial roll.

I really like this idea. I'll have to check your suggested notation might conflict with anything - I don't think it does. So it would be: !{n} / !{n}{cp} (Where {n} is the number of times to re-roll, and {cp} is the optional compare point)

Critical Failure

If a 1 is rolled, the value of an additional d10 is being subtracted from the result.

This is a really interesting concept. I don't think I've come across this before.

Just to clarify that I understand correctly;

It's not the same as Penetrating rolls, is it? Which explodes, but subtracts 1 from the value of each consecutive roll.

What you're suggesting is that the initial roll is added, but consecutive rolls are subtracted.

// implode if it rolls a 1
d10!i=1 = [1!i, 3] = -2
GreenImp commented 3 years ago

Just an update, I've built the functionality to specify a maximum limit on exploding dice, and that's in the feature/explode-count-limit branch: https://github.com/GreenImp/rpg-dice-roller/commit/7f8904e1b6f50b9cbcf1742c3bccc458dc485e62

So that will go out in the next release.

If you're able to clarify the "imploding" functionality, and I can look at getting that in as well.

Tillerz commented 3 years ago

\o/ Yay, thanks. Also going to check on that other feature and will clarify.

Tillerz commented 3 years ago

Just checked what penetration does.

8+1d10!p=1: 8+[1!p, 8] = 17

Penetration adds the additional value, this should be

8+1d10!p=1: 8+[1!p, 8] = 0

for the CP RED usecase instead, as it should ignore the roll of the 1 in the sum and subtract the additional roll. Also same for the other feature, it should also be limitable to 1 explosion/penetration:

8+1d10!p=1: 8+[1!p, 1] = 7

GreenImp commented 3 years ago

Thanks for the feedback.

So the "implode" is more similar to a re-roll modifier, than the explode modifier, in that it forgets / ignores the initial role value.

// First roll was `1`, we drop that and roll again and get a `4`
8+1d10ro=1: 8+[4ro] = 12 

So maybe something like an addition to the re-roll modifier (e.g. i), to tell it to subtract the value:

8+1d10roi=1: 8+[-4roi] = 4 

We could add it to exploding rolls as well, to make it consistent:

// First roll was `1`, we explode that and roll again and get a `4`
1d10!i=1: [1!, -4] = -3
Tillerz commented 3 years ago

Yeah, more a reroll and adding a negative modifier. :) And it should be possible to have both of those requests in 1 roll. As it may either explode and add one die, or be a reroll that subtracts the next roll. :D

GreenImp commented 3 years ago

@Tillerz I've built the functionality to set the maximum amount of times that an explode or re-roll modifier will do so, but I'm having difficulties deciding on a sensible notation format for it, as there is a similar change requestion on those modifiers in #205.

I've created a discussion #224 where I'm hoping that I can get some feedback from draco963 and yourself, to try and come up with a good solution.