Esker
Hero
I made a thing:
I was inspired by the discussion with @Elfcrusher and @Fenris-77 the other day about D&D data visualization, so I thought I'd use it as an opportunity to figure out how to make an interactive tool... and got a little carried away.
I just started working on this Tuesday night, so it's bound to be buggy, probably with some math errors, and not everything in the UI is necessarily implemented in the back-end, but so far it includes:
Updated Feature List as of 6/5/20:
Let me know what you think, whether you find errors --- as I said I'm sure there are plenty!, and what features and interface changes you think would be most useful. Mostly this is a fun/procrastination tool for me, but it's also a good excuse to learn more interactive data vis. If you think there's an error, it would be helpful if you could take a look at the "debug" tables to see if you can locate the source; but even if you aren't inclined to do that, let me know what inputs you have set and what values or comparisons don't seem to be working correctly.
I was inspired by the discussion with @Elfcrusher and @Fenris-77 the other day about D&D data visualization, so I thought I'd use it as an opportunity to figure out how to make an interactive tool... and got a little carried away.
I just started working on this Tuesday night, so it's bound to be buggy, probably with some math errors, and not everything in the UI is necessarily implemented in the back-end, but so far it includes:
Updated Feature List as of 6/5/20:
- Comparison of two builds side-by-side (to be expanded to add arbitrarily many), graphing DPR by enemy AC
- Up to three classes per build
- Selection of fighting styles, many popular damage feats and options (PAM, GWM, CBE, SS, Elven Accuracy, Martial Adept, Booming Blade)
- Automatic calculation of attack modifiers, damage modifiers, number of attacks, availability of bonus action attacks, etc., based on character and class levels and options (e.g., archery or dueling style)
- Slider governing how often you expect to have advantage, either on all your attacks or on the first attack each turn*
- Automatic compatibility checks between weapon configuration and fighting styles, and automatic removal of extra attack when booming blade is selected
- Automatic inclusion of once-per-turn abilities such as sneak attack, with the to-hit chance factored in (NEW: toggle to control whether to "crit-fish" with these abilities)
- NEW: Automatic prompting to select a subclass when the class level allows it (currently only Champion or Battlemaster, but more to be added)
- Auto-inclusion of limited use "apply on hit" abilities, such as divine smite and battlemaster superiority dice (currently assumes you hit often enough to use all your available uses)
- Inclusion of damage bonuses per hit from features like improved divine smite. NEW: Add custom accuracy or damage bonuses per hit (to model things like Bless, Magic Weapons, etc.)
- NEW: Graph damage broken down by "at will", "crits", "resource use"
- NEW: Optionally show tables showing extensive individual elements of calculations
- More class/subclass options
- Proper accounting for bonus action economy and spell slot/other resource use as relates to features like rage activation, hex, hunter's mark, shadow blade, etc.
- Proper tracking of expected number of uses of resources like smites, superiority dice, etc., in cases where this is less than the number of resources granted due to having too few hits to apply them on
- Reaction attacks (will probably add a slider to let you specify what percentage of the time you think you can make one, possibly with a customizable bonus included on selection of feats like PAM and Sentinel)
- Precision attack
- Haste
- Option for adding generic custom limited use resources expressed in terms of damage/accuracy added, frequency of application, number of uses, and refresh period
- Ability to add arbitrarily many new builds to the same graph, with a "show/hide" button for the cluster of input options for each one
- "Save" and "share" builds by outputting a unique alphanumeric sequence that can be input later to restore options
Let me know what you think, whether you find errors --- as I said I'm sure there are plenty!, and what features and interface changes you think would be most useful. Mostly this is a fun/procrastination tool for me, but it's also a good excuse to learn more interactive data vis. If you think there's an error, it would be helpful if you could take a look at the "debug" tables to see if you can locate the source; but even if you aren't inclined to do that, let me know what inputs you have set and what values or comparisons don't seem to be working correctly.
Last edited: