From 9950216d30c03e786cd3c64958075e1deb06dbf0 Mon Sep 17 00:00:00 2001 From: Eric Woodward Date: Sun, 10 Dec 2023 21:25:57 -0500 Subject: [PATCH] Adds referee screen and deities. Updates bestiary with links to nonhuman racial modifiers. --- package.json | 2 +- src/assets/scripts/tools.js | 26 ++- src/assets/styles/styles.css | 86 +++++++--- src/layouts/partials/navmain.ejs | 4 +- src/layouts/partials/rulesHeader.ejs | 2 +- src/pages/bestiary/cleric.md | 1 + src/pages/bestiary/commoner.md | 2 + src/pages/bestiary/corsair.md | 7 +- .../{shape-stealer.md => face-thief.md} | 2 +- src/pages/bestiary/fighter.md | 1 + src/pages/bestiary/index.md | 16 +- src/pages/bestiary/mummy.md | 42 +++++ .../{racial-mods.md => nonhuman-modifiers.md} | 39 +++-- src/pages/bestiary/paladin.md | 1 + src/pages/bestiary/pirate.md | 1 + src/pages/bestiary/priest.md | 1 + src/pages/bestiary/thief.md | 1 + src/pages/bestiary/vampire.md | 2 +- src/pages/bestiary/wizard.md | 1 + src/pages/campaign/sapphire-cove.md | 2 +- .../known-arcane-spells.md | 2 +- src/pages/classes/cleric/spell-list.md | 12 +- src/pages/classes/paladin/spell-list.md | 14 +- src/pages/classes/priest/spell-list.md | 12 +- src/pages/deities/index.md | 130 ++++++++++++++ src/pages/miscellanea.md | 5 +- src/pages/races/drow.md | 2 +- src/pages/rules/adventuring.md | 23 ++- src/pages/rules/basics.md | 9 +- src/pages/rules/combat.md | 9 +- src/pages/spells/continual-light.md | 39 +++++ src/pages/spells/index.md | 1 + src/pages/tools/index.md | 8 +- src/pages/tools/referee-screen.md | 161 ++++++++++++++++++ 34 files changed, 557 insertions(+), 109 deletions(-) rename src/pages/bestiary/{shape-stealer.md => face-thief.md} (98%) create mode 100644 src/pages/bestiary/mummy.md rename src/pages/bestiary/{racial-mods.md => nonhuman-modifiers.md} (61%) create mode 100644 src/pages/deities/index.md create mode 100644 src/pages/spells/continual-light.md create mode 100644 src/pages/tools/referee-screen.md diff --git a/package.json b/package.json index db56c48..326a1fb 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "planar-vagabond", - "version": "0.11.15", + "version": "0.11.16", "description": "", "main": "index.js", "scripts": { diff --git a/src/assets/scripts/tools.js b/src/assets/scripts/tools.js index 42b23ed..8f9a6da 100644 --- a/src/assets/scripts/tools.js +++ b/src/assets/scripts/tools.js @@ -19,15 +19,28 @@ const // Scripts for the Die Roller if (rollerInput.value === '') rollerOutput.replaceChildren(); }); - // do the roll and show th (cleaned-up) result + // do the roll(s) and show the (cleaned-up) result(s) rollerForm.addEventListener('submit', (e) => { e.preventDefault(); if (!window.dice) return; - const newEl = document.createElement('li'); - const result = dice.roll(rollerInput.value); - newEl.innerText = `${dice.stringify(result) - .replaceAll('!!!mods listing not yet complete!!!', '')} = ${+result}`; + const newEl = document.createElement('li'), + // support multiple sets of dice + rolls = rollerInput.value.split(/,\s+/); + + newEl.innerText = rolls + .map((roll) => { + const result = dice.roll(roll), + stringifiedResult = dice.stringify(result); + return `${stringifiedResult.replaceAll( + '!!!mods listing not yet complete!!!', + '' + )}${ + // only show total if there's multiple dice thrown in a set + stringifiedResult.includes(',') ? ` = ${+result}` : '' + }`; + }) + .join(', '); rollerOutput.prepend(newEl); }); @@ -36,7 +49,6 @@ const // Scripts for the Die Roller if (event.key === 'Escape') rollerForm.reset(); }); }, - // Scripts for the Complication Randomizers shuffleContainer = (parent) => { const container = document.getElementById(parent), @@ -48,7 +60,6 @@ const // Scripts for the Die Roller shuffled.sort(() => 0.5 - Math.random()); for (let i = 0; i < length; i++) container.appendChild(shuffled[i]); }, - addComplicationForm = () => { const complicationForm = document.getElementById('js-complicationForm'); complicationForm.addEventListener('submit', (e) => { @@ -56,7 +67,6 @@ const // Scripts for the Die Roller shuffleContainer('js-complicationList'); }); }, - addAstralComplicationForm = () => { const complicationForm = document.getElementById( 'js-astralComplicationForm' diff --git a/src/assets/styles/styles.css b/src/assets/styles/styles.css index ac339d9..294dca4 100644 --- a/src/assets/styles/styles.css +++ b/src/assets/styles/styles.css @@ -336,6 +336,10 @@ table th { background: rgba(37, 40, 55, 0.6); } +.contentWarning { + font-style: italic; +} + .headlessTableWrapper thead { display: none; } @@ -607,37 +611,11 @@ a.licenseLink:hover { border: 1px solid #e94e5c; } -/* -.navMenu > ul > li.hasSubMenu > a { - border: 1px solid #e94e5c; -} - -/* -.navMenu li.hasSubMenu:hover, -.navMenu li.hasSubMenu:focus-within { - background-color: rgba(233, 78, 92, 0.5); -} -*/ - .navMenu li:hover, .navMenu li:focus-within { background-color: rgba(233, 78, 92, 0.5); } -/* -.navMenu ul li ul li.hasSubMenu:hover, -.navMenu ul li ul li.hasSubMenu:focus-within { - background-color: transparent; -} -*/ - -/* -.navMenu li.hasSubMenu:hover a, -.navMenu li.hasSubMenu:hover a:visited { - color: #44fcfc; -} -*/ - .navMenu li a:hover, .navMenu li a:visited:hover { color: #e94e5c; @@ -828,10 +806,66 @@ a.pageTitle-sublink { margin-top: 0.5rem; } +.refereeScreen { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + width: 100%; +} + +.refereeScreen .toolDetails { + font-size: medium; +} + +.refereeScreen .toolDetails > ol, +.refereeScreen .toolDetails > ul { + margin-left: .25rem; + padding-left: 0; +} + +.refereeScreen .toolDetails > ol > li > p { + margin-bottom: 0; + margin-top: 0; +} + +.refereeScreen .toolDetails > ul > li > ul { + padding-left: 1rem; +} +.refereeScreen .toolDetails ol p, +.refereeScreen .toolDetails ul p { + margin-left: 0; +} + +.refereeScreen .toolDetails > p { + margin: -.5rem 0 -.5rem -1rem; +} + +.refereeScreen .toolDetails > summary > h3 { + font-size: large; + margin: 0; +} + +.refereeScreen .toolDetails > summary + * { + margin-top: -.25rem; +} + .refereeTools { display: flex; flex-wrap: wrap; justify-content: space-between; + width: 100%; +} + +.refereeTools .toolDetails > summary > h3 { + font-size: large; + margin: 0; +} + +.refereeScreen .toolDetails summary, +.refereeTools .toolDetails summary { + backdrop-filter: blur(1rem); + position: sticky; + top: 0; } .rollerForm input[type=reset] { diff --git a/src/layouts/partials/navmain.ejs b/src/layouts/partials/navmain.ejs index 02e92be..ddaaa1b 100644 --- a/src/layouts/partials/navmain.ejs +++ b/src/layouts/partials/navmain.ejs @@ -34,9 +34,9 @@