Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advancement Type: Item Choice #1401

Closed
arbron opened this issue Jan 15, 2022 · 2 comments · Fixed by #2015
Closed

Advancement Type: Item Choice #1401

arbron opened this issue Jan 15, 2022 · 2 comments · Fixed by #2015

Comments

@arbron
Copy link
Collaborator

arbron commented Jan 15, 2022

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.

Level Up Interface

If a limited pool of options are provided, the interface will present the list with checkboxes so the player can select which options they would like. If any arbitrary items can be added, then the player is presented with a drop area where items can be dragged from the items sidebar or a compendium. Both a list of items and the drop area can be used at the same time.

It should be clear how many choices are available (Fighting Style only allows one, Magical Secrets lets you take two, etc.).

Configuration

The hint string is a brief bit of text to assist players in what choices they can make. Typically this will be a portion of the feature's description and shouldn't be more than a single paragraph of one or two sentences.

The choices object indicates how many choices are available to the player and at which levels. A choice that can be taken only once such as a Fighter's Fighting Style would be simple as { 1: 1 }, indicating that player should be presented with choosing a single style at first level. Something like Bard's Magical Secrets which gives the option of choosing two options at levels 10, 14, and 18 is shown below.

The boolean allowDrops indicates whether the drop area should be shown to the player to allow arbitrary items to be added.

Item types can be restricted using the type field, which is null if any item type is acceptable, or can be set to one of the top-level types (except things like class, subclass, and background).

Finally pool contains an array of item UUIDs indicating a fixed list of options presented to the player.

{
  hint: "Choose two spells from any classes, including this one. A spell you choose must be of a level you can cast, as shown on the Bard table, or a cantrip.",
  choices: { 10: 2, 14: 2, 18: 2 },
  allowDrops: true,
  type: "spell",
  pool: null
}

Value

The value object contains an entry for each level where a choice is offered. Each of these entries is another object containing the ID of the item on the actor as the key and the UUID of the chosen or dropped item as the value.

{
  10: {
    "aonJ2YjkqkYB9WYB": "Compendium.dnd5e.spells.JLTQyqXEaJDrTXyW",
    "GBYN5rH4nh1ocRlY": "Compendium.dnd5e.spells.7UwUjJ6owIQkEPrs"
  }
}

Future Directions

In the future, this can potentially be tied with a more advanced system for matching item types in compendiums. So the advancement would be able to present a list of all Metamagic options available to the player, regardless of which module introduced them.

@arbron arbron self-assigned this Jun 27, 2022
@arbron arbron linked a pull request Jul 3, 2022 that will close this issue
@arbron arbron modified the milestones: D&D5E 2.0.0, D&D5E 2.1.0 Jul 19, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
…h dropping existing items, localize chosen text
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Aug 22, 2022
arbron added a commit to arbron/dnd5e that referenced this issue Jan 3, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 3, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 3, 2023
@arbron arbron modified the milestones: D&D5E 2.1.0, D&D5E 2.2.0 Jan 3, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 7, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 15, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 15, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 15, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 15, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 15, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 16, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 16, 2023
@arbron arbron linked a pull request Jan 22, 2023 that will close this issue
1 task
arbron added a commit that referenced this issue Jan 25, 2023
@arbron arbron closed this as completed Jan 25, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 25, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 25, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 25, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 25, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 25, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 25, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 25, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 25, 2023
arbron added a commit to arbron/dnd5e that referenced this issue Jan 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants