Skip to content

Commit

Permalink
Add documentation for Trait & Size advancements
Browse files Browse the repository at this point in the history
  • Loading branch information
arbron committed Nov 10, 2023
1 parent fdef777 commit 98d473e
Show file tree
Hide file tree
Showing 13 changed files with 108 additions and 5 deletions.
2 changes: 1 addition & 1 deletion wiki/Advancement-Type-Hit-Points.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![Up to date as of 2.0.3](https://img.shields.io/static/v1?label=dnd5e&message=1.6.3&color=informational)
![Up to date as of 2.0.3](https://img.shields.io/static/v1?label=dnd5e&message=2.0.3&color=informational)

The Hit Points advancement type keeps track of hit point choices for each level of a class. This advancement can only be added to classes and each class can only have a single advancement of this type.

Expand Down
2 changes: 1 addition & 1 deletion wiki/Advancement-Type-Item-Choice.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![Up to date as of 2.2.0](https://img.shields.io/static/v1?label=dnd5e&message=2.0.0&color=informational)
![Up to date as of 2.2.0](https://img.shields.io/static/v1?label=dnd5e&message=2.2.0&color=informational)

This advancement type is designed for any feature that gives the player a choice of options to add to their character at a certain level. This covers features with a limited set of options such as Fighting Style and more open ended features such as Magical Secrets.

Expand Down
2 changes: 1 addition & 1 deletion wiki/Advancement-Type-Item-Grant.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![Up to date as of 2.0.3](https://img.shields.io/static/v1?label=dnd5e&message=1.6.3&color=informational)
![Up to date as of 2.0.3](https://img.shields.io/static/v1?label=dnd5e&message=2.0.3&color=informational)

This Advancement Type also contains the following options:
* **Level**: Select the level that these features should be granted at.
Expand Down
2 changes: 1 addition & 1 deletion wiki/Advancement-Type-Scale-Value.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![Up to date as of 2.0.3](https://img.shields.io/static/v1?label=dnd5e&message=1.6.3&color=informational)
![Up to date as of 2.0.3](https://img.shields.io/static/v1?label=dnd5e&message=2.0.3&color=informational)

This Advancement Type also contains the following options:
* **Scale Type**: This determines the values accepted on the Level sections on the right hand side
Expand Down
42 changes: 42 additions & 0 deletions wiki/Advancement-Type-Size.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
![Up to date as of 2.4.0](https://img.shields.io/static/v1?label=dnd5e&message=2.4.0&color=informational)

The Size advancement allows a race to set the creature size of a character and will present an option of sizes upon adding a race if more than one size is possible. This advancement can only be added to races and each race can only have a single advancement of this type.

## Configuration

![Size Configuration](https://raw.githubusercontent.com/foundryvtt/dnd5e/publish-wiki/wiki/images/advancement/size-configuration.jpg)

The Size advancement presents a list of creature sizes that can be chosen. The player will be presented these options as long as more than one size is selected.

It also allows a hint to be set which will be displayed to the user when they add the race. This is usually populated with the same text in the size section of the race's description, to give the player context for their choice.

## Usage

![Size Flow](https://raw.githubusercontent.com/foundryvtt/dnd5e/publish-wiki/wiki/images/advancement/size-configuration.jpg)

When a player adds a race they will be shown the hint provided, or an auto-generated hint if one wasn't set, and a dropdown of size options if more than one is possible.

## API

The original proposal for the Hit Points advancement can be [found here](https://github.com/foundryvtt/dnd5e/issues/2220).

### Configuration Schema

The Size advancement contains a simple data structure with `hint` being a string, and `sizes` being a set of available size options as defined in `CONFIG.DND5E.creatureSizes`.

```javascript
{
hint: "Elves range from under 5 to over feet tall and have slender builds. Your size is Medium.",
sizes: new Set(["med"])
}
```

### Value Schema

The Size advancement keeps track of the size selected by the user as a string. This value is set even if there was only a single size configured.

```javascript
{
size: "med"
}
```
59 changes: 59 additions & 0 deletions wiki/Advancement-Type-Trait.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
![Up to date as of 2.4.0](https://img.shields.io/static/v1?label=dnd5e&message=2.4.0&color=informational)

The Trait advancement allows assigning a set of trait to an actor. Traits include things like proficiencies, languages, and resistances.

## Configuration

![Trait Configuration - Grants](https://raw.githubusercontent.com/foundryvtt/dnd5e/publish-wiki/wiki/images/advancement/trait-configuration-grants.jpg)

Configuring a basic Trait advancement they just grants some traits is simple. First select the type of trait you would like to grant in the top right, and then check which traits should be granted from the list. In many cases that is all that is required, the title and icon will be updated to reflect the selected trait type and a hint will be auto-generated.

![Trait Configuration - Choices](https://raw.githubusercontent.com/foundryvtt/dnd5e/publish-wiki/wiki/images/advancement/trait-configuration-choices.jpg)

Another option is having a player select from one or more traits. This can be set up by creating the Trait advancement, and then clicking the "+ Add Choice" button near the bottom left which will add a choice set. Then set the number of selections the player can make from the top right and choose a specific trait type. In the list below, you'll have the option of manually selecting one or more options, or checking a "Any …" option which will allow selecting any trait within a category.

For more complex combinations of choices, you can combine grants and choices, or create one or more sets of choices. If more than one set of choices are created, the player will be able to select from all of them (so if you set "Any one skill" and "Any on Artisan Tool", the player will be able to select two total traits, one skill and one tools).

![Trait Advancement List](https://raw.githubusercontent.com/foundryvtt/dnd5e/publish-wiki/wiki/images/advancement/trait-advancement-list.jpg)

A few options should be considered depending on where the Trait advancement is being added:

If it is on a Background and granting skills, then the "Allow Replacements" options should be checked, which will allow players to choose alternate skills if they already have the default skills from their race or class.

If the advancement is on a class, they the "Class Restriction" options should be considered. Something like Saving Throw proficiencies should be set to "Original Class", because only the first class added grants saves. Similarly the number of skills and other proficiencies might change depending on whether this is the original class or a multiclass. For handling those possibilities, it is easiest to create the standard advancement that will be given if it is the original class with whatever skills are granted checked, and then duplicate it using the context menu in the advancement list and update the list or count based on the multiclass rules.

### Trait Types
These trait types can be applied using the Trait advancement:
- Saving Throws
- Skills
- Languages
- Armor Proficiency
- Weapon Proficiency
- Tool Proficiency
- Damage Immunity, Resistance, and Vulnerability
- Condition Immunity

### Application Modes
There are several different modes that can be used in Trait advancement:
- **Default**: Standard mode that grants a trait or standard proficiency. If the player already has proficiency in a trait, they will not be prompted to take it again.
- **Expertise**: Expertise as handled by Rogues and the like. Will present the player with a list of traits in which they are already proficient, and upgrade any selected traits to double proficiency. Can only be applied to skills and tools.
- **Forced Expertise**: Just like normal expertise, but doesn't require the character to have existing proficiency in a skill or tool before they gain expertise.
- **Upgrade**: For any selected traits, if a player is not proficient they will gain proficiency, and if they are already proficient they will gain expertise.

## Usage

![Trait Flow](https://raw.githubusercontent.com/foundryvtt/dnd5e/publish-wiki/wiki/images/advancement/trait-flow.jpg)

The Trait advancement presented to the player will display the auto-generated or manual hint at the top, followed by slots corresponding to the traits granted. If any choices are required of the player, they will be shown a dropdown will all the available choices at any given time. The contents of this dropdown change as selections are made so it doesn't show options the player can no longer select.

## API

The original proposal for the Hit Points advancement can be [found here](https://github.com/foundryvtt/dnd5e/issues/1405).

### Configuration Schema

// TODO

### Value Schema

// TODO
4 changes: 3 additions & 1 deletion wiki/Home.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@
- [Advancement Overview](Advancement.md)
- [Advancement User Guide](Advancement-User-Guide.md)
- [Custom Class Example](Custom-Class-Advancement.md)
Advancement Types
- Advancement Types
- [Advancement Type: Hit Points](Advancement-Type-Hit-Points.md)
- [Advancement Type: Item Grant](Advancement-Type-Item-Grant.md)
- [Advancement Type: Item Choice](Advancement-Type-Item-Choice.md)
- [Advancement Type: Scale Value](Advancement-Type-Scale-Value.md)
- [Advancement Type: Size](Advancement-Type-Size.md)
- [Advancement Type: Trait](Advancement-Type-Trait.md)

- [Dynamic Module Art](Dynamic-Module-Art.md)
- [Hooks](Hooks.md)
Expand Down
Binary file added wiki/images/advancement/size-configuration.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added wiki/images/advancement/size-flow.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added wiki/images/advancement/trait-flow.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 98d473e

Please sign in to comment.