rpgtex/DND-5e-LaTeX-Template

Display proficiency bonus in Monster statblock

Darkade opened this issue · 9 comments

Hi! I'm just now realizing there's no option to add the proficiency bonus of a monster in the \DndMonsterDetails neither is it automatically calculated from the Challenge rating. Is this possible to add?

Thanks!

It's possible, but automation on that level runs the risk of losing flexibility for the times when a monster does not follow the general rules of monster building.

Proficiency is not displayed anywhere. It is just built into other numbers for attacks, ability checks, saving throw bonuses or DCs. Because of the way function arguments work in LaTeX, it would not save the end user much typing anyway, but it could help automate the calculation.

Thinking aloud: Implementing this would likely require adding a concept of state to the DndMonster environment. This would allow any DndMonster-related options to be set and stay in place for the duration of the environment and be cleared when the environment is closed. Most of our DndMonster-related functions are somewhat stateless at the moment where the options passed to, say, DndMonsterBasics are used and then forgotten.

Gotcha. I've made an small path that adds this and was about to make a pull request and then I realized.

In my writing process the easiest way to check for statblocks is in DnD Beyond and their statblocks do display the proficiency bonus. While the books themselves do not. I hadn't noticed this difference and now I'm wondering why the decision to show them on dndbeyond.

Thank you!

Just as I was writing this, I was informed that Candlekeep mysteries was the first book to officially print the proficiency bonus. I don't know why the chance.

Let me know if you'd like me to make a pull request. :3

I just looked on dndbeyond.com and saw the new Proficiency section on the stat block. It seems weird to me and not very useful, but I have seen plenty of people post that they like it.

If you do add this in, it would need to be an option in DndSetOptions (I don't remember if that function has even been set up yet). The option would need to default to off at least in the short term for backwards compatibility.

You can also include it right now by including the full text of the line after the word "Challenge", and this could all be wrapped into some sort of function that you personally use.

%pseudocode "DndMonsterListFont" is not the right name
4 (1,100 XP) \vfill {\DndSetMonsterListFont {Proficiency Bonus }} +2

For the record.

The monster manual in "Compendium Mode" does not show you the proficiency bonus
https://www.dndbeyond.com/sources/mm/monsters-o#Orcs

But when you look at a monster it does display
https://www.dndbeyond.com/monsters/orc

And I don't have Candlekeep, but I understand it was added to print, so I'd expect for the proficiency bonus to bedisplayed in compendium mode for that book.

I'll take your notes into account and will make the proper patch over the weekend.

Thank you!

\DndOptions hasn't been implemented so I'm checking the \DndSetFonts function to base it from there. But It's the first time I develop something for tex, to I'm not 100% clear yet on how it works.

In the mean time the basic functionality works, but it's not optional yet. I'll be looking into how Document Functions work to implement \DndOptions

Anyway, you can check the simple proficiency bonus function here if you'd like and I'll open the pr as soon as I figure the rest out

dev...Darkade:feature/proficiencybonus

Thank you!

Came here to see if anyone else had requested the proficiency bonus detail...

I took a less smart approach, simply adding another optional detail item proficiency-bonus like the immunities ones. So the author has to explicitly specify it for each stat block, but on the plus side means existing documents won't change: dev...kbriggs:npcprofbonus

I'll open a PR but feel free to reject if e.g. you prefer a different approach.

I integrated @Darkade's calculation of the proficiency bonus from the challenge rating with my PR #329; specifying the special value * or no value at all (e.g. challenge-rating = 5, proficiency-bonus, skills = …) will display the calculated value.

In the future to make displaying the proficiency bonus the default, we would just have to add to the keys definition:

  proficiency-bonus .initial:n = *,

(possibly along with a flag to suppress it for individual stat blocks:

  no-proficiency-bonus .meta:n = { proficiency-bonus = {} },
  noproficiencybonus .meta:n = { no-proficiency-bonus },

), which presumably could be conditional on a package option.

(@Darkade, I credited you as Co-authored-by: I Reyes <4106546+Darkade@users.noreply.github.com> which is what shows up when I pull your branch from github, let me know if that isn't correct)

That's correct! Thank you. I haven't had a change to get back around to this so this. Your solution seems very neat :3