Skip to content

Proficiencies - #176

Open
PJBrs wants to merge 6 commits into
canismarko:masterfrom
PJBrs:proficiencies
Open

Proficiencies#176
PJBrs wants to merge 6 commits into
canismarko:masterfrom
PJBrs:proficiencies

Conversation

@PJBrs

@PJBrs PJBrs commented Apr 2, 2025

Copy link
Copy Markdown
Contributor

This PR has five patches that affect how user-chosen proficiencies are listed and treated. The intended result is the same as with how languages are treated, as in - if your background affords you an additional language, it is listed as [choose one] in your character file. Compare: "One type of artisan's tools", "Three musical instruments of your choice"

  1. The first patch puts all user-chosen proficiency options in brackets and reformulates them as, e.g., [choose one type of artisan's tools]
  2. The second patch separates such options in proficiencies_by_type into a separate category (from prof_dict["Other"] to prof_dict["Optional"])
  3. The third patch prevents listing the user-chosen proficiencies in the dungeon-sheets output
  4. The fourth patch makes sure that create_character adds user-chosen proficiencies to a character module.
  5. The fifth and final patch adds a warning to makesheets that warns the user when they still have proficiencies to choose.

As end result, a user would, for instance, create a bard. This would add [choose three musical instruments] to the character file. When the user has not removed this choice and substituted it with three instruments, makesheets will warn that the user still needs to choose.

PJBrs added 6 commits May 11, 2025 09:40
Various proficiency options exist that actually require
the player to choose something, such as:

three musical instruments of your choice; or
one set of artisan's tools.

These should not be listed as such on the character sheet.
Put each of these choices in brackets, like done for a
couple of such choices already, and for language options.
This way, we can filter these options out in character.py.
Some proficiencies represent options that the player has
to choose from. Distinguish these from other proficiencies.
Various races, backgrounds and classes contain choices for
proficiencies such as "one skill from ranger list" or "three
musical instruments." Add these to the player's character
file at character creation, as a reminder that they change
these later, just as done already with language choices.

This is best tested by creating a multiclass Bard (5),
Ranger (4), Rogue (3) Hobgoblin character, which will
have optional skills, instruments, and weapons.
The epub output format didn't list any proficiencies anymore
since various recent changes I made. This patch fixes that problem.

I worked around an issue in the epub gm files output, where it is possible
to have a monster as a character. In that case, proficiencies_by_type is
not initialised, resulting in the following error:

jinja2.exceptions.UndefinedError: 'dungeonsheets.monsters.monsters_v.Veteran
object' has no attribute 'proficiencies_by_type'

It does make me think whether is would be possible to rename the
proficiencies_by_type method to proficiencies_text, which will be initialised
by definition, and then use rst and a jinja filter for formatting instead...
@PJBrs

PJBrs commented Nov 5, 2025

Copy link
Copy Markdown
Contributor Author

@canismarko I hope this message finds you well. It would be really nice to get back to this PR again! Also see my comments in Discord.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant