Skip to content

Commit

Permalink
Update planned count modifier.
Browse files Browse the repository at this point in the history
  • Loading branch information
christhekeele committed Mar 3, 2023
1 parent 7e6aa89 commit 07943a0
Showing 1 changed file with 47 additions and 40 deletions.
87 changes: 47 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ By default, random dice are kept. This can be further modified to:

| Operation | Expression | Interpretation | Example | Meaning | Notes |
| :---: | ---: | :--- | ---: | :--- | :--- |
| ***Keep*** | `NdSK` | Roll `N` dice with `S` sides, and keep a random die. | `2d20K` | Roll 2 `d20` and keep one at random. | Equivalent to ***Keep Random***: `NdSK1R`. |
| ***Keep Many*** | `NdSKM` | Roll `N` dice with `S` sides, and keep `M` random dice. | `3d20K2` | Roll 3 `d20` and keep `2` at random. | Equivalent to ***Keep Random***: `NdSKMR`. |
| ***Keep Random*** | `NdSKMR` | Roll `N` dice with `S` sides, and keep `M` random dice. | `3d20K2R` | Roll 3 `d20` and keep `2` at random. | Equivalent to ***Keep Many***: `NdSKM`. |
| ***Keep Highest*** | `NdSKH` | Roll `N` dice with `S` sides, and keep the highest result. | `2d20KH` | Roll 2 `d20` and keep the highest result. | |
| ***Keep Many Highest*** | `NdSKMH` | Roll `N` dice with `S` sides, and keep the highest `M` results. | `3d20K2H` | Roll 3 `d20` and keep the `2` highest. | |
| ***Keep Lowest*** | `NdSKL` | Roll `N` dice with `S` sides, and keep the lowest result. | `2d20KL` | Roll 2 `d20` and keep the lowest result. | |
| ***Keep Many Lowest*** | `NdSKML` | Roll `N` dice with `S` sides, and keep the lowest `M` results. | `3d20K2L` | Roll 3 `d20` and keep the `2` lowest. | |
| ***Keep*** | `NdSK` | Roll `N` dice with `S` sides, and keep a random die. | `2d20K` | Roll `2` `d20` and keep one at random. | Equivalent to ***Keep Random***: `NdSK1R`. |
| ***Keep Many*** | `NdSKM` | Roll `N` dice with `S` sides, and keep `M` random dice. | `3d20K2` | Roll `3` `d20` and keep `2` at random. | Equivalent to ***Keep Random***: `NdSKMR`. |
| ***Keep Random*** | `NdSKMR` | Roll `N` dice with `S` sides, and keep `M` random dice. | `3d20K2R` | Roll `3` `d20` and keep `2` at random. | Equivalent to ***Keep Many***: `NdSKM`. |
| ***Keep Highest*** | `NdSKH` | Roll `N` dice with `S` sides, and keep the highest result. | `2d20KH` | Roll `2` `d20` and keep the highest result. | |
| ***Keep Many Highest*** | `NdSKMH` | Roll `N` dice with `S` sides, and keep the highest `M` results. | `3d20K2H` | Roll `3` `d20` and keep the `2` highest. | |
| ***Keep Lowest*** | `NdSKL` | Roll `N` dice with `S` sides, and keep the lowest result. | `2d20KL` | Roll `2` `d20` and keep the lowest result. | |
| ***Keep Many Lowest*** | `NdSKML` | Roll `N` dice with `S` sides, and keep the lowest `M` results. | `3d20K2L` | Roll `3` `d20` and keep the `2` lowest. | |

#### Drop

Expand All @@ -57,64 +57,53 @@ By default, random dice are dropped. This can be further modified to:

| Operation | Expression | Interpretation | Example | Meaning | Notes |
| :---: | ---: | :--- | ---: | :--- | :--- |
| ***Drop*** | `NdSD` | Roll `N` dice with `S` sides, and drop a random die. | `2d20D` | Roll 2 `d20` and drop one at random. | Equivalent to ***Drop Random***: `NdSD1R`. |
| ***Drop Many*** | `NdSDM` | Roll `N` dice with `S` sides, and drop `M` random dice. | `3d20D2` | Roll 3 `d20` and drop `2` at random. | Equivalent to ***Drop Random***: `NdSDMR.` |
| ***Drop Random*** | `NdSDMR` | Roll `N` dice with `S` sides, and drop `M` random dice. | `3d20D2R` | Roll 3 `d20` and drop `2` at random. | Equivalent to ***Drop Many***: `NdSKM`. |
| ***Drop Highest*** | `NdSDH` | Roll `N` dice with `S` sides, and drop the highest result. | `2d20DH` | Roll 2 `d20` and drop the highest result. | |
| ***Drop Many Highest*** | `NdSDMH` | Roll `N` dice with `S` sides, and drop the highest `M` results. | `3d20D2H` | Roll 3 `d20` and drop the `2` highest. |
| ***Drop Lowest*** | `NdSDL` | Roll `N` dice with `S` sides, and drop the lowest result. | `2d20DL` | Roll 2 `d20` and drop the lowest result. | |
| ***Drop Many Lowest*** | `NdSDML` | Roll `N` dice with `S` sides, and drop the lowest `M` results. | `3d20D2L` | Roll 3 `d20` and drop the `2` lowest. | |

#### Count

***Count*** (`C`) lets you change a dice pools output from being a sum of dice rolls, to the count of rolled dice that meet a certain criteria.

By default, all dice are counted. This can be further modified to:

- Count rolls higher than a number (***Count Greater Than***: `C>`)
- Count rolls lower than a number (***Count Lower Than***: `C<`)
- critical success, failure, explosions?

| Operation | Expression | Interpretation | Example | Meaning | Notes |
| :---: | ---: | :--- | ---: | :--- | :--- |
| ***TBD*** |
| ***Drop*** | `NdSD` | Roll `N` dice with `S` sides, and drop a random die. | `2d20D` | Roll `2` `d20` and drop one at random. | Equivalent to ***Drop Random***: `NdSD1R`. |
| ***Drop Many*** | `NdSDM` | Roll `N` dice with `S` sides, and drop `M` random dice. | `3d20D2` | Roll `3` `d20` and drop `2` at random. | Equivalent to ***Drop Random***: `NdSDMR.` |
| ***Drop Random*** | `NdSDMR` | Roll `N` dice with `S` sides, and drop `M` random dice. | `3d20D2R` | Roll `3` `d20` and drop `2` at random. | Equivalent to ***Drop Many***: `NdSKM`. |
| ***Drop Highest*** | `NdSDH` | Roll `N` dice with `S` sides, and drop the highest result. | `2d20DH` | Roll `2` `d20` and drop the highest result. | |
| ***Drop Many Highest*** | `NdSDMH` | Roll `N` dice with `S` sides, and drop the highest `M` results. | `3d20D2H` | Roll `3` `d20` and drop the `2` highest. |
| ***Drop Lowest*** | `NdSDL` | Roll `N` dice with `S` sides, and drop the lowest result. | `2d20DL` | Roll `2` `d20` and drop the lowest result. | |
| ***Drop Many Lowest*** | `NdSDML` | Roll `N` dice with `S` sides, and drop the lowest `M` results. | `3d20D2L` | Roll `3` `d20` and drop the `2` lowest. | |

#### Explode

***Explode*** (`!`) lets you roll extra dice into a pool before adding them together, based on previous rolls.

By default, only the maximum possible roll triggers an explosion. This can be further modified by providing an explicit threshold at which to explode (***Explode At***: `!N`).
- Only the maximum possible roll triggers an explosion. This can be further modified by providing an explicit threshold at which to explode (***Explode At***: `!N`).
- An explosion adds another die of the same sides to the pool. This can be further modified by specifying a die to explode with (***Explode With***: `!dT`)
- Re-rolls do not trigger explosions. This can be further modified by specifying that re-rolls can keep exploding (***Keep Exploding***: `!!`, ***Keep Exploding At***: `!!N`).

By default, an explosion adds another die of the same sides to the pool. This can be further modified by specifying a die to explode with (***Explode With***: `!dT`)

By default, re-rolls do not trigger explosions. This can be further modified by specifying that re-rolls can keep exploding (***Keep Exploding***: `!!`, ***Keep Exploding At***: `!!N`).

> ***Keep Exploding*** (`!!`) will not trigger on 1-sided dice, or dice with a single value on all sides. ***Keep Exploding At*** (`!N`) will not explode dice where no side is less than `N`. Other safeguards exist to ensure no explosion chain is allowed to run forever.
> **NOTE**:
>
> ***Keep Exploding*** (`!!`) will not trigger on 1-sided dice, or dice with a single value on all sides.
>
> ***Keep Exploding At*** (`!N`) will not explode dice where no side is less than `N`. Other safeguards exist to ensure no explosion chain is allowed to run forever.
| Operation | Expression | Interpretation | Example | Meaning | Notes |
| :---: | ---: | :--- | ---: | :--- | :--- |
| ***Explode*** | `dS!` | Roll one die with `S` sides, and if the die rolls `S`, roll another `dS` to the pool. | `d20!` | Roll one `d20` and add another `d20` roll to the pool if the first rolls `20`. | Equivalent to ***Explode At***: `dS!S`. |
| ***Explode At*** | `dS!N` | Roll one die with `S` sides, and if the die rolls higher than or equal to `N`, roll another `dS` to the pool. | `d20!18` | Roll one `d20` and add another `d20` roll to the pool if the first rolls `18` or higher. | |
| ***Explode With*** | `dS!dT` | Roll one die with `S` sides, and if the die rolls higher than or equal to `N`, roll a `dT` to the pool. | `d20!d4` | Roll one `d20` and add a `d4` roll to the pool if the first rolls `20`. | |
| ***Keep Exploding*** | `dS!!` | Roll one die with `S` sides, and if the die rolls `S`, roll another `dS` to the pool. If ***that*** die rolls `S`, repeat... | `d20!!` | Roll one `d20` and add another `d20` roll to the pool if the first rolls `20`, and another if ***that*** rolls `20`... | Equivalent to ***Keep Exploding At***: `dS!!S`. |
| ***Keep Exploding At*** | `dS!!N` | Roll one die with `S` sides, and if the die rolls higher than or equal to `N`, roll another `dS` to the pool. If ***that*** die rolls `S`, repeat... | `d20!!18` | Roll one `d20` and add another `d20` roll to the pool if the first rolls `18` or higher, and another if ***that*** rolls `18` or higher... | |

#### Advantage/Disadvantage

***Advantage*** (`dS+`) lets you treat a roll as if you had rolled it twice, and taken the better roll. Conversely, ***Disadvantage*** (`dS-`) takes the worse roll.
***Advantage*** (`dS+`) lets you treat each die rolled as if you had rolled it twice, and taken the better roll. Conversely, ***Disadvantage*** (`dS-`) takes the worse roll.

> **NOTE** that this works differently from just rolling twice as many dice with ***Keep High***/***Keep Low***, when rolling more than one die with **Advantage**/**Disadvantage**!
> **NOTE**
>
> This works differently from just rolling twice as many dice with ***Keep High***/***Keep Low***, when rolling more than one die with ***Advantage***/***Disadvantage***!
>
> `KH`/`KL` will remove the worst/best rolls from the entire pool, whereas **Advantage**/**Disadvantage** treats each roll as a pool of two before proceeding, allowing more good/poor rolls to contribute to the total.
> `KH`/`KL` will remove the worst/best rolls from the entire pool, whereas ***Advantage***/***Disadvantage*** treats each roll as a pool of two before proceeding, allowing more good/poor rolls to contribute to the total.
>
> In practice, this means that `NdS+` will have more variance and average lower results than `2NdSKHN`, and `NdS-` will have more variance and average higher results than `2NdSKLN`.
| Operation | Expression | Interpretation | Example | Meaning | Notes |
| :---: | ---: | :--- | ---: | :--- | :--- |
| ***Advantage*** | `dS+` | Roll two dice with `S` sides, and take the better roll. | `d20+` | Roll two `d20` and take the better result. | Equivalent to ***Keep Highest***: `2dSKH`. |
| ***Multiple Advantage*** | `NdS+` | Roll two dice with `S` sides, and take the better roll `N` times. | `4d20+` | Roll two `d20` and take the better result, `4` times. | ***NOT*** equivalent to ***Keep Highest***: `2NdSKHN`! See **NOTE** above. |
| ***Multiple Advantage*** | `NdS+` | Roll two dice with `S` sides, and take the better roll `N` times. | `4d20+` | Roll two `d20` and take the better result, `4` times. | ***NOT*** equivalent to ***Keep Highest***: `2NdSKHN`! See ***NOTE*** above. |
| ***Disadvantage*** | `dS-` | Roll two dice with `S` sides, and take the worse roll. | `d20-` | Roll two `d20` and take the worse result. | Equivalent to ***Keep Lowest***: `2dSKL`. |
| ***Multiple Disadvantage*** | `NdS-` | Roll two dice with `S` sides, and take the worse roll `N` times. | `4d20-` | Roll two `d20` and take the worse result, `4` times. | ***NOT*** equivalent to ***Keep Highest***: `2NdSKLN`! See **NOTE** above. |
| ***Multiple Disadvantage*** | `NdS-` | Roll two dice with `S` sides, and take the worse roll `N` times. | `4d20-` | Roll two `d20` and take the worse result, `4` times. | ***NOT*** equivalent to ***Keep Highest***: `2NdSKLN`! See ***NOTE*** above. |

#### Maximize/Minimize

Expand All @@ -125,6 +114,24 @@ By default, re-rolls do not trigger explosions. This can be further modified by
| ***Maximize*** | `dSM` | Roll one die with `S` sides, and assume you rolled `S`. | `d20M` | Ignore the dice roll and assume you rolled a `20`. | |
| ***Minimize*** | `dSm` | Roll one die with `S` sides, and assume you rolled a `1`. | `d20m` | Ignore the dice roll and assume you rolled a `1`. | |

#### Count

***Count*** (`C`) lets you change a dice pool's output from being a sum of dice rolls, to the count of rolled dice that meet a certain criteria.

By default, all dice are counted. This can be further modified to:

- Count rolls higher than a number (***Count Greater Than***: `C>`)
- Count rolls higher than a number (***Count Greater Than Or Equal To***: `C>=`)
- Count rolls lower than a number (***Count Lower Than***: `C<`)
- Count rolls lower than a number (***Count Lower Than Or Equal To***: `C<=`)
- Count how many rolls were the maxiumum possible value (***Count Maximum***: `CM`)
- Count how many rolls were the minimum possible value (***Count Minimum***: `Cm`)
- Count how many rolls exploded (***Count Explosions***: `C!`)

| Operation | Expression | Interpretation | Example | Meaning | Notes |
| :---: | ---: | :--- | ---: | :--- | :--- |
| ***TBD*** |

### Other Dice

#### Custom Numeric Dice
Expand Down

0 comments on commit 07943a0

Please sign in to comment.