---
title: "Visual Tools"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Visual Tools}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")
```
```{r libs, echo = FALSE, message = FALSE}
# devtools::install_github("njlyon0/dndR", force = TRUE)
library(dndR)
```
## Dice Rolling Probabilities
If you'd like to visualize the probable outcomes of rolling some number of dice of a specified type, `probability_plot` is here for you! You can specify the number and type of dice and the number of times to roll that group. The median outcome is indicated by a dashed vertical line.
```{r probability_plot, warning = F, error = F, fig.height = 3, fig.width = 6, fig.align = "center"}
# Make a probability plot for two, six-sided dice
dndR::probability_plot(dice = "2d6", roll_num = 499)
```
Just for fun, the graph colors are decided by the type of dice you specify and correspond to the hex logo of this R package!
## Assessing Party Abilities
It can be useful as a DM to know where your players' strengths and weaknesses lie across the whole party. `party_diagram` allows DMs to visualize the ability scores of every player in a party either grouped by player or by ability score. The function supports both interactive (abilities entered via the R Console) and non-interactive (abilities given as a list) entries.
Thank you to [Tim Schatto-Eckrodt](https://kudusch.de/) for contributing this function!
Due to the static nature of a vignette, we'll use the non-interactive path by assembling the party score list and then invoking this function.
```{r party_diagram-v1, fig.height = 6, fig.width = 6, fig.align = "center"}
# Create named list of PCs and their scores
party_list <- list(Vax = list(STR = "10", DEX = "13", CON = "14",
INT = "15", WIS = "16", CHA = "12"),
Beldra = list(STR = "20", DEX = "15", CON = "10",
INT = "10", WIS = "11", CHA = "12"),
Rook = list(STR = "10", DEX = "10", CON = "18",
INT = "9", WIS = "11", CHA = "16"))
# Create a party diagram using that list (by player)
dndR::party_diagram(by = "player", pc_stats = party_list, quiet = TRUE)
```
You can also group the diagram by ability score if that is of interest instead.
```{r party_diagram-v2, fig.height = 6, fig.width = 6, fig.align = "center"}
# Party diagram grouped by ability score
dndR::party_diagram(by = "ability", pc_stats = party_list, quiet = TRUE)
```