populate featues by script
This commit is contained in:
parent
aebcd7575e
commit
0fdebc12c9
10
sheet.css
10
sheet.css
@ -34,13 +34,13 @@ div.flex {
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
div.grid {
|
||||
.grid {
|
||||
display: grid;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
div.nowrap {
|
||||
.nowrap {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
@ -52,7 +52,7 @@ hr {
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
div.mobile {
|
||||
.mobile {
|
||||
display: block;
|
||||
}
|
||||
hr {
|
||||
@ -78,13 +78,13 @@ body {
|
||||
width: 80ch;
|
||||
}
|
||||
|
||||
.page > form > * {
|
||||
section {
|
||||
border-bottom: 1px solid var(--text-color);
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.page > form > *:last-child {
|
||||
section:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
|
113
sheet.js
113
sheet.js
@ -193,15 +193,100 @@ let rpModifiers = [
|
||||
}
|
||||
]
|
||||
|
||||
let features = [
|
||||
{
|
||||
name: "Core Species",
|
||||
level: 1
|
||||
},
|
||||
{
|
||||
name: "Species",
|
||||
level: 1
|
||||
},
|
||||
{
|
||||
name: "Cornerstone",
|
||||
level: 1
|
||||
},
|
||||
{
|
||||
name: "Cornerstone",
|
||||
level: 1
|
||||
},
|
||||
{
|
||||
name: "Novice",
|
||||
level: 1
|
||||
},
|
||||
{
|
||||
name: "Novice",
|
||||
level: 2
|
||||
},
|
||||
{
|
||||
name: "Novice",
|
||||
level: 3
|
||||
},
|
||||
{
|
||||
name: "Novice",
|
||||
level: 4
|
||||
},
|
||||
{
|
||||
name: "Apprentice",
|
||||
level: 5
|
||||
},
|
||||
{
|
||||
name: "Apprentice",
|
||||
level: 6
|
||||
},
|
||||
{
|
||||
name: "Apprentice",
|
||||
level: 7
|
||||
},
|
||||
{
|
||||
name: "Journeyman",
|
||||
level: 9
|
||||
},
|
||||
{
|
||||
name: "Journeyman",
|
||||
level: 10
|
||||
},
|
||||
{
|
||||
name: "Journeyman",
|
||||
level: 11
|
||||
},
|
||||
{
|
||||
name: "Expert",
|
||||
level: 13
|
||||
},
|
||||
{
|
||||
name: "Expert",
|
||||
level: 14
|
||||
},
|
||||
{
|
||||
name: "Expert",
|
||||
level: 15
|
||||
},
|
||||
{
|
||||
name: "Master",
|
||||
level: 17
|
||||
},
|
||||
{
|
||||
name: "Master",
|
||||
level: 18
|
||||
},
|
||||
{
|
||||
name: "Capstone",
|
||||
level: 20
|
||||
}
|
||||
|
||||
]
|
||||
|
||||
function init () {
|
||||
populateModifiers("#combat-modifiers", combatModifiers);
|
||||
window.setInterval(() => { setAllValues(combatModifiers) }, 250);
|
||||
populateModifiers("#rp-modifiers", rpModifiers);
|
||||
setAllValues(rpModifiers);
|
||||
window.setInterval(() => { setAllValues(rpModifiers) }, 250);
|
||||
buildModifiers("#combat-modifiers", combatModifiers);
|
||||
window.setInterval(() => { calculateModifiers(combatModifiers) }, 250);
|
||||
buildModifiers("#rp-modifiers", rpModifiers);
|
||||
calculateModifiers(rpModifiers);
|
||||
window.setInterval(() => { calculateModifiers(rpModifiers) }, 250);
|
||||
buildFeatures("#features", features);
|
||||
}
|
||||
|
||||
function populateModifiers(container, data) {
|
||||
function buildModifiers(container, data) {
|
||||
let area = document.querySelector(container);
|
||||
for (let i in data) {
|
||||
let category = data[i];
|
||||
@ -235,7 +320,21 @@ function populateModifiers(container, data) {
|
||||
}
|
||||
}
|
||||
|
||||
function setAllValues (data) {
|
||||
function buildFeatures (container) {
|
||||
let area = document.querySelector(container);
|
||||
for (let i in features) {
|
||||
let feature = features[i];
|
||||
area.innerHTML += `
|
||||
<p>${feature.name}</p>
|
||||
<p>${feature.level}</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea id="features-${i}" placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
function calculateModifiers (data) {
|
||||
for (let i in data) {
|
||||
let category = data[i];
|
||||
for (let j in data[i].items) {
|
||||
|
133
songs.html
133
songs.html
@ -10,18 +10,19 @@
|
||||
</head>
|
||||
<body style="padding: 16px;">
|
||||
<main>
|
||||
<form id="character-data" style="display: contents;">
|
||||
<div class="page w3-container w3-card-4 w3-padding-16">
|
||||
<h1 class="w3-center">Songs of the Second Age: Character Sheet</h1>
|
||||
<form class="w3-container">
|
||||
<div class="mobile grid" style="grid-template-columns: auto auto auto;">
|
||||
<div class="page-data w3-container">
|
||||
<section class="mobile grid" style="grid-template-columns: auto auto auto;">
|
||||
<label>Player<input id="player" name="player" type="text"></label>
|
||||
<label>Name<input id="name" name="name" type="text"></label>
|
||||
<label>Level<input id="level" name="level" type="number"></label>
|
||||
<label>Species<input id="species" name="species" type="text"></label>
|
||||
<label>Background<input id="background" name="background" type="text"></label>
|
||||
<label>Class<input id="class" name="class" type="text"></label>
|
||||
</div>
|
||||
<div class="mobile grid" style="grid-template-columns: auto auto;">
|
||||
</section>
|
||||
<section class="mobile grid" style="grid-template-columns: auto auto;">
|
||||
<label>Health<input id="health" name="health" type="number"></label>
|
||||
<label>Stamina<input id="stamina" name="stamina" type="number"></label>
|
||||
<div class="grid" style="grid-column: 1 / span 2; grid-template-columns: auto auto auto auto auto;">
|
||||
@ -31,16 +32,16 @@
|
||||
<label>D<input id="deathroll-d" name="deathroll-d" type="checkbox"></label>
|
||||
<label>I<input id="deathroll-i" name="deathroll-i" type="checkbox"></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mobile grid" style="grid-template-columns: repeat(6, calc((100% / 6) - 10px));">
|
||||
</section>
|
||||
<section class="mobile grid" style="grid-template-columns: repeat(6, calc((100% / 6) - 10px));">
|
||||
<label style="flex-direction: column;"><p><u>Str</u>ength</p><input id="str" name="str" type="number"></label>
|
||||
<label style="flex-direction: column;"><p><u>End</u>urance</p><input id="end" name="end" type="number"></label>
|
||||
<label style="flex-direction: column;"><p><u>Agi</u>lity</p><input id="agi" name="agi" type="number"></label>
|
||||
<label style="flex-direction: column;"><p><u>Wit</u>s</p><input id="wit" name="wit" type="number"></label>
|
||||
<label style="flex-direction: column;"><p><u>Int</u>elligence</p><input id="int" name="int" type="number"></label>
|
||||
<label style="flex-direction: column;"><p><u>Cha</u>risma</p><input id="cha" name="cha" type="number"></label>
|
||||
</div>
|
||||
<div class="mobile grid" style="grid-template-columns: repeat(6, calc((100% / 6) - 10px));">
|
||||
</section>
|
||||
<section class="mobile grid" style="grid-template-columns: repeat(6, calc((100% / 6) - 10px));">
|
||||
<label style="flex-direction: column;">Armor<input id="armor" name="armor" type="number"></label>
|
||||
<label style="flex-direction: column;">Soak<input id="soak" name="soak" type="number"></label>
|
||||
<label style="flex-direction: column;">Speed<input id="speed" name="speed" type="number"></label>
|
||||
@ -54,122 +55,22 @@
|
||||
<input id="max-bulk" name="max-bulk" type="number">
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="grid mobile" style="grid-template-columns: 1fr auto 1fr; align-items: start;">
|
||||
</section>
|
||||
<section class="grid mobile" style="grid-template-columns: 1fr auto 1fr; align-items: start;">
|
||||
<div class="grid" style="grid-template-columns: auto auto auto auto;" id="combat-modifiers"></div>
|
||||
<hr>
|
||||
<div class="grid" style="grid-template-columns: auto auto auto auto;" id="rp-modifiers"></div>
|
||||
</section>
|
||||
<section class="grow-wrap">
|
||||
<textarea id="notes" name="notes" placeholder="Notes" onInput="this.parentNode.dataset.replicatedValue = this.value"></textarea>
|
||||
</section>
|
||||
</div>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Notes" onInput="this.parentNode.dataset.replicatedValue = this.value"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="page w3-container w3-card-4 w3-padding-16">
|
||||
<h2 class="w3-center">Character Features</h2>
|
||||
<div class="grid" style="grid-template-columns: auto auto 1fr; column-gap: 20px; padding: 0px 16px;">
|
||||
<p>Core Species</p>
|
||||
<p>1</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Species</p>
|
||||
<p>1</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Cornerstone</p>
|
||||
<p>1</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Cornerstone</p>
|
||||
<p>1</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Novice</p>
|
||||
<p>1</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Novice</p>
|
||||
<p>2</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Novice</p>
|
||||
<p>3</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Novice</p>
|
||||
<p>4</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Apprentice</p>
|
||||
<p>5</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Apprentice</p>
|
||||
<p>6</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Apprentice</p>
|
||||
<p>7</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Journeyman</p>
|
||||
<p>9</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Journeyman</p>
|
||||
<p>10</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Journeyman</p>
|
||||
<p>11</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Expert</p>
|
||||
<p>13</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Expert</p>
|
||||
<p>14</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Expert</p>
|
||||
<p>15</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Master</p>
|
||||
<p>17</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Master</p>
|
||||
<p>18</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
<p>Capstone</p>
|
||||
<p>20</p>
|
||||
<div class="grow-wrap">
|
||||
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<section class="grid" id="features" style="grid-template-columns: auto auto 1fr; column-gap: 20px; padding: 0px 16px;"></section>
|
||||
</div>
|
||||
</form>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user