Humblemonk / DiceMaiden

Dice bot for Discord
Apache License 2.0
117 stars 51 forks source link

Alien RPG failure roll command and Alias #196

Open OrangeHedgehog opened 2 years ago

OrangeHedgehog commented 2 years ago

Feature Request

Alien RPG failure roll command and Alias. I have not found another command which will do what is required (if there is, please let me know!). 🙂

Background

Players roll d6 dice (the character's pool, from Attributes, Skills and Bonuses (GM or Talents) (Base dice) and may also roll Stress dice (also d6 and identified by the amount of Stress a character has, e.g. 3 Stress=3 Stress dice). When a character rolls any 1 (failure) on the Stress dice only, a Panic roll is made. It does not matter whether multiple Stress dice come up 1, only one Panic roll is made.

Limitations on the quantities of dice being rolled/assessment of likely input parameters Base dice quantities are unlikely to exceed 20. An input limit of 40 seems reasonable. [A=1..40] Players do not roll Stress dice if their Stress is zero. A character's Stress is unlikely to go beyond 10. An input limit of 30 seems reasonable. [S=0..30]

The Panic roll is a single d6 modified by the character's Stress (e.g. 1d6+3) and may also be modified by a Talent (e.g: 1d6+3-2) (or other factor(s) the GM may apply).

n.b: If a player is not rolling Stress, the Panic modifier is not applicable. When rolling Stress, the Panic modifier is not always applicable (so needs to optional). The Panic modifier is typically -2. Whilst there is a possibility this could be adjusted by a GM adjustment beyond 10 is seems unlikely.

Successes are 6s (applicable to both Base and Stress dice) Failures, which only occur on Stress dice, are 1s.

Assuming the Base dice quantity=6 and Stress= 2, the long form command could be:

!roll 6d6 +2d6 t6

There is currently no means to isolate rolls of 1s on the Stress dice, the player will need to check the results. If either of the Stress dice roll a 1, the player then needs to type in another command, this can be avoided by providing a suitable command in DiceMaiden.

Desired Solution

A command which provides the user with access to an Alien RPG rolling mechanism. The mechanism identifies the quantity of Stress dice, signals stress fails, and automatically makes the Panic roll. Let's call it af. For flexibility, the af command should allow for variable failure target values, thus for Alien RPG it would be af1.

Example long form command might be:

!roll 6d6 t6 +2d6 af1

The af command would behave as the t6 command, and add the Alien RPG failure functionality. This would require the af command to identify where the + is, to isolate the quantity of d6 to which it applies (2 in this example). Currently this would be through using brackets: !roll (6d6 t6) + (2d6 af1). It would be better for the user to not have to type the brackets, an Alias would simplify the typing.

A supplementary/optional command would apply modifiers to automatically rolled Panic checks, let's call that P. P-2 would subtract 2 from the d6 Panic Roll result.

Alias

The Alias for Alien RPG could be of the format

A6 (6 Base dice, no Stress dice) A5S3 (5 Base dice, three Stress dice) A7S3P-2 (7 Base dice, three Stress dice, with a -2 modifier applied to any Panic roll required)

Where:

An=Identify use of Alien RPG roll (sets target of 6s for successes with numeral identifying the quantity of dice to roll) Sn=Stress Dice (set target of 6s for successes and 1s for failures (Panic roll required) with numeral identifying the quantity of dice to roll) Pn=Panic Modifier (adjusts panic roll value if required and by how much, note, it does not affect values rolled on Base or Stress dice)

Alternative considered

The f command subtracts failures from the quantity of successes. This is not appropriate to Alien RPG.

Further information on Panic rolls

Panic Rolls (PR) are categorised by the following values (after any modification of the roll). Short form descriptions are provided as suggestions for possible concise descriptions of the outcomes.

PR < 7: Resolve action normally, "Resolve"/"No panic". Omit if a Stress roll did not take place (cannot be omitted if a Stress roll did take place; players can benefit from having made Stress rolls during a session, so they need to know if a Stress roll took place) 7<=PR<=9: Resolve action then Panic, "Resolve then Panic!" 10<=PR<-12: Lose action, panic instead, "Panic!" 13 <=PR=<=14: Lose action, mental trauma, "Mental Trauma!" 15<=PR: Catatonia, Mental Trauma, "Catatonia!"

Example Rolls

The below examples are provided with different forms to help illustrate the variety of outcomes. Text in italics after output results are comments, not expected in the bot output. In each case of the outputs there is one or more concise version followed by a verbose version, only one version being expected from the bot, depending on the configuration set by the administator.

Commands for 6 Base, 3 Stress, no Panic modifier: !roll (6d6 t6) + (3d6 af1)
!roll A6S3

Possible Outputs Roll: Successes: 2 Roll: [5, 5, 4, 3, 2, 2][6, 2, 2] Successes: 1

Roll: Successes: 2 Resolve Roll: Successes: 2 No Panic Roll: [5, 5, 4, 3, 2, 2][6, 2, 1] Successes: 1 Panic Roll: 4

Commands for 7 Base, 4 Stress, no Panic modifier: !roll (7d6 t6) + (4d6 af1)
!roll A6S3

Possible Outputs

Roll: Successes: 3 Roll: [6, 5, 4, 4, 3, 2, 2][6, 6, 2, 2] Successes: 3 Resolve

Roll: Successes: 1 Resolve then Panic Roll: [6, 5, 5, 4, 3, 2, 2][4, 3, 2, 1] Successes: 1 Panic Roll: 8

Roll: Panic There being no successes Roll: [5, 5, 5, 4, 3, 2, 2][5, 2, 1, 1] Successes: 0 Panic Roll: 8

Roll: Panic! Panic roll results above 9 override all successes Roll: [6, 6, 6, 4, 3, 2, 2][6, 4, 2, 1] Successes: 4 Panic Roll: 10

Commands for 7 Base, 4 Stress, -2 Panic modifier: !roll (7d6 t6) + (4d6 af1 p-2)
!roll A6S3P-2

Possible Outputs

Roll: Successes: 4 Roll: [6, 6, 6, 4, 3, 2, 2][6, 4, 3, 2] Successes: 4

Roll: Successes: 4 Resolve Roll: [6, 6, 6, 4, 3, 2, 2][6, 5, 2, 1] Successes: 4 Panic Roll [4+4-2]: 6

Roll: Successes: 4 Resolve then Panic Roll: [6, 6, 6, 4, 3, 2, 2][6, 4, 2, 1] Successes: 4 Panic Roll [4+6-2]: 8

Commands for 7 Base, 9 Stress, -2 Panic modifier: !roll (7d6 t6) + (9d6 af1 p-2)
!roll A6S9P-2

Possible Outputs

Roll: Mental Trauma! Roll: [6, 6, 6, 4, 3, 2, 2][6, 6, 5, 4, 3, 2, 2, 2, 1] Successes: 5 Panic Roll [9+6-2]:13

Commands for 7 Base, 9 Stress, no Panic modifier: !roll (7d6 t6) + (9d6 af1)
!roll A6S9P

Possible Outputs

Roll: Catatonia! Roll: [6, 6, 6, 4, 3, 2, 2][6, 6, 5, 4, 3, 2, 2, 2, 1] Successes: 5 Panic Roll [9+6]:15