foundryvtt / dnd5e

An implementation of the 5th Edition game system for Foundry Virtual Tabletop (http://foundryvtt.com).
MIT License
308 stars 212 forks source link

Support minimum roll values on skill checks #1350

Open aaclayton opened 2 years ago

aaclayton commented 2 years ago

Originally in GitLab by @MrPrimate

The Bard College of Eloquence has the feature Silver Tongue which allows:

When you make a Charisma (Persuasion) or Charisma (Deception) check, you can treat a d20 roll of 9 or lower as a 10.

I would like to be able to set a "minimum value" for individual skills, possibly as part of the skill schema.

aaclayton commented 2 years ago

Originally in GitLab by @garrysmod367

Glad this is being added. It will make handling these features easier and should also allow active effects to temporarily grant such bonuses. Additionally, this allows for custom content that has similar functionality.

aaclayton commented 2 years ago

Originally in GitLab by @arbron

I would say merge the skill/save commit and attack commit into one and then create a merge request targeting the 1.6.x branch of 5e.

Make sure you go a linting pass to check for any style issues before creating the MR (using gulp lint, more info here.

aaclayton commented 2 years ago

Originally in GitLab by @szefo09

Might also be worth adding a character flag to the Special Traits area to cover minimum rolls for attack rolls.

Done! I would appreciate if this feature could find it's way into the core: https://gitlab.com/szefo09/dnd5e/-/commit/14c7f4da0ec1ce800f8ee50604629fd6a006fb82

aaclayton commented 2 years ago

Originally in GitLab by @szefo09

Certainly, and reliable talent could be merged into the minimum as well, when passed to the roll formula.

aaclayton commented 2 years ago

Originally in GitLab by @arbron

That's looking good.

Might also be worth adding a character flag to the Special Traits area to cover minimum rolls for attack rolls.

aaclayton commented 2 years ago

Originally in GitLab by @szefo09

I created a rough implementation, based on the current master branch, which adds an input field to the configuration of individual skills/abilities, and allows for the skill check/ability check/ability saving throw to have a minimum roll. https://gitlab.com/szefo09/dnd5e/-/commit/d58007a47126b05151b05f8057d60145c92020a8

image

aaclayton commented 2 years ago

Originally in GitLab by @MaxPat931

To complicate things, the Clockwork Sorcerer's Trance of Order is a temporary state which gives a floor of 9 for a wider range of d20 rolls

...for 1 minute. ... whenever you make an attack roll, an ability check, or a saving throw, you can treat a roll of 9 or lower on the d20 as a 10.

And Circle of Stars Druid's Starry Form: Dragon

When you make an Intelligence or a Wisdom check or a Constitution saving throw to maintain concentration on a spell, you can treat a roll of 9 or lower on the d20 as a 10.

aaclayton commented 2 years ago

Originally in GitLab by @arbron

One thing to keep in mind is Reliable Talent only applies to skills in which you have proficiency, while Silver Tongue applies even if you do not have proficiency in those skills.

A possible route forward is to add a minimumRoll to the skill data, and then modify Reliable Talent so that during data preparation it sets the minimum value to 10 for any skill that you are proficient with. Then we can pass the minimumRoll value into d20Roll rather than the reliableTalent flag.

This should keep everything behaving as it did before without any complex migration but give players the ability to configure Silver Tongue and any other similar features using the manual config or Active Effects.

aaclayton commented 2 years ago

Yes, Reliable Talent is already supported as a custom actor-flag:

image

So we would either follow the same approach for Silver Tongue OR get rid of the actor flag for Reliable Talent and refactor this into an individual skill-level configuration.

aaclayton commented 2 years ago

Originally in GitLab by @ravingdragoon

Rogues also get Reliable Talent

By 11th level, you have refined your chosen skills until they approach perfection. Whenever you make an ability check that lets you add your proficiency bonus, you can treat a d20 roll of 9 or lower as a 10.

aaclayton commented 2 years ago

Tricky one to support, given the existing options. I'm not sure whether it would be a better idea to support this generically for all skills, or support "Silver Tongue" as a special-case actor flag.

Normally I would be in favor of solving the type of problem at a general level - but 5e has so many "edge cases" it makes the system quite complex if you support all options for all cases.