populate featues by script

This commit is contained in:
Arthur Lu 2023-04-13 19:43:10 -07:00
parent aebcd7575e
commit 0fdebc12c9
3 changed files with 129 additions and 129 deletions

View File

@ -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
View File

@ -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) {

View File

@ -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>
</div>
<div class="grow-wrap">
<textarea placeholder="Notes" onInput="this.parentNode.dataset.replicatedValue = this.value"></textarea>
</div>
</form>
</section>
<section class="grow-wrap">
<textarea id="notes" name="notes" placeholder="Notes" onInput="this.parentNode.dataset.replicatedValue = this.value"></textarea>
</section>
</div>
</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>