Add Referee's Tools
Update JS, add versioning (for cache-busting updates) Clean up a bunch of unused files Add Rivertail community Add some new races
This commit is contained in:
76
src/assets/scripts/tools.js
Normal file
76
src/assets/scripts/tools.js
Normal file
@@ -0,0 +1,76 @@
|
||||
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT
|
||||
/****************************************************************************
|
||||
* Planar Vagabond's Guide to the Multiverse (planarvagabond.com)
|
||||
* Referee Tools
|
||||
*
|
||||
* Copyright 2023 Eric Woodward
|
||||
* Source released under MIT License
|
||||
* https://www.itsericwoodward.com/licenses/mit
|
||||
****************************************************************************/
|
||||
|
||||
const // Scripts for the Die Roller
|
||||
addRollerForm = () => {
|
||||
const rollerForm = document.getElementById('js-rollerForm'),
|
||||
rollerInput = document.getElementById('js-rollerInput'),
|
||||
rollerOutput = document.getElementById('js-rollerOutput');
|
||||
|
||||
// double-click [x] to clear list
|
||||
rollerForm.addEventListener('reset', (e) => {
|
||||
if (rollerInput.value === '') rollerOutput.replaceChildren();
|
||||
});
|
||||
|
||||
// do the roll and show th (cleaned-up) result
|
||||
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}`;
|
||||
rollerOutput.prepend(newEl);
|
||||
});
|
||||
|
||||
// clear on escape key
|
||||
rollerForm.addEventListener('keydown', (event) => {
|
||||
if (event.key === 'Escape') rollerForm.reset();
|
||||
});
|
||||
},
|
||||
|
||||
// Scripts for the Complication Randomizers
|
||||
shuffleContainer = (parent) => {
|
||||
const container = document.getElementById(parent),
|
||||
children = container.children,
|
||||
length = children.length,
|
||||
shuffled = [...children];
|
||||
|
||||
for (let i = 0; i < length * length; i++)
|
||||
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) => {
|
||||
e.preventDefault();
|
||||
shuffleContainer('js-complicationList');
|
||||
});
|
||||
},
|
||||
|
||||
addAstralComplicationForm = () => {
|
||||
const complicationForm = document.getElementById(
|
||||
'js-astralComplicationForm'
|
||||
);
|
||||
complicationForm.addEventListener('submit', (e) => {
|
||||
e.preventDefault();
|
||||
shuffleContainer('js-astralComplicationList');
|
||||
});
|
||||
};
|
||||
|
||||
export default (() => {
|
||||
addRollerForm();
|
||||
addComplicationForm();
|
||||
addAstralComplicationForm();
|
||||
})();
|
||||
|
||||
// @license-end
|
Reference in New Issue
Block a user