Add overflow and stun damage tracks and include it functionality.
This commit is contained in:
parent
05a0feab52
commit
f600faf50e
6 changed files with 258 additions and 45 deletions
|
@ -1,4 +1,6 @@
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] {
|
.repcontainer[data-groupname="repeating_physicaltracker"],
|
||||||
|
.repcontainer[data-groupname="repeating_stuntracker"],
|
||||||
|
.repcontainer[data-groupname="repeating_overflowtracker"] {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, auto);
|
grid-template-columns: repeat(3, auto);
|
||||||
justify-items: center;
|
justify-items: center;
|
||||||
|
@ -61,6 +63,16 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontrol[data-groupname="repeating_physicaltracker"] {
|
.repcontrol[data-groupname="repeating_physicaltracker"],
|
||||||
|
.repcontrol[data-groupname="repeating_stuntracker"],
|
||||||
|
.repcontrol[data-groupname="repeating_overflowtracker"] {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.healthTrackerGrid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, auto);
|
||||||
|
justify-items: center;
|
||||||
|
align-items: start;
|
||||||
|
justify-content: space-around;
|
||||||
}
|
}
|
|
@ -1,10 +1,26 @@
|
||||||
.healthBox
|
.healthBox
|
||||||
|
button(type="action" class="interact-button" name="act_renderPhysBoxes" title="%{renderPhysBoxes}" value="3" ) Re-Render Boxes
|
||||||
button(type="action" name="act_testBox" title="%{testBox}" value="2") Add
|
button(type="action" name="act_testBox" title="%{testBox}" value="2") Add
|
||||||
button(type="action" name="act_clearBoxes" title="%{clearBoxes}" value="1") Remove
|
button(type="action" name="act_clearBoxes" title="%{clearBoxes}" value="1") Remove
|
||||||
fieldset(class="repeating_physicaltracker")
|
.healthTrackerGrid
|
||||||
input(type="hidden" name="attr_boxNum" value="0")
|
fieldset(class="repeating_stuntracker")
|
||||||
input(type="hidden", name="attr_isCrossed" value="false")
|
input(type="hidden" name="attr_boxNum" value="0")
|
||||||
input(type="hidden", name="attr_woundMod" value="0")
|
input(type="hidden", name="attr_isCrossed" value="false")
|
||||||
button(type='action' name="act_check-phys" title="%{checkPhys}" value="3")
|
input(type="hidden", name="attr_woundMod" value="0")
|
||||||
span.woundModDisplay(name="attr_woundMod") 0
|
button(type='action' name="act_check-tracker" value="3")
|
||||||
div
|
span.woundModDisplay(name="attr_woundMod") 0
|
||||||
|
div
|
||||||
|
fieldset(class="repeating_physicaltracker")
|
||||||
|
input(type="hidden" name="attr_boxNum" value="0")
|
||||||
|
input(type="hidden", name="attr_isCrossed" value="false")
|
||||||
|
input(type="hidden", name="attr_woundMod" value="0")
|
||||||
|
button(type='action' name="act_check-tracker" value="3")
|
||||||
|
span.woundModDisplay(name="attr_woundMod") 0
|
||||||
|
div
|
||||||
|
fieldset(class="repeating_overflowtracker")
|
||||||
|
input(type="hidden" name="attr_boxNum" value="0")
|
||||||
|
input(type="hidden", name="attr_isCrossed" value="false")
|
||||||
|
input(type="hidden", name="attr_woundMod" value="0")
|
||||||
|
button(type='action' name="act_check-tracker" value="3")
|
||||||
|
span.woundModDisplay(name="attr_woundMod") 0
|
||||||
|
div
|
12
main.css
12
main.css
|
@ -2,6 +2,11 @@
|
||||||
|
|
||||||
@import-glob "components/*.css";
|
@import-glob "components/*.css";
|
||||||
|
|
||||||
|
:root{
|
||||||
|
--mainBackgroundColor: #550000;
|
||||||
|
--mainTextColor: #aaaaee;
|
||||||
|
}
|
||||||
|
|
||||||
.sheetform {
|
.sheetform {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
background-color: #0b0b0b !important;
|
background-color: #0b0b0b !important;
|
||||||
|
@ -28,7 +33,7 @@
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
/*color: white;*/
|
/* color: var(--mainTextColor); Forget setting color here, it will be overwritten by the theme */
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
|
|
||||||
&[type=roll] {
|
&[type=roll] {
|
||||||
|
@ -50,6 +55,11 @@
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&[type=action].interact-button {
|
||||||
|
padding: 2px 8px;
|
||||||
|
color: var(--mainTextColor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
|
|
|
@ -2,7 +2,7 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] {
|
.repcontainer[data-groupname="repeating_physicaltracker"], .repcontainer[data-groupname="repeating_stuntracker"], .repcontainer[data-groupname="repeating_overflowtracker"] {
|
||||||
grid-template-columns: repeat(3, auto);
|
grid-template-columns: repeat(3, auto);
|
||||||
justify-content: start;
|
justify-content: start;
|
||||||
justify-items: center;
|
justify-items: center;
|
||||||
|
@ -10,11 +10,11 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab {
|
||||||
display: grid;
|
display: grid;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] > * {
|
.repcontainer[data-groupname="repeating_physicaltracker"] > *, .repcontainer[data-groupname="repeating_stuntracker"] > *, .repcontainer[data-groupname="repeating_overflowtracker"] > * {
|
||||||
margin: -1px;
|
margin: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem {
|
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem {
|
||||||
width: -webkit-fit-content;
|
width: -webkit-fit-content;
|
||||||
width: -moz-fit-content;
|
width: -moz-fit-content;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
@ -23,11 +23,11 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab {
|
||||||
height: fit-content;
|
height: fit-content;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > .itemcontrol {
|
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > .itemcontrol, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem > .itemcontrol, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem > .itemcontrol {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > button > span.woundModDisplay {
|
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > button > span.woundModDisplay, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem > button > span.woundModDisplay, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem > button > span.woundModDisplay {
|
||||||
content: "-1";
|
content: "-1";
|
||||||
color: #bfbdba;
|
color: #bfbdba;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -35,7 +35,7 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab {
|
||||||
right: 4px;
|
right: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > button {
|
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > button, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem > button, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem > button {
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
width: 3.5rem;
|
width: 3.5rem;
|
||||||
|
@ -49,11 +49,11 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > div {
|
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > div, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem > div, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem > div {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > input[type="hidden"][name="attr_isCrossed"][value="true"] ~ button > div {
|
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > input[type="hidden"][name="attr_isCrossed"][value="true"] ~ button > div, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem > input[type="hidden"][name="attr_isCrossed"][value="true"] ~ button > div, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem > input[type="hidden"][name="attr_isCrossed"][value="true"] ~ button > div {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-image: url("https://upload.wikimedia.org/wikipedia/commons/5/5f/Red_X.svg");
|
background-image: url("https://upload.wikimedia.org/wikipedia/commons/5/5f/Red_X.svg");
|
||||||
|
@ -62,14 +62,22 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab {
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > input[type="hidden"][name="attr_isCrossed"][value="true"] ~ button > span.woundModDisplay {
|
.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > input[type="hidden"][name="attr_isCrossed"][value="true"] ~ button > span.woundModDisplay, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem > input[type="hidden"][name="attr_isCrossed"][value="true"] ~ button > span.woundModDisplay, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem > input[type="hidden"][name="attr_isCrossed"][value="true"] ~ button > span.woundModDisplay {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.repcontrol[data-groupname="repeating_physicaltracker"] {
|
.repcontrol[data-groupname="repeating_physicaltracker"], .repcontrol[data-groupname="repeating_stuntracker"], .repcontrol[data-groupname="repeating_overflowtracker"] {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.healthTrackerGrid {
|
||||||
|
grid-template-columns: repeat(3, auto);
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: start;
|
||||||
|
justify-items: center;
|
||||||
|
display: grid;
|
||||||
|
}
|
||||||
|
|
||||||
.attr-rolls {
|
.attr-rolls {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
@ -125,6 +133,11 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab {
|
||||||
margin-bottom: 40px;
|
margin-bottom: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--mainBackgroundColor: #500;
|
||||||
|
--mainTextColor: #aae;
|
||||||
|
}
|
||||||
|
|
||||||
.sheetform {
|
.sheetform {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
@ -180,6 +193,11 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sheetform .charactersheet button[type="action"].interact-button {
|
||||||
|
color: var(--mainTextColor);
|
||||||
|
padding: 2px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
.sheetform .charactersheet input {
|
.sheetform .charactersheet input {
|
||||||
color: #aae;
|
color: #aae;
|
||||||
background-color: #444;
|
background-color: #444;
|
||||||
|
|
114
output/main.html
114
output/main.html
|
@ -108,16 +108,35 @@
|
||||||
<div class="healthBox">
|
<div class="healthBox">
|
||||||
<h2>Damage Tracks</h2>
|
<h2>Damage Tracks</h2>
|
||||||
<div class="healthBox">
|
<div class="healthBox">
|
||||||
|
<button class="interact-button" type="action" name="act_renderPhysBoxes" title="%{renderPhysBoxes}" value="3">Re-Render Boxes</button>
|
||||||
<button type="action" name="act_testBox" title="%{testBox}" value="2">Add</button>
|
<button type="action" name="act_testBox" title="%{testBox}" value="2">Add</button>
|
||||||
<button type="action" name="act_clearBoxes" title="%{clearBoxes}" value="1">Remove</button>
|
<button type="action" name="act_clearBoxes" title="%{clearBoxes}" value="1">Remove</button>
|
||||||
<fieldset class="repeating_physicaltracker">
|
<div class="healthTrackerGrid">
|
||||||
<input type="hidden" name="attr_boxNum" value="0">
|
<fieldset class="repeating_stuntracker">
|
||||||
<input type="hidden" name="attr_isCrossed" value="false">
|
<input type="hidden" name="attr_boxNum" value="0">
|
||||||
<input type="hidden" name="attr_woundMod" value="0">
|
<input type="hidden" name="attr_isCrossed" value="false">
|
||||||
<button type="action" name="act_check-phys" title="%{checkPhys}" value="3"><span class="woundModDisplay" name="attr_woundMod">0</span>
|
<input type="hidden" name="attr_woundMod" value="0">
|
||||||
<div></div>
|
<button type="action" name="act_check-tracker" value="3"><span class="woundModDisplay" name="attr_woundMod">0</span>
|
||||||
</button>
|
<div></div>
|
||||||
</fieldset>
|
</button>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="repeating_physicaltracker">
|
||||||
|
<input type="hidden" name="attr_boxNum" value="0">
|
||||||
|
<input type="hidden" name="attr_isCrossed" value="false">
|
||||||
|
<input type="hidden" name="attr_woundMod" value="0">
|
||||||
|
<button type="action" name="act_check-tracker" value="3"><span class="woundModDisplay" name="attr_woundMod">0</span>
|
||||||
|
<div></div>
|
||||||
|
</button>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="repeating_overflowtracker">
|
||||||
|
<input type="hidden" name="attr_boxNum" value="0">
|
||||||
|
<input type="hidden" name="attr_isCrossed" value="false">
|
||||||
|
<input type="hidden" name="attr_woundMod" value="0">
|
||||||
|
<button type="action" name="act_check-tracker" value="3"><span class="woundModDisplay" name="attr_woundMod">0</span>
|
||||||
|
<div></div>
|
||||||
|
</button>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="attr-rolls">
|
<div class="attr-rolls">
|
||||||
|
@ -192,14 +211,36 @@ var renderHealthBoxes = function renderHealthBoxes() {
|
||||||
//let physicalBoxes = calculateBoxes('physical')
|
//let physicalBoxes = calculateBoxes('physical')
|
||||||
//let stunBoxes = calculateBoxes('stun')
|
//let stunBoxes = calculateBoxes('stun')
|
||||||
//let overflowBoxes = calculateBoxes('overflow')
|
//let overflowBoxes = calculateBoxes('overflow')
|
||||||
|
var tempObject = {};
|
||||||
for(var j = 0; j < 12; j++){
|
for(var j = 0; j < 12; j++){
|
||||||
var newRowId = generateRowID();
|
var newRowId = generateRowID();
|
||||||
var tempObject = {};
|
console.log("Generating Physical Row Number: ".concat(j));
|
||||||
tempObject["repeating_physicaltracker_".concat(newRowId, "_boxNum")] = j;
|
while(tempObject["repeating_physicaltracker_".concat(newRowId, "_boxNum")] != j){
|
||||||
tempObject["repeating_physicaltracker_".concat(newRowId, "_woundMod")] = Math.trunc(j / 3) * -1;
|
tempObject["repeating_physicaltracker_".concat(newRowId, "_boxNum")] = j;
|
||||||
tempObject["repeating_physicaltracker_".concat(newRowId, "_isCrossed")] = "false";
|
tempObject["repeating_physicaltracker_".concat(newRowId, "_woundMod")] = Math.trunc(j / 3) * -1;
|
||||||
setAttrs(tempObject);
|
tempObject["repeating_physicaltracker_".concat(newRowId, "_isCrossed")] = "false";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
for(var j1 = 0; j1 < 12; j1++){
|
||||||
|
var newRowId1 = generateRowID();
|
||||||
|
console.log("Generating Stun Row Number: ".concat(j1));
|
||||||
|
while(tempObject["repeating_stuntracker_".concat(newRowId1, "_boxNum")] != j1){
|
||||||
|
tempObject["repeating_stuntracker_".concat(newRowId1, "_boxNum")] = j1;
|
||||||
|
tempObject["repeating_stuntracker_".concat(newRowId1, "_woundMod")] = Math.trunc(j1 / 3) * -1;
|
||||||
|
tempObject["repeating_stuntracker_".concat(newRowId1, "_isCrossed")] = "false";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(var j2 = 0; j2 < 12; j2++){
|
||||||
|
var newRowId2 = generateRowID();
|
||||||
|
console.log("Generating Overflow Row Number: ".concat(j2));
|
||||||
|
while(tempObject["repeating_overflowtracker_".concat(newRowId2, "_boxNum")] != j2){
|
||||||
|
tempObject["repeating_overflowtracker_".concat(newRowId2, "_boxNum")] = j2;
|
||||||
|
tempObject["repeating_overflowtracker_".concat(newRowId2, "_woundMod")] = Math.trunc(j2 / 3) * -1;
|
||||||
|
tempObject["repeating_overflowtracker_".concat(newRowId2, "_isCrossed")] = "false";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(tempObject);
|
||||||
|
setAttrs(tempObject);
|
||||||
};
|
};
|
||||||
var clearAllHealthBoxes = function clearAllHealthBoxes() {
|
var clearAllHealthBoxes = function clearAllHealthBoxes() {
|
||||||
getSectionIDs("physicaltracker", function(ids) {
|
getSectionIDs("physicaltracker", function(ids) {
|
||||||
|
@ -207,6 +248,22 @@ var clearAllHealthBoxes = function clearAllHealthBoxes() {
|
||||||
removeRepeatingRow("repeating_physicaltracker_".concat(id));
|
removeRepeatingRow("repeating_physicaltracker_".concat(id));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
getSectionIDs("stuntracker", function(ids) {
|
||||||
|
ids.forEach(function(id) {
|
||||||
|
removeRepeatingRow("repeating_stuntracker_".concat(id));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
getSectionIDs("overflowtracker", function(ids) {
|
||||||
|
ids.forEach(function(id) {
|
||||||
|
removeRepeatingRow("repeating_overflowtracker_".concat(id));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
var calculateBoxes = function calculateBoxes(tracker, stat, freeBoxes, woundReduction) {
|
||||||
|
var trackerInfo = {};
|
||||||
|
trackerInfo.tracker = tracker;
|
||||||
|
trackerInfo.startWoundCalc = freeBoxes;
|
||||||
|
trackerInfo.normalBoxes = Math.trunc(stat / 2) + 8 + freeBoxes;
|
||||||
};
|
};
|
||||||
var clearTracker = function clearTracker(tracker, resetWounds) {
|
var clearTracker = function clearTracker(tracker, resetWounds) {
|
||||||
getSectionIDs("".concat(tracker, "tracker"), function(ids) {
|
getSectionIDs("".concat(tracker, "tracker"), function(ids) {
|
||||||
|
@ -230,7 +287,6 @@ var setTrackerTo = function setTrackerTo(tracker, toId) {
|
||||||
else tempObject["repeating_".concat(tracker, "tracker_").concat(id, "_isCrossed")] = "false";
|
else tempObject["repeating_".concat(tracker, "tracker_").concat(id, "_isCrossed")] = "false";
|
||||||
if (values["repeating_".concat(tracker, "tracker_").concat(id, "_boxNum")] == toId) {
|
if (values["repeating_".concat(tracker, "tracker_").concat(id, "_boxNum")] == toId) {
|
||||||
tempObject["".concat(tracker, "Wounds")] = toId + 1;
|
tempObject["".concat(tracker, "Wounds")] = toId + 1;
|
||||||
console.log(tempObject);
|
|
||||||
setAttrs(tempObject);
|
setAttrs(tempObject);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -243,7 +299,7 @@ on("clicked:testBox", function() {
|
||||||
on("clicked:clearBoxes", function() {
|
on("clicked:clearBoxes", function() {
|
||||||
clearAllHealthBoxes();
|
clearAllHealthBoxes();
|
||||||
});
|
});
|
||||||
on("clicked:repeating_physicaltracker:check-phys", function(ev) {
|
on("clicked:repeating_physicaltracker:check-tracker", function(ev) {
|
||||||
getAttrs([
|
getAttrs([
|
||||||
"repeating_physicaltracker_boxNum",
|
"repeating_physicaltracker_boxNum",
|
||||||
"repeating_physicaltracker_isCrossed",
|
"repeating_physicaltracker_isCrossed",
|
||||||
|
@ -257,5 +313,33 @@ on("clicked:repeating_physicaltracker:check-phys", function(ev) {
|
||||||
else clearTracker("physical", true);
|
else clearTracker("physical", true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
on("clicked:repeating_stuntracker:check-tracker", function(ev) {
|
||||||
|
getAttrs([
|
||||||
|
"repeating_stuntracker_boxNum",
|
||||||
|
"repeating_stuntracker_isCrossed",
|
||||||
|
"stunWounds"
|
||||||
|
], function(values) {
|
||||||
|
var _isCrossed = values.repeating_stuntracker_isCrossed;
|
||||||
|
var _boxId = values.repeating_stuntracker_boxNum;
|
||||||
|
var _wounds = values.stunWounds;
|
||||||
|
if (_isCrossed === "false") setTrackerTo("stun", _boxId);
|
||||||
|
else if (_wounds - 1 != _boxId) setTrackerTo("stun", _boxId);
|
||||||
|
else clearTracker("stun", true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
on("clicked:repeating_overflowtracker:check-tracker", function(ev) {
|
||||||
|
getAttrs([
|
||||||
|
"repeating_overflowtracker_boxNum",
|
||||||
|
"repeating_overflowtracker_isCrossed",
|
||||||
|
"overflowWounds"
|
||||||
|
], function(values) {
|
||||||
|
var _isCrossed = values.repeating_overflowtracker_isCrossed;
|
||||||
|
var _boxId = values.repeating_overflowtracker_boxNum;
|
||||||
|
var _wounds = values.overflowWounds;
|
||||||
|
if (_isCrossed === "false") setTrackerTo("overflow", _boxId);
|
||||||
|
else if (_wounds - 1 != _boxId) setTrackerTo("overflow", _boxId);
|
||||||
|
else clearTracker("overflow", true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
|
@ -2,14 +2,38 @@ const renderHealthBoxes = () => {
|
||||||
//let physicalBoxes = calculateBoxes('physical')
|
//let physicalBoxes = calculateBoxes('physical')
|
||||||
//let stunBoxes = calculateBoxes('stun')
|
//let stunBoxes = calculateBoxes('stun')
|
||||||
//let overflowBoxes = calculateBoxes('overflow')
|
//let overflowBoxes = calculateBoxes('overflow')
|
||||||
|
let tempObject = {}
|
||||||
for (let j = 0; j < 12; j++) {
|
for (let j = 0; j < 12; j++) {
|
||||||
let newRowId = generateRowID()
|
let newRowId = generateRowID()
|
||||||
let tempObject = {}
|
console.log(`Generating Physical Row Number: ${j}`)
|
||||||
tempObject[`repeating_physicaltracker_${newRowId}_boxNum`] = j
|
while (tempObject[`repeating_physicaltracker_${newRowId}_boxNum`] != j) {
|
||||||
tempObject[`repeating_physicaltracker_${newRowId}_woundMod`] = Math.trunc(j / 3) * -1
|
tempObject[`repeating_physicaltracker_${newRowId}_boxNum`] = j
|
||||||
tempObject[`repeating_physicaltracker_${newRowId}_isCrossed`] = 'false'
|
tempObject[`repeating_physicaltracker_${newRowId}_woundMod`] = Math.trunc(j / 3) * -1
|
||||||
setAttrs(tempObject)
|
tempObject[`repeating_physicaltracker_${newRowId}_isCrossed`] = 'false'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (let j = 0; j < 12; j++) {
|
||||||
|
let newRowId = generateRowID()
|
||||||
|
console.log(`Generating Stun Row Number: ${j}`)
|
||||||
|
while (tempObject[`repeating_stuntracker_${newRowId}_boxNum`] != j) {
|
||||||
|
tempObject[`repeating_stuntracker_${newRowId}_boxNum`] = j
|
||||||
|
tempObject[`repeating_stuntracker_${newRowId}_woundMod`] = Math.trunc(j / 3) * -1
|
||||||
|
tempObject[`repeating_stuntracker_${newRowId}_isCrossed`] = 'false'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let j = 0; j < 12; j++) {
|
||||||
|
let newRowId = generateRowID()
|
||||||
|
console.log(`Generating Overflow Row Number: ${j}`)
|
||||||
|
while (tempObject[`repeating_overflowtracker_${newRowId}_boxNum`] != j) {
|
||||||
|
tempObject[`repeating_overflowtracker_${newRowId}_boxNum`] = j
|
||||||
|
tempObject[`repeating_overflowtracker_${newRowId}_woundMod`] = Math.trunc(j / 3) * -1
|
||||||
|
tempObject[`repeating_overflowtracker_${newRowId}_isCrossed`] = 'false'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(tempObject)
|
||||||
|
setAttrs(tempObject)
|
||||||
}
|
}
|
||||||
|
|
||||||
const clearAllHealthBoxes = () => {
|
const clearAllHealthBoxes = () => {
|
||||||
|
@ -18,6 +42,25 @@ const clearAllHealthBoxes = () => {
|
||||||
removeRepeatingRow(`repeating_physicaltracker_${id}`)
|
removeRepeatingRow(`repeating_physicaltracker_${id}`)
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
|
getSectionIDs('stuntracker', function (ids) {
|
||||||
|
ids.forEach(id => {
|
||||||
|
removeRepeatingRow(`repeating_stuntracker_${id}`)
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
getSectionIDs('overflowtracker', function (ids) {
|
||||||
|
ids.forEach(id => {
|
||||||
|
removeRepeatingRow(`repeating_overflowtracker_${id}`)
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const calculateBoxes = (tracker, stat, freeBoxes, woundReduction) => {
|
||||||
|
let trackerInfo = {}
|
||||||
|
trackerInfo.tracker = tracker
|
||||||
|
trackerInfo.startWoundCalc = freeBoxes
|
||||||
|
trackerInfo.normalBoxes = Math.trunc(stat / 2) + 8 + freeBoxes
|
||||||
}
|
}
|
||||||
|
|
||||||
const clearTracker = (tracker, resetWounds) => {
|
const clearTracker = (tracker, resetWounds) => {
|
||||||
|
@ -46,7 +89,6 @@ const setTrackerTo = (tracker, toId) => {
|
||||||
}
|
}
|
||||||
if (values[`repeating_${tracker}tracker_${id}_boxNum`] == toId) {
|
if (values[`repeating_${tracker}tracker_${id}_boxNum`] == toId) {
|
||||||
tempObject[`${tracker}Wounds`] = toId + 1
|
tempObject[`${tracker}Wounds`] = toId + 1
|
||||||
console.log(tempObject)
|
|
||||||
setAttrs(tempObject)
|
setAttrs(tempObject)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -54,15 +96,15 @@ const setTrackerTo = (tracker, toId) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
on('clicked:testBox', function() {
|
on('clicked:testBox', function () {
|
||||||
renderHealthBoxes()
|
renderHealthBoxes()
|
||||||
})
|
})
|
||||||
|
|
||||||
on('clicked:clearBoxes', function() {
|
on('clicked:clearBoxes', function () {
|
||||||
clearAllHealthBoxes()
|
clearAllHealthBoxes()
|
||||||
})
|
})
|
||||||
|
|
||||||
on('clicked:repeating_physicaltracker:check-phys', function (ev) {
|
on('clicked:repeating_physicaltracker:check-tracker', function (ev) {
|
||||||
getAttrs(['repeating_physicaltracker_boxNum', 'repeating_physicaltracker_isCrossed', 'physicalWounds'], function (values) {
|
getAttrs(['repeating_physicaltracker_boxNum', 'repeating_physicaltracker_isCrossed', 'physicalWounds'], function (values) {
|
||||||
let _isCrossed = values.repeating_physicaltracker_isCrossed
|
let _isCrossed = values.repeating_physicaltracker_isCrossed
|
||||||
let _boxId = values.repeating_physicaltracker_boxNum
|
let _boxId = values.repeating_physicaltracker_boxNum
|
||||||
|
@ -74,4 +116,35 @@ on('clicked:repeating_physicaltracker:check-phys', function (ev) {
|
||||||
} else {
|
} else {
|
||||||
clearTracker('physical', true)
|
clearTracker('physical', true)
|
||||||
}
|
}
|
||||||
})})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
on('clicked:repeating_stuntracker:check-tracker', function (ev) {
|
||||||
|
getAttrs(['repeating_stuntracker_boxNum', 'repeating_stuntracker_isCrossed', 'stunWounds'], function (values) {
|
||||||
|
let _isCrossed = values.repeating_stuntracker_isCrossed
|
||||||
|
let _boxId = values.repeating_stuntracker_boxNum
|
||||||
|
let _wounds = values.stunWounds
|
||||||
|
if (_isCrossed === 'false') {
|
||||||
|
setTrackerTo('stun', _boxId)
|
||||||
|
} else if (_wounds - 1 != _boxId) {
|
||||||
|
setTrackerTo('stun', _boxId)
|
||||||
|
} else {
|
||||||
|
clearTracker('stun', true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
on('clicked:repeating_overflowtracker:check-tracker', function (ev) {
|
||||||
|
getAttrs(['repeating_overflowtracker_boxNum', 'repeating_overflowtracker_isCrossed', 'overflowWounds'], function (values) {
|
||||||
|
let _isCrossed = values.repeating_overflowtracker_isCrossed
|
||||||
|
let _boxId = values.repeating_overflowtracker_boxNum
|
||||||
|
let _wounds = values.overflowWounds
|
||||||
|
if (_isCrossed === 'false') {
|
||||||
|
setTrackerTo('overflow', _boxId)
|
||||||
|
} else if (_wounds - 1 != _boxId) {
|
||||||
|
setTrackerTo('overflow', _boxId)
|
||||||
|
} else {
|
||||||
|
clearTracker('overflow', true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
Loading…
Add table
Add a link
Reference in a new issue