diff --git a/.gitignore b/.gitignore index 23fa937..ccafe28 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ .parcel-cache node_modules -Old_Code \ No newline at end of file diff --git a/components/_healthBox.css b/components/_healthBox.css index 0329031..162c105 100644 --- a/components/_healthBox.css +++ b/components/_healthBox.css @@ -1,78 +1,79 @@ -.repcontainer[data-groupname="repeating_physicaltracker"], -.repcontainer[data-groupname="repeating_stuntracker"], -.repcontainer[data-groupname="repeating_overflowtracker"] { +.healthWrapper { display: grid; - grid-template-columns: repeat(3, auto); - justify-items: center; - gap: 0px; - justify-content: start; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + > { - > * { - margin: -1px; + h3 { + color: #aaaaee; } + + .healthContainer { + display: grid; + grid-template-columns: repeat(3, auto); + justify-items: center; + gap: 0px; + justify-content: start; + > { + * { + margin: -1px; + } + + label { + &.healthTrackerBox { + cursor: pointer; + order: 1; + background-image: url(https://upload.wikimedia.org/wikipedia/commons/5/5f/Red_X.svg); + background-color: #444444; + background-size: 90%; + background-position: center; + background-repeat: no-repeat; + z-index: 1; + position: relative; + border: 2px solid #550000; + border-radius: 0px; + appearance: none; + width: 3.5rem; + height: 3.5rem; + border-radius: 3px; + padding: 0px; + + &.reset { + order: 2; + } - > .repitem { + > span { + position: absolute; + content: "-1"; + top: 2px; + right: 4px; + display: none; + } + } + } - width: fit-content; - height: fit-content; - - > .itemcontrol { - display: none !important; - } - > button { + input:checked { + & + .healthTrackerBox { + position: absolute; + opacity: 0; + z-index: 0; - > span.woundModDisplay { - content: "-1"; - top: 2px; - right: 4px; - color: #bfbdba; - position: absolute; - } + > span { + display: block; + } + } - background-color: #444444; - border: 2px solid #550000; - border-radius: 0px; - appearance: none; - width: 3.5rem; - height: 3.5rem; - border-radius: 3px; - padding: 0px; - position: relative; - grid-span: 1span; - margin: 0px; - } + & ~ .healthTrackerBox { + order: 3; + background-color: #444444; + background-image: none; - > div { - pointer-events: none; - } - - > input[type="hidden"][name="attr_isCrossed"][value="true"] ~ button { - > div { - background-image: url("https://upload.wikimedia.org/wikipedia/commons/5/5f/Red_X.svg"); - background-size: 100%; - background-position: center center; - background-repeat: no-repeat; - height: 100%; - width: 100%; - } - - > span.woundModDisplay { - display: none; + > span { + display: block; + } + } + } } } } -} - -.repcontrol[data-groupname="repeating_physicaltracker"], -.repcontrol[data-groupname="repeating_stuntracker"], -.repcontrol[data-groupname="repeating_overflowtracker"] { - display: none !important; -} - -.healthTrackerGrid { - display: grid; - grid-template-columns: repeat(3, auto); - justify-items: center; - align-items: start; - justify-content: space-around; } \ No newline at end of file diff --git a/components/_healthBox.pug b/components/_healthBox.pug index 0e2be16..f2718da 100644 --- a/components/_healthBox.pug +++ b/components/_healthBox.pug @@ -1,26 +1,14 @@ -.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_clearBoxes" title="%{clearBoxes}" value="1") Remove - .healthTrackerGrid - fieldset(class="repeating_stuntracker") - 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_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 \ No newline at end of file +.healthWrapper + include ./_healthBoxContainer + h3 Stun + h3 Physical + h3 Overflow + +healthContainer(30).stun //Will/2 + 8 + +healthContainer(30).physical //Body/2 + 8 + +healthContainer(30).overflow //Body*2 + .stunInfo + input(type="number" name="attr_physicalHealth" disabled="true" value="ceil(@{abilitypool_wil}/2)+8-@{stunWounds}") + .physicalInfo + input(type="number" name="attr_physicalHealth" disabled="true" value="ceil(@{abilitypool_bod}/2)+8-@{physicalWounds}") + .overflowInfo + input(type="number" name="attr_physicalHealth" disabled="true" value="ceil(@{abilitypool_wil}/2)+8-@{stunWounds}") \ No newline at end of file diff --git a/components/_healthBoxBox.pug b/components/_healthBoxBox.pug new file mode 100644 index 0000000..a5f2b08 --- /dev/null +++ b/components/_healthBoxBox.pug @@ -0,0 +1,12 @@ +mixin healthBox(number) + - let starter = number == 0 + - let modifier = Math.floor(number / 3) * -1 + - if (modifier == 0) modifier = '' + if starter + input.hidden.disp(id=`${attributes.class.substring(0,2)}B${number}` type="radio" name=`attr_${attributes.class}Wounds` value=number checked="checked") + label.healthTrackerBox.reset(for=`${attributes.class.substring(0,2)}B${number}`) + span.woundmodifier #{modifier} + else + input.hidden.disp(id=`${attributes.class.substring(0,2)}B${number}` type="radio" name=`attr_${attributes.class}Wounds` value=number) + label.healthTrackerBox(for=`${attributes.class.substring(0,2)}B${number}`) + span.woundmodifier #{modifier} \ No newline at end of file diff --git a/components/_healthBoxContainer.pug b/components/_healthBoxContainer.pug new file mode 100644 index 0000000..656b395 --- /dev/null +++ b/components/_healthBoxContainer.pug @@ -0,0 +1,5 @@ +mixin healthContainer(count) + div(class='healthContainer ' + attributes.class) + include ./_healthBoxBox + - for (var i = 0; i < count; i++) + +healthBox(i)(class=attributes.class) \ No newline at end of file diff --git a/main.css b/main.css index 7533295..3957465 100644 --- a/main.css +++ b/main.css @@ -2,11 +2,6 @@ @import-glob "components/*.css"; -:root{ - --mainBackgroundColor: #550000; - --mainTextColor: #aaaaee; -} - .sheetform { padding: 0; background-color: #0b0b0b !important; @@ -33,32 +28,16 @@ padding: 0px; text-align: center; vertical-align: middle; - /* color: var(--mainTextColor); Forget setting color here, it will be overwritten by the theme */ - padding: 2px; &[type=roll] { background-color: #550000; border: 0; - padding: 1px; width: 1.5em; height: 1.5em; background-image: none; color: white; border-radius: 8px; box-shadow: none; - position: relative; - - &::before { - width: 100%; - height: 100%; - vertical-align: middle; - text-align: center; - } - } - - &[type=action].interact-button { - padding: 2px 8px; - color: var(--mainTextColor); } } diff --git a/output/main.css b/output/main.css index 3ce0a35..149c9e1 100644 --- a/output/main.css +++ b/output/main.css @@ -2,7 +2,17 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab { display: block; } -.repcontainer[data-groupname="repeating_physicaltracker"], .repcontainer[data-groupname="repeating_stuntracker"], .repcontainer[data-groupname="repeating_overflowtracker"] { +.healthWrapper { + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + display: grid; +} + +.healthWrapper > h3 { + color: #aae; +} + +.healthWrapper > .healthContainer { grid-template-columns: repeat(3, auto); justify-content: start; justify-items: center; @@ -10,72 +20,59 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab { display: grid; } -.repcontainer[data-groupname="repeating_physicaltracker"] > *, .repcontainer[data-groupname="repeating_stuntracker"] > *, .repcontainer[data-groupname="repeating_overflowtracker"] > * { +.healthWrapper > .healthContainer > * { margin: -1px; } -.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem { - width: -webkit-fit-content; - width: -moz-fit-content; - width: fit-content; - height: -webkit-fit-content; - height: -moz-fit-content; - height: fit-content; +.healthWrapper > .healthContainer > label.healthTrackerBox { + cursor: pointer; + z-index: 1; + -webkit-appearance: none; + appearance: none; + width: 3.5rem; + height: 3.5rem; + background-color: #444; + background-image: url("https://upload.wikimedia.org/wikipedia/commons/5/5f/Red_X.svg"); + background-position: center; + background-repeat: no-repeat; + background-size: 90%; + border: 2px solid #500; + border-radius: 3px; + order: 1; + padding: 0; + position: relative; } -.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > .itemcontrol, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem > .itemcontrol, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem > .itemcontrol { - display: none !important; +.healthWrapper > .healthContainer > label.healthTrackerBox.reset { + order: 2; } -.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 { +.healthWrapper > .healthContainer > label.healthTrackerBox > span { content: "-1"; - color: #bfbdba; + display: none; position: absolute; top: 2px; right: 4px; } -.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > button, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem > button, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem > button { - -webkit-appearance: none; - appearance: none; - width: 3.5rem; - height: 3.5rem; - grid-span: 1span; +.healthWrapper > .healthContainer > input:checked + .healthTrackerBox { + opacity: 0; + z-index: 0; + position: absolute; +} + +.healthWrapper > .healthContainer > input:checked + .healthTrackerBox > span { + display: block; +} + +.healthWrapper > .healthContainer > input:checked ~ .healthTrackerBox { background-color: #444; - border: 2px solid #500; - border-radius: 3px; - margin: 0; - padding: 0; - position: relative; + background-image: none; + order: 3; } -.repcontainer[data-groupname="repeating_physicaltracker"] > .repitem > div, .repcontainer[data-groupname="repeating_stuntracker"] > .repitem > div, .repcontainer[data-groupname="repeating_overflowtracker"] > .repitem > div { - pointer-events: none; -} - -.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%; - width: 100%; - background-image: url("https://upload.wikimedia.org/wikipedia/commons/5/5f/Red_X.svg"); - background-position: center; - background-repeat: no-repeat; - background-size: 100%; -} - -.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; -} - -.repcontrol[data-groupname="repeating_physicaltracker"], .repcontrol[data-groupname="repeating_stuntracker"], .repcontrol[data-groupname="repeating_overflowtracker"] { - display: none !important; -} - -.healthTrackerGrid { - grid-template-columns: repeat(3, auto); - justify-content: space-around; - align-items: start; - justify-items: center; - display: grid; +.healthWrapper > .healthContainer > input:checked ~ .healthTrackerBox > span { + display: block; } .attr-rolls { @@ -133,11 +130,6 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab { margin-bottom: 40px; } -:root { - --mainBackgroundColor: #500; - --mainTextColor: #aae; -} - .sheetform { height: 100%; padding: 0; @@ -170,7 +162,7 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab { border: 0; border-radius: 1em; margin: 0 2px; - padding: 2px; + padding: 0; } .sheetform .charactersheet button[type="roll"] { @@ -182,20 +174,6 @@ input.sheet-tabstoggle[value="main"] ~ .main-tab { background-image: none; border: 0; border-radius: 8px; - padding: 1px; - position: relative; -} - -.sheetform .charactersheet button[type="roll"]:before { - width: 100%; - height: 100%; - vertical-align: middle; - text-align: center; -} - -.sheetform .charactersheet button[type="action"].interact-button { - color: var(--mainTextColor); - padding: 2px 8px; } .sheetform .charactersheet input { diff --git a/output/main.html b/output/main.html index 25be914..fb318de 100644 --- a/output/main.html +++ b/output/main.html @@ -107,35 +107,204 @@

Damage Tracks

-
- - - -
-
- - - - -
-
- - - - -
-
- - - - -
+
+

Stun

+

Physical

+

Overflow

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+
+
@@ -207,139 +376,5 @@ on("clicked:toggmroll", function() { }); }); }); -var renderHealthBoxes = function renderHealthBoxes() { - //let physicalBoxes = calculateBoxes('physical') - //let stunBoxes = calculateBoxes('stun') - //let overflowBoxes = calculateBoxes('overflow') - var tempObject = {}; - for(var j = 0; j < 12; j++){ - var newRowId = generateRowID(); - console.log("Generating Physical Row Number: ".concat(j)); - while(tempObject["repeating_physicaltracker_".concat(newRowId, "_boxNum")] != j){ - tempObject["repeating_physicaltracker_".concat(newRowId, "_boxNum")] = j; - tempObject["repeating_physicaltracker_".concat(newRowId, "_woundMod")] = Math.trunc(j / 3) * -1; - 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() { - getSectionIDs("physicaltracker", function(ids) { - ids.forEach(function(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) { - getSectionIDs("".concat(tracker, "tracker"), function(ids) { - var tempObject = {}; - ids.forEach(function(id) { - tempObject["repeating_".concat(tracker, "tracker_").concat(id, "_isCrossed")] = "false"; - }); - if (resetWounds) tempObject["".concat(tracker, "Wounds")] = 0; - setAttrs(tempObject); - }); -}; -var setTrackerTo = function setTrackerTo(tracker, toId) { - clearTracker(tracker, false); - getSectionIDs("".concat(tracker, "tracker"), function(ids) { - var tempObject = {}; - ids.forEach(function(id) { - getAttrs([ - "repeating_".concat(tracker, "tracker_").concat(id, "_boxNum") - ], function(values) { - if (values["repeating_".concat(tracker, "tracker_").concat(id, "_boxNum")] <= toId) tempObject["repeating_".concat(tracker, "tracker_").concat(id, "_isCrossed")] = "true"; - else tempObject["repeating_".concat(tracker, "tracker_").concat(id, "_isCrossed")] = "false"; - if (values["repeating_".concat(tracker, "tracker_").concat(id, "_boxNum")] == toId) { - tempObject["".concat(tracker, "Wounds")] = toId + 1; - setAttrs(tempObject); - } - }); - }); - }); -}; -on("clicked:testBox", function() { - renderHealthBoxes(); -}); -on("clicked:clearBoxes", function() { - clearAllHealthBoxes(); -}); -on("clicked:repeating_physicaltracker:check-tracker", function(ev) { - getAttrs([ - "repeating_physicaltracker_boxNum", - "repeating_physicaltracker_isCrossed", - "physicalWounds" - ], function(values) { - var _isCrossed = values.repeating_physicaltracker_isCrossed; - var _boxId = values.repeating_physicaltracker_boxNum; - var _physicalWounds = values.physicalWounds; - if (_isCrossed === "false") setTrackerTo("physical", _boxId); - else if (_physicalWounds - 1 != _boxId) setTrackerTo("physical", _boxId); - 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); - }); -}); \ No newline at end of file diff --git a/workers/_worker-bundle.pug b/workers/_worker-bundle.pug index 5088e06..d8bd67b 100644 --- a/workers/_worker-bundle.pug +++ b/workers/_worker-bundle.pug @@ -1,4 +1,2 @@ include ./tabToggler.js include ./extraTogglers.js -include ./healthTrackerManager.js - diff --git a/workers/healthTrackerManager.js b/workers/healthTrackerManager.js deleted file mode 100644 index 876e89a..0000000 --- a/workers/healthTrackerManager.js +++ /dev/null @@ -1,150 +0,0 @@ -const renderHealthBoxes = () => { - //let physicalBoxes = calculateBoxes('physical') - //let stunBoxes = calculateBoxes('stun') - //let overflowBoxes = calculateBoxes('overflow') - let tempObject = {} - for (let j = 0; j < 12; j++) { - let newRowId = generateRowID() - console.log(`Generating Physical Row Number: ${j}`) - while (tempObject[`repeating_physicaltracker_${newRowId}_boxNum`] != j) { - tempObject[`repeating_physicaltracker_${newRowId}_boxNum`] = j - tempObject[`repeating_physicaltracker_${newRowId}_woundMod`] = Math.trunc(j / 3) * -1 - 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 = () => { - getSectionIDs('physicaltracker', function (ids) { - ids.forEach(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) => { - getSectionIDs(`${tracker}tracker`, function (ids) { - let tempObject = {} - ids.forEach(id => { - tempObject[`repeating_${tracker}tracker_${id}_isCrossed`] = 'false' - }); - if (resetWounds) { - tempObject[`${tracker}Wounds`] = 0 - } - setAttrs(tempObject) - }) -} - -const setTrackerTo = (tracker, toId) => { - clearTracker(tracker, false) - getSectionIDs(`${tracker}tracker`, function (ids) { - let tempObject = {} - ids.forEach(id => { - getAttrs([`repeating_${tracker}tracker_${id}_boxNum`], function (values) { - if (values[`repeating_${tracker}tracker_${id}_boxNum`] <= toId) { - tempObject[`repeating_${tracker}tracker_${id}_isCrossed`] = 'true' - } else { - tempObject[`repeating_${tracker}tracker_${id}_isCrossed`] = 'false' - } - if (values[`repeating_${tracker}tracker_${id}_boxNum`] == toId) { - tempObject[`${tracker}Wounds`] = toId + 1 - setAttrs(tempObject) - } - }) - }) - }) -} - -on('clicked:testBox', function () { - renderHealthBoxes() -}) - -on('clicked:clearBoxes', function () { - clearAllHealthBoxes() -}) - -on('clicked:repeating_physicaltracker:check-tracker', function (ev) { - getAttrs(['repeating_physicaltracker_boxNum', 'repeating_physicaltracker_isCrossed', 'physicalWounds'], function (values) { - let _isCrossed = values.repeating_physicaltracker_isCrossed - let _boxId = values.repeating_physicaltracker_boxNum - let _physicalWounds = values.physicalWounds - if (_isCrossed === 'false') { - setTrackerTo('physical', _boxId) - } else if (_physicalWounds - 1 != _boxId) { - setTrackerTo('physical', _boxId) - } else { - 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) - } - }) -}) \ No newline at end of file