Update bard and styles

Changed files
+521 -56
sections
+5 -8
SRD-UE.typ
··· 7 7 Unchained System Reference Document v#[SRD_VERSION] 8 8 ]) 9 9 10 - #set text(size: 9pt, font: "Reforma 1969", number-type: "lining") 10 + #set text(size: 10pt, font: "Source Serif Pro", number-type: "lining") 11 11 #show title: set text(font: "Ysabeau Office") 12 12 #show heading: set text(font: "Ysabeau Office", number-type: "lining") 13 13 #show figure: set text(font: "Ysabeau Office", number-type: "lining") ··· 53 53 #show outline.entry: it => { 54 54 block( 55 55 inset: (left: 1em * calc.max(0, it.level - 2)), 56 - link(it.element.location(), block(it.prefix() + [ ] + it.inner())), 56 + link(it.element.location(), it.prefix() + [ ] + it.inner()), 57 57 ) 58 58 } 59 59 #show outline.entry.where(level: 1): set block(above: 1em) 60 60 #show outline.entry.where(level: 1): it => { 61 - link(it.element.location(), block(strong(it.prefix() + [ ] + it.inner()))) 61 + block(link(it.element.location(), strong(it.prefix() + [ ] + it.inner()))) 62 62 } 63 63 #show outline.entry.where(level: 2): it => { 64 - link(it.element.location(), block(it.prefix() + [ ] + it.inner())) 64 + block(link(it.element.location(), it.prefix() + [ ] + it.inner())) 65 65 } 66 66 67 67 #{ 68 - show: block.with( 69 - inset: (y: 64pt), 70 - ) 71 - 72 68 title[ 73 69 #text(size: 0.5em)[ 74 70 Unchained 5e ··· 79 75 } 80 76 81 77 #columns(3)[ 78 + #set par(first-line-indent: 0pt, hanging-indent: 0pt) 82 79 #outline(depth: 3) 83 80 ] 84 81 ]
+28 -21
sections/classes/barbarian.typ
··· 2 2 3 3 #place(bottom, float: true, scope: "parent")[ 4 4 #figure(caption: [Barbarian Features])[ 5 + #let features = table.cell.with(align: start) 5 6 #table( 7 + align: center, 6 8 columns: (auto, auto, auto, auto, auto, auto), 7 - [*Level*], [*Proficiency Bonus*], [*Class Features*], [*Rages*], [*Rage Damage*], [*Weapon Mastery*], 9 + [*Level*], 10 + [*Proficiency Bonus*], 11 + features[*Class Features*], 12 + [*Rages*], 13 + [*Rage Damage*], 14 + [*Weapon Mastery*], 8 15 9 - [1], [+2], [Rage, Unarmored Defense, Weapon Mastery], [2], [+2], [2], 16 + [1], [+2], features[Rage, Unarmored Defense, Weapon Mastery], [2], [+2], [2], 10 17 11 - [2], [+2], [Danger Sense], [2], [+2], [2], 18 + [2], [+2], features[Danger Sense], [2], [+2], [2], 12 19 13 - [3], [+2], [Barbarian Subclass, Primal Knowledge], [3], [+2], [2], 20 + [3], [+2], features[Barbarian Subclass, Primal Knowledge], [3], [+2], [2], 14 21 15 - [4], [+2], [Ability Score Improvement], [3], [+2], [3], 22 + [4], [+2], features[Ability Score Improvement], [3], [+2], [3], 16 23 17 - [5], [+3], [Extra Attack, Fast Movement], [3], [+2], [3], 24 + [5], [+3], features[Extra Attack, Fast Movement], [3], [+2], [3], 18 25 19 - [6], [+3], [Subclass feature], [4], [+2], [3], 26 + [6], [+3], features[Subclass feature], [4], [+2], [3], 20 27 21 - [7], [+3], [Feral Instinct, Instinctive Pounce], [4], [+2], [3], 28 + [7], [+3], features[Feral Instinct, Instinctive Pounce], [4], [+2], [3], 22 29 23 - [8], [+3], [Ability Score Improvement], [4], [+2], [3], 30 + [8], [+3], features[Ability Score Improvement], [4], [+2], [3], 24 31 25 - [9], [+4], [Brutal Strike], [4], [+3], [3], 32 + [9], [+4], features[Brutal Strike], [4], [+3], [3], 26 33 27 - [10], [+4], [Subclass feature], [4], [+3], [3], 34 + [10], [+4], features[Subclass feature], [4], [+3], [3], 28 35 29 - [11], [+4], [Relentless Rage], [4], [+3], [4], 36 + [11], [+4], features[Relentless Rage], [4], [+3], [4], 30 37 31 - [12], [+4], [Ability Score Improvement], [5], [+3], [4], 38 + [12], [+4], features[Ability Score Improvement], [5], [+3], [4], 32 39 33 - [13], [+5], [Improved Brutal Strike], [5], [+3], [4], 40 + [13], [+5], features[Improved Brutal Strike], [5], [+3], [4], 34 41 35 - [14], [+5], [Subclass feature], [5], [+3], [4], 42 + [14], [+5], features[Subclass feature], [5], [+3], [4], 36 43 37 - [15], [+5], [Persistant Rage], [5], [+3], [4], 44 + [15], [+5], features[Persistant Rage], [5], [+3], [4], 38 45 39 - [16], [+5], [Ability Score Improvement], [5], [+4], [4], 46 + [16], [+5], features[Ability Score Improvement], [5], [+4], [4], 40 47 41 - [17], [+6], [Improved Brutal Strike], [6], [+4], [4], 48 + [17], [+6], features[Improved Brutal Strike], [6], [+4], [4], 42 49 43 - [18], [+6], [Indomitable Might], [6], [+4], [4], 50 + [18], [+6], features[Indomitable Might], [6], [+4], [4], 44 51 45 - [19], [+6], [Epic Boon], [6], [+4], [4], 52 + [19], [+6], features[Epic Boon], [6], [+4], [4], 46 53 47 - [20], [+6], [Primal Champion], [6], [+4], [4], 54 + [20], [+6], features[Primal Champion], [6], [+4], [4], 48 55 ) 49 56 ] 50 57 ]
+337 -21
sections/classes/bard.typ
··· 2 2 3 3 #place(bottom, float: true, scope: "parent")[ 4 4 #figure(caption: [Bard Features])[ 5 + #show table: set par(justify: false) 6 + #let thead = table.cell.with(align: center + bottom, fill: none) 5 7 #table( 6 8 align: center, 7 - columns: (auto, auto, auto, auto, auto, auto, auto, auto, auto, auto, auto, auto, auto, auto, auto), 8 - table.cell(rowspan: 2)[*Level*], 9 - table.cell(rowspan: 2)[*Proficiency Bonus*], 10 - table.cell(align: start, rowspan: 2)[*Class Features*], 11 - table.cell(rowspan: 2)[*Bardic Die*], 12 - table.cell(rowspan: 2)[*Cantrips*], 13 - table.cell(rowspan: 2)[*Prepared Spells*], 14 - table.cell(colspan: 9)[Spell Slots per Spell Level], 9 + columns: (1fr, 3fr, 6fr, 1fr, 2fr, 3fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), 10 + thead(rowspan: 2)[*Level*], 11 + thead(rowspan: 2)[*Proficiency Bonus*], 12 + thead(align: start + bottom, rowspan: 2)[*Class Features*], 13 + thead(rowspan: 2)[*Bardic Die*], 14 + thead(rowspan: 2)[*Cantrips*], 15 + thead(rowspan: 2)[*Prepared Spells*], 16 + thead(colspan: 9)[*------Spell Slots per Spell Level------*], 17 + thead[*1*], 18 + thead[*2*], 19 + thead[*3*], 20 + thead[*4*], 21 + thead[*5*], 22 + thead[*6*], 23 + thead[*7*], 24 + thead[*8*], 25 + thead[*9*], 26 + 27 + // Level 1 15 28 [1], 29 + [+2], 30 + table.cell(align: start)[Bardic Inspiration, Spellcasting], 31 + [D6], 32 + [2], 33 + [4], 34 + [2], 35 + [---], 36 + [---], 37 + [---], 38 + [---], 39 + [---], 40 + [---], 41 + [---], 42 + [---], 43 + 44 + // Level 2 16 45 [2], 46 + [+2], 47 + table.cell(align: start)[Expertise, Jack of All Trades], 48 + [D6], 49 + [2], 50 + [5], 17 51 [3], 52 + [---], 53 + [---], 54 + [---], 55 + [---], 56 + [---], 57 + [---], 58 + [---], 59 + [---], 60 + 61 + // Level 3 62 + [3], 63 + [+2], 64 + table.cell(align: start)[Bard Subclass], 65 + [D6], 66 + [2], 67 + [6], 18 68 [4], 69 + [2], 70 + [---], 71 + [---], 72 + [---], 73 + [---], 74 + [---], 75 + [---], 76 + [---], 77 + 78 + // Level 4 79 + [4], 80 + [+2], 81 + table.cell(align: start)[Ability Score Improvement], 82 + [D6], 83 + [3], 84 + [7], 85 + [4], 86 + [3], 87 + [---], 88 + [---], 89 + [---], 90 + [---], 91 + [---], 92 + [---], 93 + [---], 94 + 95 + // Level 5 19 96 [5], 97 + [+3], 98 + table.cell(align: start)[Font of Inspiration], 99 + [D8], 100 + [X], 101 + [9], 102 + [4], 103 + [3], 104 + [2], 105 + [---], 106 + [---], 107 + [---], 108 + [---], 109 + [---], 110 + [---], 111 + 112 + // Level 6 20 113 [6], 114 + [+3], 115 + table.cell(align: start)[Subclass feature], 116 + [D8], 117 + [X], 118 + [10], 119 + [4], 120 + [3], 121 + [3], 122 + [---], 123 + [---], 124 + [---], 125 + [---], 126 + [---], 127 + [---], 128 + 129 + // Level 7 21 130 [7], 131 + [+3], 132 + table.cell(align: start)[Countercharm], 133 + [D8], 134 + [X], 135 + [11], 136 + [4], 137 + [3], 138 + [3], 139 + [1], 140 + [---], 141 + [---], 142 + [---], 143 + [---], 144 + [---], 145 + 146 + // Level 8 22 147 [8], 148 + [+3], 149 + table.cell(align: start)[Ability Score Improvement], 150 + [D8], 151 + [X], 152 + [12], 153 + [4], 154 + [3], 155 + [3], 156 + [2], 157 + [---], 158 + [---], 159 + [---], 160 + [---], 161 + [---], 162 + 163 + // Level 9 23 164 [9], 165 + [+4], 166 + table.cell(align: start)[Expertise], 167 + [D8], 168 + [3], 169 + [14], 170 + [4], 171 + [3], 172 + [3], 173 + [3], 174 + [1], 175 + [---], 176 + [---], 177 + [---], 178 + [---], 24 179 180 + // Level 10 181 + [10], 182 + [+4], 183 + table.cell(align: start)[Magical Secrets], 184 + [D10], 185 + [4], 186 + [15], 187 + [4], 188 + [3], 189 + [3], 190 + [3], 25 191 [1], 26 - [+2], 27 - table.cell(align: start)[Bardic Inspiration, Spellcasting], 28 - [D6], 192 + [---], 193 + [---], 194 + [---], 195 + [---], 196 + 197 + // Level 11 198 + [11], 199 + [+4], 200 + table.cell(align: start)[---], 201 + [D10], 202 + [X], 203 + [16], 204 + [4], 205 + [3], 206 + [3], 207 + [3], 29 208 [2], 209 + [1], 210 + [---], 211 + [---], 212 + [---], 213 + 214 + // Level 12 215 + [12], 216 + [+4], 217 + table.cell(align: start)[Ability Score Improvement], 218 + [D10], 219 + [X], 220 + [16], 30 221 [4], 222 + [3], 223 + [3], 224 + [3], 31 225 [2], 226 + [1], 32 227 [---], 33 228 [---], 34 229 [---], 230 + 231 + // Level 13 232 + [13], 233 + [+5], 234 + table.cell(align: start)[---], 235 + [D10], 236 + [4], 237 + [17], 238 + [4], 239 + [3], 240 + [3], 241 + [3], 242 + [2], 243 + [1], 244 + [1], 35 245 [---], 36 246 [---], 247 + 248 + // Level 14 249 + [14], 250 + [+5], 251 + table.cell(align: start)[Subclass feature], 252 + [D10], 253 + [4], 254 + [17], 255 + [4], 256 + [3], 257 + [3], 258 + [3], 259 + [2], 260 + [1], 261 + [1], 37 262 [---], 38 263 [---], 264 + 265 + // Level 15 266 + [15], 267 + [+5], 268 + table.cell(align: start)[---], 269 + [D12], 270 + [4], 271 + [18], 272 + [4], 273 + [3], 274 + [3], 275 + [3], 276 + [2], 277 + [1], 278 + [1], 279 + [1], 39 280 [---], 281 + 282 + // Level 16 283 + [16], 284 + [+5], 285 + table.cell(align: start)[Ability Score Improvement], 286 + [D12], 287 + [4], 288 + [18], 289 + [4], 290 + [3], 291 + [3], 292 + [3], 293 + [2], 294 + [1], 295 + [1], 296 + [1], 297 + [---], 298 + 299 + // Level 17 300 + [17], 301 + [+6], 302 + table.cell(align: start)[---], 303 + [D12], 304 + [4], 305 + [19], 306 + [4], 307 + [3], 308 + [3], 309 + [3], 310 + [2], 311 + [1], 312 + [1], 313 + [1], 314 + [1], 315 + 316 + // Level 18 317 + [18], 318 + [+6], 319 + table.cell(align: start)[Superior Inspiration], 320 + [D12], 321 + [4], 322 + [20], 323 + [4], 324 + [3], 325 + [3], 326 + [3], 327 + [3], 328 + [1], 329 + [1], 330 + [1], 331 + [1], 332 + 333 + // Level 19 334 + [19], 335 + [+6], 336 + table.cell(align: start)[Epic Boon], 337 + [D12], 338 + [4], 339 + [21], 340 + [4], 341 + [3], 342 + [3], 343 + [3], 344 + [3], 345 + [2], 346 + [1], 347 + [1], 348 + [1], 349 + 350 + // Level 20 351 + [20], 352 + [+6], 353 + table.cell(align: start)[Words of Creation], 354 + [D12], 355 + [4], 356 + [22], 357 + [4], 358 + [3], 359 + [3], 360 + [3], 361 + [3], 362 + [2], 363 + [2], 364 + [1], 365 + [1], 40 366 ) 41 367 ] 42 368 ] ··· 279 605 Reaction to make one melee attack against that creature, using a weapon or an Unarmed Strike. 280 606 281 607 === Level 14: Intimidating Presence 282 - 283 - As a Bonus Action, you can strike terror into others with your menacing presence and primal power. 284 - When you do so, each creature of your choice in a 30-foot Emanation originating 285 - from you must make a Wisdom saving throw (DC 8 plus your Strength modifier and Proficiency Bonus). 286 - On a failed save, a creature has the Frightened condition for 1 minute. 287 - At the end of each of the Frightened creature's turns, the creature repeats the 288 - save, ending the effect on itself on a success. 289 - 290 - Once you use this feature, you can't use it again until you finish a Long Rest unless 291 - you expend a use of your Rage (no action required) to restore your use of it.
+136 -3
sections/playing-the-game.typ
··· 1 1 #import "/shared.typ": * 2 2 #show: templates.section 3 3 4 + #show heading.where(level: 3): set heading(outlined: true) 5 + 6 + #place(bottom, float: true)[ 7 + #figure(caption: [Exceptions Supersede General Rules], supplement: [Sidebar])[ 8 + General rules govern each part of the game. 9 + ] 10 + ] 11 + 4 12 = Rhythm of Play 5 13 6 14 The three main pillars of D&D play are social interaction, exploration, and combat. 7 15 Whichever one you're experiencing, the game unfolds according to this basic pattern: 8 16 9 - + *The Game Master Describes a Scene.* 10 - + *The Players Describe What Their Characters Do.* 11 - + *The GM Narrates the Results of the Adventurers' Actions.* 17 + #block(above: u(2), below: u(2))[ 18 + + 19 + *The Game Master Describes a Scene.* 20 + The GM tells the players where their adventurers are and what's around them (how many doors lead out of a room, what's on a table, and so on). 21 + + 22 + *The Players Describe What Their Characters Do.* 23 + Typically, the characters stick together as they travel through a dungeon or another environment. 24 + Sometimes different adventurers do differents: 25 + one adventurerer might search a treasure chest while a second examines a mysterious symbol engraved on a wall and a third keeps watch for monsters. 26 + Outside combat, the GM ensures that every character has a chance to act and decides how to resolve their activity. 27 + In combat, the characters take turns. 28 + + 29 + *The GM Narrates the Results of the Adventurers' Actions.* 30 + Sometimes resolving a task is easy. 31 + If an adventurerer walks across a room and tries to open a door, the GM might say the door opens and describe what lies beyond. 32 + But the door might be locked, the flight might hide a trap, or some other circumstance might make it challenging for an adventurer to complete a task. 33 + In those cases, the GM might ask the player to roll a die to help determine what happens. 34 + Describing the results often leads to another decision point, which brings the game back to step 1. 35 + ] 36 + 37 + This pattern holds during every game session (each time you sit down to play D&D), whether the adventurers are talking to a noble, exploring a ruin, or fighting a dragon. 38 + In certain situations---particularly combat---the action is more structured and everyone takes turns. 39 + 40 + = The Six Abilities 41 + 42 + #place(bottom, float: true)[ 43 + #figure(caption: [Round Down], supplement: [Sidebar])[ 44 + Whenever you divide or multiply a number in the game, round down if you end up with a fraction, even if the fraction is one-half or greater. Some rules make it an exception and tell you to round up. 45 + ] 46 + ] 47 + 48 + #lorem(50) 49 + 50 + == Ability Modifiers 51 + 52 + #lorem(50) 53 + 54 + = D20 Tests 55 + 56 + #lorem(50) 57 + 58 + == Ability checks 59 + 60 + #lorem(50) 61 + 62 + === Ability Modifier 63 + 64 + #lorem(50) 65 + 66 + #lorem(50) 67 + 68 + == Saving Throws 69 + 70 + #lorem(50) 71 + 72 + == Attack Rolls 73 + 74 + #lorem(50) 75 + 76 + == Advantage/Disadvantage 77 + 78 + #lorem(50) 79 + 80 + = Proficiency 81 + 82 + #lorem(50) 83 + 84 + = Actions 85 + 86 + #lorem(50) 87 + 88 + = Social Interaction 89 + 90 + #lorem(50) 91 + 92 + = Exploration 93 + 94 + #lorem(50) 95 + 96 + = Combat 97 + 98 + #lorem(50) 99 + 100 + = Damage and Healing 101 + 102 + #lorem(50) 103 + 104 + == Hit Points 105 + 106 + #lorem(50) 107 + 108 + == Damage Rolls 109 + 110 + #lorem(50) 111 + 112 + == Critical Hits 113 + 114 + #lorem(50) 115 + 116 + #lorem(50) 117 + 118 + == Saving Throws and Damage 119 + 120 + #lorem(50) 121 + 122 + == Damage Types 123 + 124 + #lorem(50) 125 + 126 + == Resistance and Vulnerability 127 + 128 + #lorem(50) 129 + 130 + == Immunity 131 + 132 + #lorem(50) 133 + 134 + == Healing 135 + 136 + #lorem(50) 137 + 138 + == Dropping to 0 Hit Points 139 + 140 + #lorem(50) 141 + 142 + == Temporary Hit Points 143 + 144 + #lorem(50)
+15 -3
shared.typ
··· 51 51 ] 52 52 } 53 53 54 + #let sidebar = block 55 + 54 56 #let section-template(content) = { 55 57 set heading(offset: 1) 56 58 show heading.where(level: 3): set heading(outlined: false) ··· 69 71 set figure.caption(position: top) 70 72 show figure.caption: strong 71 73 show figure.caption: set text(size: 1.1em) 74 + show figure.where(supplement: [Sidebar]): block.with(width: 100%, inset: u(), fill: gray.lighten(80%)) 75 + show figure.where(supplement: [Sidebar]): it => { 76 + show figure.caption: set block(width: 100%) 77 + it 78 + } 72 79 73 80 // Tables 74 - set table(stroke: none, fill: (x, y) => { 75 - if (calc.even(y)) { gray.lighten(80%) } 76 - }) 81 + show figure.where(supplement: [Table]): it => { 82 + show table: set par(justify: false) 83 + set table(stroke: none, fill: (x, y) => { 84 + if (calc.even(y)) { gray.lighten(80%) } 85 + }) 86 + 87 + it 88 + } 77 89 78 90 content 79 91 }